智慧农业后台管理
Administrator
2022-06-06 58181a5a0934ef8768bfbab08bc83ac816708d23
面积统计新增,种植产量统计新增
11 files modified
148 ■■■■■ changed files
src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml 15 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml 21 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java 37 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java 23 ●●●●● patch | view | raw | blame | history
src/main/resources/application.yml 3 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
@@ -201,6 +201,16 @@
    }
    /**
     * 农产品种养统计(累计和)
     * @param farmPlantVO 农产品种植对象
     * @return
     */
    @GetMapping("/getFarmPlantStatisticsCount")
    public R<FarmPlantVO> getFarmPlantStatisticsCount(FarmPlantVO farmPlantVO) {
        return R.data(farmplantService.getFarmPlantStatisticsCount(farmPlantVO));
    }
    /**
     * 农产品列表
     * @param farm 农产品对象
     * @return
src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java
@@ -64,6 +64,16 @@
    }
    /**
     * 统计产量
     * @param farmProductStock
     * @return
     */
    @GetMapping("/statisticsProduct")
    public R<FarmProductStockVO> statisticsProduct(FarmProductStockVO farmProductStock) {
        return R.data(farmProductStockService.statisticsProduct(farmProductStock));
    }
    /**
     * 新增
     */
    @PostMapping("/save")
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
@@ -40,4 +40,12 @@
     * @return
     */
    List<Strain> strainTree(@Param("farm") FarmPlantVO farm);
    /**
     * 统计查询种植面积
      * @param farm
     * @return
     */
    List<FarmPlantVO> getFarmPlantStatisticsCount(@Param("farmPlant") FarmPlantVO farm);
}
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
@@ -53,6 +53,21 @@
        group by sfp.strain_id,strain_name,land_unit
    </select>
    <!--查询农场养殖记录数据-->
    <select id="getFarmPlantStatisticsCount" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
        select sfp.strain_id,ss.strain_name strainName,sum(sl.land_area) areas,land_unit landUnit from sys_farm_plant sfp
        left join sys_strain ss on ss.id = sfp.strain_id
        left join sys_land sl on sl.id = sfp.land_id
        where 1=1
        <if test="farmPlant.startTime!=null and farmPlant.startTime!=''">
            and sfp.transplan_time &gt;= #{farmPlant.startTime}
        </if>
        <if test="farmPlant.endTime!=null and farmPlant.endTime!=''">
            and sfp.transplan_time &lt;= #{farmPlant.endTime}
        </if>
        group by sfp.strain_id,strain_name,land_unit
    </select>
    <!--已种植农产品列表-->
    <select id="strainTree" resultType="org.springblade.modules.farmplant.entity.Strain">
        select ss.id,ss.strain_name strainName from sys_farm_plant sfp
src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
@@ -24,4 +24,11 @@
     * @return
     */
    List<FarmProductStockVO> selectFarmProductStockPage(@Param("page") IPage page, @Param("farmProductStock") FarmProductStockVO farmProductStock);
    /**
     * 统计产量
     * @param farmProductStock
     * @return
     */
    List<FarmProductStockVO> statisticsProduct(@Param("farmProductStock") FarmProductStockVO farmProductStock);
}
src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
@@ -21,4 +21,25 @@
        </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 &gt;= #{farmProductStock.startTime}
        </if>
        <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
            and sfps.time &lt;= #{farmProductStock.endTime}
        </if>
        group by sfps.strain_id,ss.url,ss.strain_name
    </select>
