智慧农业后台管理
Administrator
2022-05-13 f04ad887cf76500355e8adba008dba2d86abea70
农产品记录新增,图片上传接口新增
14 files added
673 ■■■■■ changed files
src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java 125 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/controller/StrainController.java 113 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/entity/FarmPlant.java 117 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/entity/Strain.java 58 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml 30 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/StrainMapper.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/StrainMapper.xml 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java 24 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/StrainService.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/impl/StrainServiceImpl.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/vo/FarmPlantVO.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/vo/StrainVO.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
New file
@@ -0,0 +1,125 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.farmplant.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
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.farmplant.entity.FarmPlant;
import org.springblade.modules.farmplant.service.FarmPlantService;
import org.springblade.modules.farmplant.vo.FarmPlantVO;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Date;
/**
 * 农场养殖记录表控制器
 * @since 2022-05-12
 * @author zhongrj
 */
@RestController
@AllArgsConstructor
@RequestMapping("/farmPlant")
public class FarmPlantController extends BladeController {
    private final FarmPlantService farmplantService;
    /**
     * 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入farmPlant")
    public R<FarmPlant> detail(FarmPlant farmPlant) {
        FarmPlant detail = farmplantService.getOne(Condition.getQueryWrapper(farmPlant));
        return R.data(detail);
    }
    /**
     * 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入farmPlant")
    public R<IPage<FarmPlant>> list(FarmPlant farmPlant, Query query) {
        IPage<FarmPlant> pages = farmplantService.page(Condition.getPage(query), Condition.getQueryWrapper(farmPlant));
        return R.data(pages);
    }
    /**
     * 自定义分页
     */
    @GetMapping("/page")
    @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);
        return R.data(pages);
    }
    /**
     * 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入farmPlant")
    public R save(@Valid @RequestBody FarmPlant farmPlant) {
        farmPlant.setCreateTime(new Date());
        return R.status(farmplantService.save(farmPlant));
    }
    /**
     * 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入farmPlant")
    public R update(@Valid @RequestBody FarmPlant farmPlant) {
        //更新并返回
        return R.status(farmplantService.updateById(farmPlant));
    }
    /**
     * 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入farmPlant")
    public R submit(@Valid @RequestBody FarmPlant farmPlant) {
        return R.status(farmplantService.saveOrUpdate(farmPlant));
    }
    /**
     * 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(farmplantService.removeByIds(Func.toLongList(ids)));
    }
}
src/main/java/org/springblade/modules/farmplant/controller/StrainController.java
New file
@@ -0,0 +1,113 @@
package org.springblade.modules.farmplant.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.common.node.TreeNode;
import org.springblade.core.boot.ctrl.BladeController;
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.farmplant.entity.Strain;
import org.springblade.modules.farmplant.service.StrainService;
import org.springblade.modules.farmplant.vo.StrainVO;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
 * 农场检测报告/证书控制器
 * @since 2022-05-11
 * @author zhongrj
 */
