智慧农业后台管理
tangzy
2022-05-12 82d747d6ca589fda3d2e8b02a80020e8496b536a
地块列表
5 files modified
214 ■■■■■ changed files
src/main/java/org/springblade/modules/lang/controller/LandController.java 102 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/lang/mapper/LandMapper.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml 47 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/lang/service/ILandService.java 22 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/lang/controller/LandController.java
@@ -16,17 +16,22 @@
 */
package org.springblade.modules.lang.controller;
import io.lettuce.core.output.DoubleOutput;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.common.utils.PolyginArea;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.farm.entity.Farm;
import org.springblade.modules.farm.vo.FarmVO;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -34,6 +39,11 @@
import org.springblade.modules.lang.vo.LandVO;
import org.springblade.modules.lang.service.ILandService;
import org.springblade.core.boot.ctrl.BladeController;
import java.awt.geom.Point2D;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
/**
 * 地块表 控制器
@@ -57,6 +67,15 @@
    @ApiOperation(value = "详情", notes = "传入land")
    public R<Land> detail(Land land) {
        Land detail = landService.getOne(Condition.getQueryWrapper(land));
        return R.data(detail);
    }
    /**
     * 详情信息(自定义查询)
     */
    @GetMapping("/details")
    public R<Land> details(LandVO land) {
        Land detail = landService.getLandInfo(land);
        return R.data(detail);
    }
@@ -89,7 +108,41 @@
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入land")
    public R save(@Valid @RequestBody Land land) {
        return R.status(landService.save(land));
        String range = land.getLandRange();
        //坐标转换
        if (null != land.getLandRange() && !land.getLandRange().equals("")) {
            //替换逗号为空格
            String sNull = land.getLandRange().replaceAll(",", " ");
            //替换分号为逗号
            String replaceAll = sNull.replaceAll(";", ",");
            land.setLandRange("'POLYGON((" + replaceAll + "))'");
        }
        List<Point2D.Double> points = new ArrayList<Point2D.Double>();
        double v1;
        String landRange = range;
        String[] s1 = landRange.split(";");
        for (String ss : s1) {
            String[] temp = ss.split(",");
            Point2D.Double point = new Point2D.Double(Double.parseDouble(temp[0]),
                Double.parseDouble(temp[1]));
            points.add(point);
        }
        PolyginArea tp = new PolyginArea();
        double area = tp.getAreaByxy(points);
        Integer landUnit = land.getLandUnit();
        //(0: 亩  1:分  2:平方米
        if (landUnit == 0) {
            double v = area * 0.0015;
            v1 = (double) Math.round(v * 100) / 100;
        } else if (landUnit == 1) {
            double v = area * 0.015;
            v1 = (double) Math.round(v * 100) / 100;
        } else {
            v1 = (double) Math.round(area * 100) / 100;
        }
        land.setLandArea(String.valueOf(v1));
        land.setType(1);
        return R.status(landService.saveLandInfo(land));
    }
    /**
@@ -99,7 +152,41 @@
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入land")
    public R update(@Valid @RequestBody Land land) {
        return R.status(landService.updateById(land));
        String range = land.getLandRange();
        //坐标转换
        if (null != land.getLandRange() && !land.getLandRange().equals("")) {
            //替换逗号为空格
            String sNull = land.getLandRange().replaceAll(",", " ");
            //替换分号为逗号
            String replaceAll = sNull.replaceAll(";", ",");
            land.setLandRange("'POLYGON((" + replaceAll + "))'");
        }
        List<Point2D.Double> points = new ArrayList<Point2D.Double>();
        double v1;
        String landRange = range;
        String[] s1 = landRange.split(";");
        for (String ss : s1) {
            String[] temp = ss.split(",");
            Point2D.Double point = new Point2D.Double(Double.parseDouble(temp[0]),
                Double.parseDouble(temp[1]));
            points.add(point);
        }
        PolyginArea tp = new PolyginArea();
        double area = tp.getAreaByxy(points);
        Integer landUnit = land.getLandUnit();
        //(0: 亩  1:分  2:平方米
        if (landUnit == 0) {
            double v = area * 0.0015;
            v1 = (double) Math.round(v * 100) / 100;
        } else if (landUnit == 1) {
            double v = area * 0.015;
            v1 = (double) Math.round(v * 100) / 100;
        } else {
            v1 = (double) Math.round(area * 100) / 100;
        }
        land.setLandArea(String.valueOf(v1));
        land.setType(1);
        return R.status(landService.updateLandById(land));
    }
    /**
@@ -112,7 +199,7 @@
        return R.status(landService.saveOrUpdate(land));
    }
    /**
     * 删除 地块表
     */
