فهرست منبع

Merge remote-tracking branch 'origin/dev-2.0' into dev-2.0

朴弘宇 1 سال پیش
والد
کامیت
926543cb05

+ 101 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/AgricultureBigDataController.java

@@ -243,4 +243,105 @@ public class AgricultureBigDataController {
     public AjaxResult getLItianDept(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
         return AjaxResult.success(agricultureBigDataService.getLItianDept(centerdataTFarmAgriculturalCooperatives));
     }
+
+    /**
+     * 农业资源统计
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-25 14:38:44
+     */
+    @ApiOperation(value = "农业资源统计", notes = "农业资源统计")
+    @PostMapping("/getResourceStatistics")
+    public AjaxResult getResourceStatistics(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getResourceStatistics(agricultureBigDataBO));
+    }
+
+    /**
+     * 种子库存
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
+    @ApiOperation(value = "种子库存", notes = "种子库存")
+    @PostMapping("/getSeedStock")
+    public AjaxResult getSeedStock(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getSeedStock(agricultureBigDataBO));
+    }
+
+    /**
+     * 分类种子库存
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
+    @ApiOperation(value = "分类种子库存", notes = "分类种子库存")
+    @PostMapping("/getSeedStockByType")
+    public AjaxResult getSeedStockByType(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getSeedStockByType(agricultureBigDataBO));
+    }
+
+    /**
+     * 耕种统计
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
+    @ApiOperation(value = "耕种统计", notes = "耕种统计")
+    @PostMapping("/getCultivationStatistics")
+    public AjaxResult getCultivationStatistics(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getCultivationStatistics(agricultureBigDataBO));
+    }
+
+    /**
+     * 农业补贴
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
+    @ApiOperation(value = "农业补贴", notes = "农业补贴")
+    @PostMapping("/getAgriculturalSubsidy")
+    public AjaxResult getAgriculturalSubsidy(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getAgriculturalSubsidy(agricultureBigDataBO));
+    }
+
+    /**
+     * 农业小类补贴
+     * name 传递dict_value
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
+    @ApiOperation(value = "农业小类补贴", notes = "农业小类补贴")
+    @PostMapping("/getAgriculturalSubsidyBySubclass")
+    public AjaxResult getAgriculturalSubsidyBySubclass(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getAgriculturalSubsidyBySubclass(agricultureBigDataBO));
+    }
+
+
+    /**
+     * 化肥统计
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
+    @ApiOperation(value = "化肥统计", notes = "化肥统计")
+    @PostMapping("/getFertilizerStatistics")
+    public AjaxResult getFertilizerStatistics(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getFertilizerStatistics(agricultureBigDataBO));
+    }
+
+
+    /**
+     * 农民合作社统计(等dev合并)
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-27 10:07:00
+     */
+    @ApiOperation(value = "农民合作社统计", notes = "农民合作社统计")
+    @PostMapping("/getCooperativesStatistics")
+    public AjaxResult getCooperativesStatistics(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getCooperativesStatistics(agricultureBigDataBO));
+    }
+
+
 }

+ 21 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/mapper/AgricultureBigDataMapper.java

@@ -1,5 +1,6 @@
 package com.sooka.sponest.data.digitalagriculture.mapper;
 
+import com.ruoyi.system.api.domain.SysDept;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
 import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureBigDataBO;
 
@@ -43,4 +44,24 @@ public interface AgricultureBigDataMapper {
     List<AgricultureBigDataBO> getHuanTianType(CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives);
 
     List<AgricultureBigDataBO> getLItianDept(CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives);
+
+    List<Map<String,Object>> getResourceStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
+
+    List<Map<String,Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
+    SysDept selectDetermineDeptLevel(Long deptId);
+
 }

+ 17 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/service/IAgricultureBigDataService.java

@@ -49,4 +49,21 @@ public interface IAgricultureBigDataService {
     List<AgricultureBigDataBO> getHuanTianType(CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives);
 
     List<AgricultureBigDataBO> getLItianDept(CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives);
+
+    List<Map<String,Object>> getResourceStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
 }