@RestController
@AllArgsConstructor
@RequestMapping("/strain")
public class StrainController extends BladeController {
    private final StrainService strainService;
    /**
     * 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入strain")
    public R<Strain> detail(Strain strain) {
        Strain detail = strainService.getOne(Condition.getQueryWrapper(strain));
        return R.data(detail);
    }
    /**
     * 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入strain")
    public R<IPage<Strain>> list(Strain strain, Query query) {
        IPage<Strain> pages = strainService.page(Condition.getPage(query), Condition.getQueryWrapper(strain));
        return R.data(pages);
    }
    /**
     * 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入strain")
    public R<IPage<StrainVO>> page(StrainVO strain, Query query) {
        IPage<StrainVO> pages = strainService.selectStrainPage(Condition.getPage(query), strain);
        return R.data(pages);
    }
    /**
     * 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入strain")
    public R save(@Valid @RequestBody Strain strain) {
        return R.status(strainService.save(strain));
    }
    /**
     * 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入strain")
    public R update(@Valid @RequestBody Strain strain) {
        return R.status(strainService.updateById(strain));
    }
    /**
     * 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入strain")
    public R submit(@Valid @RequestBody Strain strain) {
        return R.status(strainService.saveOrUpdate(strain));
    }
    /**
     * 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(strainService.removeByIds(Func.toLongList(ids)));
    }
    @GetMapping("/strain-tree")
    public R strainTree(StrainVO strain){
        return R.data(strainService.strainTree(strain));
    }
}
src/main/java/org/springblade/modules/farmplant/entity/FarmPlant.java
New file
@@ -0,0 +1,117 @@
package org.springblade.modules.farmplant.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 农场养殖记录表实体类
 * @since 2022-05-12
 * @author zhongrj
 */
@Data
@TableName("sys_farm_plant")
public class FarmPlant implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    /**
     * 土地id
     */
    private String landId;
    /**
     * 种类id
     */
    private Integer strainId;
    /**
     * 品种
     */
    private String varieties;
    /**
     * 种植标准(0:有机 1:绿色 2:无公害 3:普通)
     */
    private String plant;
    /**
     * 种植方式(0:移栽 1:直播)
     */
    private String plantingWay;
    /**
     * 作业方式(0:人工 1:机械)
     */
    private String jobWay;
    /**
     * 移栽时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date transplanTime;
    /**
     * 预计采购时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date recoveryTime;
    /**
     * 预计亩产
     */
    private Integer per;
    /**
     * 株数
     */
    private Integer plantNumber;
    /**
     * 株间距
     */
    private Integer plantSpacing;
    /**
     * 种植类型(0:种植业 1:水产业)
     */
    private String farmType;
    /**
     * 投苗时间(养殖业独有字段)
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date seedingTime;
    /**
     * 养殖数量(养殖业独有字段)
     */
    private Integer breed;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
src/main/java/org/springblade/modules/farmplant/entity/Strain.java
New file
@@ -0,0 +1,58 @@
package org.springblade.modules.farmplant.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 种养品种实体类
 * @since 2022-05-12
 * @author zhongrj
 */
@Data
@TableName("sys_strain")
public class Strain implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    /**
     * 名称
     */
    private String strainName;
    /**
     * 品种类型(0:种植业 1:水产业)
     */
    private String strainType;
    /**
     * 品种图片url
     */
    private String url;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 别名
     */
    private String alias;
}
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
New file
@@ -0,0 +1,26 @@
package org.springblade.modules.farmplant.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.farmplant.entity.FarmPlant;
import org.springblade.modules.farmplant.vo.FarmPlantVO;
import java.util.List;
/**
 *  农场养殖记录表Mapper 接口
 * @since 2022-05-12
 * @author zhongrj
 */
public interface FarmPlantMapper extends BaseMapper<FarmPlant> {
    /**
     * 自定义分页
     *
     * @param page
     * @param farm
     * @return
     */
    List<FarmPlantVO> selectFarmPlantPage(@Param("page") IPage page, @Param("farmPlant") FarmPlantVO farm);
}
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
New file
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.farmplant.mapper.FarmPlantMapper">
    <!--自定义查询农场养殖记录分页数据-->
    <select id="selectFarmPlantPage" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
        select sfp.*,ss.strain_name strainName from sys_farm_plant sfp
        left join sys_strain ss on ss.id = sfp.strain_id
        where 1=1
        <if test="farmPlant.plant!=null and farmPlant.plant!=''">
            and sfp.plant = #{farmPlant.plant}
        </if>
        <if test="farmPlant.landId!=null and farmPlant.landId!=''">
            and sfp.land_id = #{farmPlant.landId}
        </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.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>
        order by sfp.id desc
    </select>
</mapper>
src/main/java/org/springblade/modules/farmplant/mapper/StrainMapper.java
New file
@@ -0,0 +1,28 @@
package org.springblade.modules.farmplant.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.common.node.TreeNode;
import org.springblade.modules.farmplant.entity.Strain;
import org.springblade.modules.farmplant.vo.StrainVO;
import java.util.List;
/**
 *  种养品种Mapper 接口
 * @since 2022-05-12
 * @author zhongrj
 */
public interface StrainMapper extends BaseMapper<Strain> {
    /**
     * 自定义分页
     *
     * @param page
     * @param strain
     * @return
     */
    List<StrainVO> selectStrainPage(@Param("page") IPage page, @Param("strain") StrainVO strain);
}
src/main/java/org/springblade/modules/farmplant/mapper/StrainMapper.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.farmplant.mapper.StrainMapper">
    <!--自定义查询农场检测报告/证书分页数据-->
    <select id="selectStrainPage" resultType="org.springblade.modules.farmplant.vo.StrainVO">
        select * from sys_strain where 1=1
    </select>