</mapper>
src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
@@ -40,4 +40,11 @@
     * @return
     */
    List<Strain> strainTree(FarmPlantVO farm);
    /**
     * 农产品种养统计(累计和)
     * @param farmPlantVO 农产品种植对象
     * @return
     */
    FarmPlantVO getFarmPlantStatisticsCount(FarmPlantVO farmPlantVO);
}
src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
@@ -21,4 +21,11 @@
     * @return
     */
    IPage<FarmProductStockVO> selectFarmProductStockPage(IPage<FarmProductStockVO> page, FarmProductStockVO farmProductStock);
    /**
     * 统计产量
     * @param farmProductStock
     * @return
     */
    FarmProductStockVO statisticsProduct(FarmProductStockVO farmProductStock);
}
src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java
@@ -1,6 +1,7 @@
package org.springblade.modules.farmplant.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.farm.entity.Farm;
import org.springblade.modules.farmplant.entity.FarmPlant;
import org.springblade.modules.farmplant.entity.Strain;
import org.springblade.modules.farmplant.mapper.FarmPlantMapper;
@@ -75,4 +76,40 @@
    public List<Strain> strainTree(FarmPlantVO farm) {
        return baseMapper.strainTree(farm);
    }
    /**
     * 农产品种养统计(累计和)
     * @param farm 农产品种植对象
     * @return
     */
    @Override
    public FarmPlantVO getFarmPlantStatisticsCount(FarmPlantVO farm) {
        List<FarmPlantVO> farmPlantVOS = baseMapper.getFarmPlantStatisticsCount(farm);
        FarmPlantVO plantVO = new FarmPlantVO();
        if (farmPlantVOS.size()>0){
            BigDecimal decimal = new BigDecimal(0.0);
            //遍历
            for (FarmPlantVO farmPlantVO : farmPlantVOS) {
                if (farmPlantVO.getLandUnit().equals("0")){
                    BigDecimal bg = new BigDecimal(farmPlantVO.getAreas()*1);
                    decimal = decimal.add(bg.setScale(2, BigDecimal.ROUND_HALF_UP));
                }
                if (farmPlantVO.getLandUnit().equals("1")){
                    BigDecimal bg = new BigDecimal(farmPlantVO.getAreas()*0.1);
                    decimal = decimal.add(bg.setScale(2, BigDecimal.ROUND_HALF_UP));
                }
                if (farmPlantVO.getLandUnit().equals("2")){
                    BigDecimal bg = new BigDecimal(farmPlantVO.getAreas()*0.0015);
                    decimal = decimal.add(bg.setScale(2, BigDecimal.ROUND_HALF_UP));
                }
            }
            //求和
            plantVO.setArea(decimal.toString());
        }else {
            //求和
            plantVO.setArea("0");
        }
        //返回
        return plantVO;
    }
}
src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
@@ -7,6 +7,9 @@
import org.springblade.modules.farmplant.vo.FarmProductStockVO;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
 * 农产品库存服务实现类
 * @since 2022-05-18
@@ -25,4 +28,24 @@
    public IPage<FarmProductStockVO> selectFarmProductStockPage(IPage<FarmProductStockVO> page, FarmProductStockVO farmProductStock) {
        return page.setRecords(baseMapper.selectFarmProductStockPage(page, farmProductStock));
    }
    /**
     * 统计产量
     * @param farmProductStock
     * @return
     */
    @Override
    public FarmProductStockVO statisticsProduct(FarmProductStockVO farmProductStock) {
        List<FarmProductStockVO> stockVOs = baseMapper.statisticsProduct(farmProductStock);
        FarmProductStockVO stock = new FarmProductStockVO();
        BigDecimal decimal = new BigDecimal(0.0);
        //遍历
        for (FarmProductStockVO stockVO : stockVOs) {
            BigDecimal bg = new BigDecimal(stockVO.getWeight());
            decimal = decimal.add(bg.setScale(2, BigDecimal.ROUND_HALF_UP));
        }
        stock.setWeight(decimal.toString());
        //返回
        return stock;
    }
}
src/main/resources/application.yml
@@ -201,6 +201,9 @@
      - /blade-test/**
      - /farmingRecord/**
      - /blade-system/dict-biz/**
      - /stock/**
      - /farmPlant/**
      - /farmProductStock/**
    #授权认证配置
    auth:
      - method: ALL