+ 63 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/AgricultureBigDataServiceImpl.java

@@ -1,6 +1,7 @@
 package com.sooka.sponest.data.digitalagriculture.service.impl;
 
 import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.system.api.domain.SysDept;
 import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
 import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureBigDataBO;
@@ -155,4 +156,66 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         setSookaDataBase(centerdataTFarmAgriculturalCooperatives);
         return agricultureBigDataMapper.getLItianDept(centerdataTFarmAgriculturalCooperatives);
     }
+
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String,Object>> getResourceStatistics(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        return agricultureBigDataMapper.getResourceStatistics(agricultureBigDataBO);
+    }
+
+    @Override
+    public List<Map<String,Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        // 查询部门所属层级
+//        determineDeptLevel(deptId);
+        return agricultureBigDataMapper.getSeedStock(agricultureBigDataBO);
+    }
+
+    @Override
+    public List<Map<String,Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        // 查询部门所属层级
+//        determineDeptLevel(deptId);
+        return agricultureBigDataMapper.getSeedStockByType(agricultureBigDataBO);
+    }
+
+    @Override
+    public List<Map<String, Object>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        return agricultureBigDataMapper.getCultivationStatistics(agricultureBigDataBO);
+    }
+
+    @Override
+    public List<Map<String, Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        return agricultureBigDataMapper.getAgriculturalSubsidy(agricultureBigDataBO);
+    }
+
+    @Override
+    public List<Map<String, Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        return agricultureBigDataMapper.getAgriculturalSubsidyBySubclass(agricultureBigDataBO);
+    }
+
+    @Override
+    public List<Map<String, Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        return agricultureBigDataMapper.getFertilizerStatistics(agricultureBigDataBO);
+    }
+
+    @Override
+    public List<Map<String, Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        return agricultureBigDataMapper.getCooperativesStatistics(agricultureBigDataBO);
+    }
+
+
+    /**
+     * 查询部门所属层级
+     * @param deptId
+     */
+    private void determineDeptLevel(Long deptId) {
+        SysDept deptInfo =  agricultureBigDataMapper.selectDetermineDeptLevel(deptId);
+    }
 }

+ 269 - 0
src/main/resources/mapper/digitalagriculture/AgricultureBigDataMapper.xml

@@ -270,4 +270,273 @@
           ${params.dataScope}
           GROUP BY a.dept_id
     </select>