@@ -123,5 +210,12 @@
        return R.status(landService.deleteLogic(Func.toLongList(ids)));
    }
    /**
     * 地块列表
     */
    @GetMapping("/selectLandList")
    public R selectLandList(String userid) {
        return R.data(landService.selectLandList(userid));
    }
}
src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
@@ -16,6 +16,9 @@
 */
package org.springblade.modules.lang.mapper;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.farm.entity.Farm;
import org.springblade.modules.farm.vo.FarmVO;
import org.springblade.modules.lang.entity.Land;
import org.springblade.modules.lang.vo.LandVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -38,5 +41,17 @@
     * @return
     */
    List<LandVO> selectLandPage(IPage page, LandVO land);
    boolean saveLandInfo(@Param("land") Land land);
    /**
     * 详情信息(自定义查询)
     * @return
     */
    Land getLandInfo(@Param("land") LandVO land);
    /**
     * 更新地块信息
     * @param farm
     * @return
     */
    int updateLandById(@Param("land") Land land);
    List selectLandList(String userid);
}
src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
@@ -16,7 +16,52 @@
    <select id="selectLandPage" resultMap="landResultMap">
        select * from sys_land where is_deleted = 0
        select *
        from sys_land
        where is_deleted = 0
    </select>
    <insert id="saveLandInfo">
        insert into sys_land
        (user_id,land_name,land_type,land_area,land_range,type,land_unit)
        values
        (#{land.userId},#{land.landName},#{land.landType},#{land.landArea},
        <if test="land.landRange!=null and land.landRange!=''">
            ST_GeomFromText(${land.landRange}),
        </if>
        #{land.type},#{land.landUnit})
    </insert>
    <!--详情信息(自定义查询)-->
    <select id="getLandInfo" resultType="org.springblade.modules.lang.vo.LandVO">
        select user_id,
               land_name,
               land_type,
               land_area,
               ST_ASTEXT(land_range) as landRange,
               type,
               land_unit
        from sys_land
        where 1 = 1 and is_deleted = 0
          and id = #{land.id}
    </select>
    <!--自定义修改电子围栏数据-->
    <update id="updateLandById">
        update sys_land set user_id = #{land.userId},
        land_name = #{land.landName},
        land_type = #{land.landType},
        land_area = #{land.landArea},
        <if test="land.landRange!=null and land.landRange!=''">
            land_range = ST_GeomFromText(${land.landRange}),
        </if>
        type = #{land.type},
        land_unit = #{land.landUnit},
        where id = #{land.id}
    </update>
    <select id="selectLandList" resultType="java.util.HashMap">
      select id,land_name as landName from sys_land where user_id=#{userid} and is_deleted = 0
    </select>
</mapper>
src/main/java/org/springblade/modules/lang/service/ILandService.java
@@ -16,10 +16,14 @@
 */
package org.springblade.modules.lang.service;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.farm.entity.Farm;
import org.springblade.modules.lang.entity.Land;
import org.springblade.modules.lang.vo.LandVO;
import org.springblade.core.mp.base.BaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 地块表 服务类
@@ -37,5 +41,23 @@
     * @return
     */
    IPage<LandVO> selectLandPage(IPage<LandVO> page, LandVO land);
    boolean saveLandInfo(Land land);
    /**
     * 详情信息(自定义查询)
     * @return
     */
    Land getLandInfo(LandVO land);
    /**
     * 更新地块信息
     * @param farm
     * @return
     */
    boolean updateLandById(Land land);
    /**
     * 地块列表
     * @param userid
     * @return
     */
    List selectLandList(String userid);
}
src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
@@ -24,6 +24,8 @@
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 地块表 服务实现类
 *
@@ -38,4 +40,28 @@
        return page.setRecords(baseMapper.selectLandPage(page, land));
    }
    @Override
    public boolean saveLandInfo(Land land) {
        return baseMapper.saveLandInfo(land);
    }
    @Override
    public Land getLandInfo(LandVO land) {
        return baseMapper.getLandInfo(land);
    }
    @Override
    public boolean updateLandById(Land land) {
        int i = baseMapper.updateLandById(land);
        if (i > 0) {
            return true;
        }
        return false;
    }
    @Override
    public List selectLandList(String userid) {
        return baseMapper.selectLandList(userid);
    }
}