智慧农业后台管理
guoshilong
2022-08-02 dc365330c504f3a7cc88c42aef5f963b72509dee
整合种植品种中相同品种的面积
5 files modified
81 ■■■■■ changed files
src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java 3 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml 68 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
@@ -102,7 +102,8 @@
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入farmPlant")
    public R<IPage<FarmPlantVO>> page(FarmPlantVO farmPlant, Query query) {
        IPage<FarmPlantVO> pages = farmplantService.selectFarmPlantPage(Condition.getPage(query), farmPlant);
//        IPage<FarmPlantVO> pages = farmplantService.selectFarmPlantPage(Condition.getPage(query), farmPlant);
        IPage<FarmPlantVO> pages = farmplantService.selectFarmPlantPageCount(Condition.getPage(query), farmPlant);
        return R.data(pages);
    }
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
@@ -27,6 +27,7 @@
     * @return
     */
    List<FarmPlantVO> selectFarmPlantPage(@Param("page") IPage page, @Param("farmPlant") FarmPlantVO farm);
    IPage<FarmPlantVO> selectFarmPlantPageCount(IPage<Object> page, FarmPlantVO farmPlant);
    List<FarmPlantVO> getFarmPlantStatisticsCountz(@Param("page") IPage page, @Param("farmPlant") FarmPlantVO farm);
    /**
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
@@ -54,6 +54,74 @@
        order by sfp.id desc
    </select>
    <select id="selectFarmPlantPageCount" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
--         sfp.*,ss.strain_name strainName,ss.url,sl.land_name landName,sl.land_area area,land_unit landUnit
        SELECT
            a.strain_id,a.strainName,SUM(a.land_area) area,a.url,a.tenant_id,a.dept_id
        FROM
            (
                SELECT
                    sfp.*,
                    ss.strain_name AS strainName,
                    ss.url,
                    sl.land_name AS landName,
                    land_unit AS landUnit,
                    ( CASE WHEN land_unit = 2 THEN sl.land_area * 0.0015 WHEN land_unit = 1 THEN sl.land_area * 0.1 ELSE sl.land_area END ) land_area
                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.plant!=null and farmPlant.plant!=''">
            and sfp.plant = #{farmPlant.plant}
        </if>
        <if test="farmPlant.year!=null and farmPlant.year!=''">
            and sfp.create_time like concat('%',#{farmPlant.year},'%')
        </if>
        <if test="farmPlant.landId!=null and farmPlant.landId!=''">
            and sfp.land_id = #{farmPlant.landId}
        </if>
        <if test="farmPlant.strainId!=null and farmPlant.strainId!=''">
            and sfp.strain_id = #{farmPlant.strainId}
        </if>
        <if test="farmPlant.plantingWay!=null and farmPlant.plantingWay!=''">
            and sfp.planting_way = #{farmPlant.plantingWay}
        </if>
        <if test="farmPlant.jobWay!=null and farmPlant.jobWay!=''">
            and sfp.job_way = #{farmPlant.jobWay}
        </if>
        <if test="farmPlant.status!=null and farmPlant.status!=''">
            and sfp.status = #{farmPlant.status}
        </if>
        <if test="farmPlant.strainName!=null and farmPlant.strainName!=''">
            and ss.strain_name like concat('%',#{farmPlant.strainName},'%')
        </if>
        <if test="farmPlant.varieties!=null and farmPlant.varieties!=''">
            and sfp.varieties like concat('%',#{farmPlant.varieties},'%')
        </if>
        <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>
        <if test="farmPlant.deptId!=null and farmPlant.deptId!=''">
            and sfp.dept_id = #{farmPlant.deptId}
        </if>
        <if test="farmPlant.tenantId!=null and farmPlant.tenantId!=''">
            and sfp.tenant_id = #{farmPlant.tenantId}
        </if>
        <if test="farmPlant.farmId!=null and farmPlant.farmId!=''">
            and sl.farm_id = #{farmPlant.farmId}
        </if>
                ORDER BY
                    sfp.id DESC
            ) a
        GROUP BY
            a.strain_id,a.dept_id
    </select>
    <!--自定义查询农场养殖记录分页数据-->
    <select id="getFarmPlantStatistics" 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
src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
@@ -26,6 +26,7 @@
     * @return
     */
    IPage<FarmPlantVO> selectFarmPlantPage(IPage<FarmPlantVO> page, FarmPlantVO farm);
    IPage<FarmPlantVO> selectFarmPlantPageCount(IPage<Object> page, FarmPlantVO farmPlant);
    IPage<FarmPlantVO> getFarmPlantStatisticsCountz(IPage<FarmPlantVO> page, FarmPlantVO farm);
    /**
@@ -66,4 +67,6 @@
     * @return
     */
    List<FarmPlantVO> getFarmPlantList(FarmPlantVO farmPlant);
}
src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java
@@ -36,6 +36,7 @@
        List<FarmPlantVO> farmPlantVOS = baseMapper.selectFarmPlantPage(page, farm);
        //遍历
        farmPlantVOS.forEach(farmPlantVO -> {
            //面积单位(0: 亩 1:分 2:平方米)
            if (farmPlantVO.getLandUnit().equals("0")) {
                farmPlantVO.setArea(String.format("%.2f", Double.parseDouble(farmPlantVO.getArea()) * 1));
            }
@@ -50,6 +51,11 @@
    }
    @Override
    public IPage<FarmPlantVO> selectFarmPlantPageCount(IPage<Object> page, FarmPlantVO farmPlant) {
        return baseMapper.selectFarmPlantPageCount(page, farmPlant);
    }
    @Override
    public IPage<FarmPlantVO> getFarmPlantStatisticsCountz(IPage<FarmPlantVO> page, FarmPlantVO farm) {
        List<FarmPlantVO> farmPlantVOS = baseMapper.getFarmPlantStatisticsCountz(page, farm);
        //遍历