+
+    <select id="getResourceStatistics" parameterType="AgricultureBigDataBO" resultType="map">
+        SELECT
+            '农民合作社' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_agricultural_cooperatives a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '农机技术推广部门信息' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_agricultural_machinery_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '屠宰企业' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_enterprise a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        WHERE
+            type = 2
+            ${params.dataScope}
+        UNION ALL
+        SELECT
+            '生鲜乳收购站' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_enterprise a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        WHERE
+            type = 1
+            ${params.dataScope}
+        UNION ALL
+        SELECT
+            '饲料企业' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_enterprise a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        WHERE
+            type = 3
+            ${params.dataScope}
+        UNION ALL
+        SELECT
+            '备案畜禽规模养殖场' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_filings_livestock a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '种畜禽养殖场' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_livestock a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '棚膜信息' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_greenhouse_film a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '养殖场' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_breeding_farm a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '肉牛基层繁改站' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_complex_modification a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '农用机械' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_machinery_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '农具' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_implements_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '种子库存' AS category, SUM(stock) AS num
+        FROM
+            centerdata_t_farm_seed_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '化肥库存' AS category, SUM(stock) AS num
+        FROM
+            centerdata_t_farm_chemical_fertilizer_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '预估产量' AS category, SUM(estimated_production) AS num
+        FROM
+            centerdata_t_farm_plant_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '区域性粪污处置中心' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_excrement_dispose a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '粪污收集点' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_cesspit_collect a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+    </select>
+
+    <select id="getSeedStock" resultType="map" parameterType="AgricultureBigDataBO">
+        SELECT
+            SUM(stock) AS stockNum ,
+            SUM( sales_volume ) AS salesVolumeNum
+        FROM
+            centerdata_t_farm_seed_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+    </select>
+
+    <select id="getSeedStockByType" resultType="map" parameterType="AgricultureBigDataBO">
+        SELECT
+            a.dict_label AS category,
+            COALESCE ( SUM( sales_volume ), 0 ) AS salesVolumeNum ,
+            COALESCE ( SUM( stock ), 0 ) AS stockNum
+        FROM
+            ${database_system}.sys_dict_data a
+        LEFT JOIN centerdata_t_farm_seed_info b ON b.seed_type = a.dict_value
+        left join
+            ${database_system}.sys_dept d on d.dept_id = b.dept_id
+        <where>
+            a.dict_type = "farm_seed_type"
+            ${params.dataScope}
+        </where>
+        GROUP BY
+            a.dict_value
+    </select>
+
+    <select id="getCultivationStatistics" resultType="map" parameterType="AgricultureBigDataBO">
+        SELECT
+            year ,
+            SUM( estimated_production ) AS estimatedProductionNum,
+            SUM( actual_output ) AS actualOutputNum
+        FROM
+            centerdata_t_farm_plant_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        GROUP BY
+            year
+        ORDER BY
+            year desc
+    </select>
+
+    <select id="getAgriculturalSubsidy" resultType="map" parameterType="AgricultureBigDataBO">
+        SELECT
+            COALESCE ( SUM( subsidy_money ), 0 ) AS subsidyMoneyNum,
+            COALESCE ( SUM( farm_mac_money ), 0 ) AS farmMacMoneyNum,
+            COALESCE ( SUM( breed_money ), 0 ) AS breedMoneyNum
+        FROM
+            centerdata_t_farm_subsidy_info
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+    </select>
+
+    <select id="getAgriculturalSubsidyBySubclass" resultType="map" parameterType="AgricultureBigDataBO">
+        SELECT
+            a.dict_label AS category,
+            <if test="name == 'farm_subsidy_type'">
+                COALESCE ( SUM( subsidy_money ), 0 ) AS MoneyNum
+            </if>
+            <if test="name == 'farm_mac_type'">
+                COALESCE ( SUM( farm_mac_money ), 0 ) AS MoneyNum
+            </if>
+            <if test="name == 'farm_breed_type'">
+                COALESCE ( SUM( breed_money ), 0 ) AS MoneyNum
+            </if>
+        FROM
+            ${database_system}.sys_dict_data a
+        LEFT JOIN centerdata_t_farm_subsidy_info b ON
+                <if test="name == 'farm_subsidy_type'">
+                    b.subsidy_type = a.dict_value
+                </if>
+                <if test="name == 'farm_mac_type'">
+                    b.farm_mac_type = a.dict_value
+                </if>
+                <if test="name == 'farm_breed_type'">
+                    b.breed_type = a.dict_value
+                </if>
+        left join
+            ${database_system}.sys_dept d on d.dept_id = b.dept_id
+        <where>
+            and a.dict_type = #{name}
+            ${params.dataScope}
+        </where>
+        GROUP BY
+            a.dict_value
+    </select>
+
+    <select id="getFertilizerStatistics" resultType="map" parameterType="AgricultureBigDataBO">
+        SELECT
+            a.dict_label AS category,
+            COALESCE ( SUM( stock ), 0 ) AS stockNum
+        FROM
+            ${database_system}.sys_dict_data a
+        LEFT JOIN centerdata_t_farm_chemical_fertilizer_info b ON b.chemical_fertilizer_type = a.dict_value
+        left join
+            ${database_system}.sys_dept d on d.dept_id = b.dept_id
+        <where>
+            a.dict_type = "farm_chemical_type"
+            ${params.dataScope}
+        </where>
+        GROUP BY
+            a.dict_value
+        UNION ALL
+        SELECT
+            "总库存量" AS category,
+            COALESCE ( SUM( stock ), 0 ) AS stockNum
+        FROM
+            centerdata_t_farm_chemical_fertilizer_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>
+            a.chemical_fertilizer_type is not null
+            ${params.dataScope}
+        </where>
+    </select>
+
+    <select id="getCooperativesStatistics" resultType="map">
+
+    </select>
+
 </mapper>