智慧农业后台管理
Administrator
2022-05-19 59b97facd0e3b24dbab21ebbebb7f4b19e8e87f2
新增溯源码及详情基础 curd
14 files added
565 ■■■■■ changed files
src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java 109 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/controller/TraceabilityDetailController.java 106 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/entity/Traceability.java 62 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/entity/TraceabilityDetail.java 69 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityDetailMapper.java 27 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityDetailMapper.xml 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml 13 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/service/TraceabilityDetailService.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/service/TraceabilityService.java 24 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityDetailServiceImpl.java 32 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/vo/TraceabilityDetailVO.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/vo/TraceabilityVO.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java
New file
@@ -0,0 +1,109 @@
package org.springblade.modules.traceability.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.traceability.entity.Traceability;
import org.springblade.modules.traceability.service.TraceabilityService;
import org.springblade.modules.traceability.vo.TraceabilityVO;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Date;
/**
 * 溯源码表控制器
 * @since 2022-05-19
 * @author zhongrj
 */
@RestController
@AllArgsConstructor
@RequestMapping("/traceability")
public class TraceabilityController extends BladeController {
    private final TraceabilityService traceabilityService;
    /**
     * 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入traceability")
    public R<Traceability> detail(Traceability traceability) {
        Traceability detail = traceabilityService.getOne(Condition.getQueryWrapper(traceability));
        return R.data(detail);
    }
    /**
     * 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入traceability")
    public R<IPage<Traceability>> list(Traceability traceability, Query query) {
        IPage<Traceability> pages = traceabilityService.page(Condition.getPage(query), Condition.getQueryWrapper(traceability));
        return R.data(pages);
    }
    /**
     * 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入traceability")
    public R<IPage<TraceabilityVO>> page(TraceabilityVO traceability, Query query) {
        IPage<TraceabilityVO> pages = traceabilityService.selectTraceabilityPage(Condition.getPage(query), traceability);
        return R.data(pages);
    }
    /**
     * 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @Transactional(rollbackFor = Exception.class)
    public R save(@Valid @RequestBody Traceability traceability) {
        traceability.setCreateTime(new Date());
        return R.status(traceabilityService.save(traceability));
    }
    /**
     * 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入traceability")
    public R update(@Valid @RequestBody Traceability traceability) {
        //更新并返回
        return R.status(traceabilityService.updateById(traceability));
    }
    /**
     * 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入traceability")
    public R submit(@Valid @RequestBody Traceability traceability) {
        return R.status(traceabilityService.saveOrUpdate(traceability));
    }
    /**
     * 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(traceabilityService.removeByIds(Func.toLongList(ids)));
    }
}
src/main/java/org/springblade/modules/traceability/controller/TraceabilityDetailController.java
New file
@@ -0,0 +1,106 @@
package org.springblade.modules.traceability.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.traceability.entity.TraceabilityDetail;
import org.springblade.modules.traceability.service.TraceabilityDetailService;
import org.springblade.modules.traceability.vo.TraceabilityDetailVO;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
 * 溯源码详细表控制器
 * @since 2022-05-19
 * @author zhongrj
 */
@RestController
@AllArgsConstructor
@RequestMapping("/traceabilityDetail")
public class TraceabilityDetailController extends BladeController {
    private final TraceabilityDetailService traceabilityDetailService;
    /**
     * 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入traceabilityDetail")
    public R<TraceabilityDetail> detail(TraceabilityDetail traceabilityDetail) {
        TraceabilityDetail detail = traceabilityDetailService.getOne(Condition.getQueryWrapper(traceabilityDetail));
        return R.data(detail);
    }
    /**
     * 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入traceabilityDetail")
    public R<IPage<TraceabilityDetail>> list(TraceabilityDetail traceabilityDetail, Query query) {
        IPage<TraceabilityDetail> pages = traceabilityDetailService.page(Condition.getPage(query), Condition.getQueryWrapper(traceabilityDetail));
        return R.data(pages);
    }
    /**
     * 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入traceabilityDetail")
    public R<IPage<TraceabilityDetailVO>> page(TraceabilityDetailVO traceabilityDetail, Query query) {
        IPage<TraceabilityDetailVO> pages = traceabilityDetailService.selectTraceabilityDetailPage(Condition.getPage(query), traceabilityDetail);
        return R.data(pages);
    }
    /**
     * 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入traceabilityDetail")
    public R save(@Valid @RequestBody TraceabilityDetail traceabilityDetail) {
        return R.status(traceabilityDetailService.save(traceabilityDetail));
    }
    /**
     * 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入traceabilityDetail")
    public R update(@Valid @RequestBody TraceabilityDetail traceabilityDetail) {
        return R.status(traceabilityDetailService.updateById(traceabilityDetail));
    }
    /**
     * 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入traceabilityDetail")
    public R submit(@Valid @RequestBody TraceabilityDetail traceabilityDetail) {
        return R.status(traceabilityDetailService.saveOrUpdate(traceabilityDetail));
    }
    /**
     * 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(traceabilityDetailService.removeByIds(Func.toLongList(ids)));
    }
}
src/main/java/org/springblade/modules/traceability/entity/Traceability.java
New file
@@ -0,0 +1,62 @@
package org.springblade.modules.traceability.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-19
 * @author zhongrj
 */
@Data
@TableName("sys_traceability")
public class Traceability implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    /**
     * 溯源码编号
     */
    private String code;
    /**
     * 是否绑定溯源(0:已绑定 1:未绑定)
     */
    private String bind;
    /**
     * 是否打印(0:是 1:否)
     */
    private String print;
    /**
     * 溯源码图片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;
    /**
     * 采收id(溯源id)
     */
    private Integer recoveryId;
}
src/main/java/org/springblade/modules/traceability/entity/TraceabilityDetail.java
New file
@@ -0,0 +1,69 @@
package org.springblade.modules.traceability.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-19
 * @author zhongrj
 */
@Data
@TableName("sys_traceability_detail")
public class TraceabilityDetail implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    /**
     * 溯源码id
     */
    private Integer traceabilityId;
    /**
     * 商品名称
     */
    private String productName;
    /**
     * 联系电话
     */
    private String phone;
    /**
     * 产地
     */
    private String place;
    /**
     * 合格证编号
     */
    private String certificationCode;
    /**
     * 承诺依据 0:委托检测 1:自我检测 2:内部质量控制 3:自我承诺
     */
    private String according;
    /**
     * 创建时间
     */
    @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/traceability/mapper/TraceabilityDetailMapper.java
New file
@@ -0,0 +1,27 @@
package org.springblade.modules.traceability.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.traceability.entity.TraceabilityDetail;
import org.springblade.modules.traceability.vo.TraceabilityDetailVO;
import java.util.List;
/**
 *  溯源码详细表Mapper 接口
 * @since 2022-05-19
 * @author zhongrj
 */
public interface TraceabilityDetailMapper extends BaseMapper<TraceabilityDetail> {
    /**
     * 自定义分页
     *
     * @param page
     * @param traceabilityDetail
     * @return
     */
    List<TraceabilityDetailVO> selectTraceabilityDetailPage(@Param("page") IPage page, @Param("traceabilityDetail") TraceabilityDetailVO traceabilityDetail);
}
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityDetailMapper.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.traceability.mapper.TraceabilityDetailMapper">
    <!--自定义查询溯源码详细分页数据-->
    <select id="selectTraceabilityDetailPage" resultType="org.springblade.modules.traceability.vo.TraceabilityDetailVO">
        select * from sys_traceability_detail
        where 1=1
    </select>
</mapper>
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.java
New file
@@ -0,0 +1,26 @@
package org.springblade.modules.traceability.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.traceability.entity.Traceability;
import org.springblade.modules.traceability.vo.TraceabilityVO;
import java.util.List;
/**
 *  溯源码表Mapper 接口
 * @since 2022-05-19
 * @author zhongrj
 */
public interface TraceabilityMapper extends BaseMapper<Traceability> {
    /**
     * 自定义分页
     *
     * @param page
     * @param traceability
     * @return
     */
    List<TraceabilityVO> selectTraceabilityPage(@Param("page") IPage page, @Param("traceability") TraceabilityVO traceability);
}
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml
New file
@@ -0,0 +1,13 @@
<?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.traceability.mapper.TraceabilityMapper">
    <!--自定义查询农场养殖记录分页数据-->
    <select id="selectTraceabilityPage" resultType="org.springblade.modules.traceability.vo.TraceabilityVO">
        select * from sys_traceability
        where 1=1
        <if test="traceability.code!=null and traceability.code!=''">
            and code = #{traceability.code}
        </if>
    </select>
</mapper>
src/main/java/org/springblade/modules/traceability/service/TraceabilityDetailService.java
New file
@@ -0,0 +1,26 @@
package org.springblade.modules.traceability.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.traceability.entity.TraceabilityDetail;
import org.springblade.modules.traceability.vo.TraceabilityDetailVO;
import java.util.List;
/**
 * 溯源码详细表服务类
 * @since 2022-05-19
 * @author zhongrj
 */
public interface TraceabilityDetailService extends IService<TraceabilityDetail> {
    /**
     * 自定义分页
     *
     * @param page
     * @param traceabilityDetail
     * @return
     */
    IPage<TraceabilityDetailVO> selectTraceabilityDetailPage(IPage<TraceabilityDetailVO> page, TraceabilityDetailVO traceabilityDetail);
}
src/main/java/org/springblade/modules/traceability/service/TraceabilityService.java
New file
@@ -0,0 +1,24 @@
package org.springblade.modules.traceability.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.traceability.entity.Traceability;
import org.springblade.modules.traceability.vo.TraceabilityVO;
/**
 * 溯源码表服务类
 * @since 2022-05-19
 * @author zhongrj
 */
public interface TraceabilityService extends IService<Traceability> {
    /**
     * 自定义分页
     *
     * @param page
     * @param traceability
     * @return
     */
    IPage<TraceabilityVO> selectTraceabilityPage(IPage<TraceabilityVO> page, TraceabilityVO traceability);
}
src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityDetailServiceImpl.java
New file
@@ -0,0 +1,32 @@
package org.springblade.modules.traceability.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.modules.traceability.entity.TraceabilityDetail;
import org.springblade.modules.traceability.mapper.TraceabilityDetailMapper;
import org.springblade.modules.traceability.service.TraceabilityDetailService;
import org.springblade.modules.traceability.vo.TraceabilityDetailVO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * 溯源码详细表服务实现类
 * @since 2022-05-19
 * @author zhongrj
 */
@Service
public class TraceabilityDetailServiceImpl extends ServiceImpl<TraceabilityDetailMapper, TraceabilityDetail> implements TraceabilityDetailService {
    /**
     * 自定义分页
     * @param page
     * @param traceabilityDetail
     * @return
     */
    @Override
    public IPage<TraceabilityDetailVO> selectTraceabilityDetailPage(IPage<TraceabilityDetailVO> page, TraceabilityDetailVO traceabilityDetail) {
        return page.setRecords(baseMapper.selectTraceabilityDetailPage(page, traceabilityDetail));
    }
}
src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java
New file
@@ -0,0 +1,31 @@
package org.springblade.modules.traceability.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.traceability.entity.Traceability;
import org.springblade.modules.traceability.mapper.TraceabilityMapper;
import org.springblade.modules.traceability.service.TraceabilityService;
import org.springblade.modules.traceability.vo.TraceabilityVO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * 溯源码表服务实现类
 * @since 2022-05-19
 * @author zhongrj
 */
@Service
public class TraceabilityServiceImpl extends ServiceImpl<TraceabilityMapper, Traceability> implements TraceabilityService {
    /**
     * 自定义分页
     *
     * @param page
     * @param traceability
     * @return
     */
    @Override
    public IPage<TraceabilityVO> selectTraceabilityPage(IPage<TraceabilityVO> page, TraceabilityVO traceability) {
        return page.setRecords(baseMapper.selectTraceabilityPage(page, traceability));
    }
}
src/main/java/org/springblade/modules/traceability/vo/TraceabilityDetailVO.java
New file
@@ -0,0 +1,15 @@
package org.springblade.modules.traceability.vo;
import lombok.Data;
import org.springblade.modules.traceability.entity.TraceabilityDetail;
/**
 * 溯源码详细表VO
 * @since 2022-05-19
 * @author zhongrj
 */
@Data
public class TraceabilityDetailVO extends TraceabilityDetail {
    private static final long serialVersionUID = 1L;
}
src/main/java/org/springblade/modules/traceability/vo/TraceabilityVO.java
New file
@@ -0,0 +1,15 @@
package org.springblade.modules.traceability.vo;
import lombok.Data;
import org.springblade.modules.traceability.entity.Traceability;
/**
 * 溯源码表VO
 * @since 2022-05-19
 * @author zhongrj
 */
@Data
public class TraceabilityVO extends Traceability {
    private static final long serialVersionUID = 1L;
}