</mapper>
src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
New file
@@ -0,0 +1,24 @@
package org.springblade.modules.farmplant.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.farmplant.entity.FarmPlant;
import org.springblade.modules.farmplant.vo.FarmPlantVO;
/**
 * 农场养殖记录表服务类
 * @since 2022-05-12
 * @author zhongrj
 */
public interface FarmPlantService extends IService<FarmPlant> {
    /**
     * 自定义分页
     *
     * @param page
     * @param farm
     * @return
     */
    IPage<FarmPlantVO> selectFarmPlantPage(IPage<FarmPlantVO> page, FarmPlantVO farm);
}
src/main/java/org/springblade/modules/farmplant/service/StrainService.java
New file
@@ -0,0 +1,35 @@
package org.springblade.modules.farmplant.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.common.node.TreeNode;
import org.springblade.modules.farmplant.entity.Strain;
import org.springblade.modules.farmplant.vo.StrainVO;
import java.util.List;
/**
 * 种养品种服务类
 * @since 2022-05-12
 * @author zhongrj
 */
public interface StrainService extends IService<Strain> {
    /**
     * 自定义分页
     *
     * @param page
     * @param strain
     * @return
     */
    IPage<StrainVO> selectStrainPage(IPage<StrainVO> page, StrainVO strain);
    /**
     * 查询种类信息
     * @param strain
     * @return
     */
    List<Strain> strainTree(StrainVO strain);
}
src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java
New file
@@ -0,0 +1,29 @@
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.farmplant.entity.FarmPlant;
import org.springblade.modules.farmplant.mapper.FarmPlantMapper;
import org.springblade.modules.farmplant.service.FarmPlantService;
import org.springblade.modules.farmplant.vo.FarmPlantVO;
import org.springframework.stereotype.Service;
/**
 * 农场养殖记录表服务实现类
 * @since 2022-05-12
 * @author zhongrj
 */
@Service
public class FarmPlantServiceImpl extends ServiceImpl<FarmPlantMapper, FarmPlant> implements FarmPlantService {
    /**
     * 自定义分页
     *
     * @param page
     * @param farm
     * @return
     */
    @Override
    public IPage<FarmPlantVO> selectFarmPlantPage(IPage<FarmPlantVO> page, FarmPlantVO farm) {
        return page.setRecords(baseMapper.selectFarmPlantPage(page, farm));
    }
}
src/main/java/org/springblade/modules/farmplant/service/impl/StrainServiceImpl.java
New file
@@ -0,0 +1,43 @@
package org.springblade.modules.farmplant.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.node.TreeNode;
import org.springblade.modules.farmplant.entity.Strain;
import org.springblade.modules.farmplant.mapper.StrainMapper;
import org.springblade.modules.farmplant.service.StrainService;
import org.springblade.modules.farmplant.vo.StrainVO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * 种养品种服务实现类
 * @since 2022-05-12
 * @author zhongrj
 */
@Service
public class StrainServiceImpl extends ServiceImpl<StrainMapper, Strain> implements StrainService {
    /**
     * 自定义分页
     * @param page
     * @param strain
     * @return
     */
    @Override
    public IPage<StrainVO> selectStrainPage(IPage<StrainVO> page, StrainVO strain) {
        return page.setRecords(baseMapper.selectStrainPage(page, strain));
    }
    /**
     * 查询种类信息
     * @param strain
     * @return
     */
    @Override
    public List<Strain> strainTree(StrainVO strain) {
        return list(new QueryWrapper<>(strain));
    }
}
src/main/java/org/springblade/modules/farmplant/vo/FarmPlantVO.java
New file
@@ -0,0 +1,20 @@
package org.springblade.modules.farmplant.vo;
import lombok.Data;
import org.springblade.modules.farmplant.entity.FarmPlant;
/**
 * 农场养殖记录表VO
 * @since 2022-05-12
 * @author zhongrj
 */
@Data
public class FarmPlantVO extends FarmPlant {
    private static final long serialVersionUID = 1L;
    /**
     * 种类名称
     */
    private String strainName;
}
src/main/java/org/springblade/modules/farmplant/vo/StrainVO.java
New file
@@ -0,0 +1,15 @@
package org.springblade.modules.farmplant.vo;
import lombok.Data;
import org.springblade.modules.farmplant.entity.Strain;
/**
 * 种养品种VO
 * @since 2022-05-12
 * @author zhongrj
 */
@Data
public class StrainVO extends Strain {
    private static final long serialVersionUID = 1L;
}