新增农资使用记录

main
masong 2 years ago
parent 7962be8547
commit 31fdd51ad3
  1. 1
      cjy-module-traceability/cjy-module-traceability-api/src/main/java/com/cjy/traceability/module/traceability/enums/ErrorCodeConstants.java
  2. 95
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/agriculturalused/AgriculturalUsedController.java
  3. 41
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/agriculturalused/vo/AgriculturalUsedPageReqVO.java
  4. 49
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/agriculturalused/vo/AgriculturalUsedRespVO.java
  5. 34
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/agriculturalused/vo/AgriculturalUsedSaveReqVO.java
  6. 12
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/husbandryrecord/HusbandryRecordController.java
  7. 3
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/husbandryrecord/vo/HusbandryRecordRespVO.java
  8. 56
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/dataobject/agriculturalused/AgriculturalUsedDO.java
  9. 39
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/agriculturalused/AgriculturalUsedMapper.java
  10. 57
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/agriculturalused/AgriculturalUsedService.java
  11. 79
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/agriculturalused/AgriculturalUsedServiceImpl.java

@ -39,4 +39,5 @@ public interface ErrorCodeConstants {
ErrorCode RECOVERY_RECORD_NOT_EXISTS = new ErrorCode(002010, "采收记录不存在");
ErrorCode SCAN_RECORD_NOT_EXISTS = new ErrorCode(001003,"扫码记录不存在");
ErrorCode AGRICULTURAL_USED_NOT_EXISTS = new ErrorCode(001005, "农资使用记录;不存在");
}

@ -0,0 +1,95 @@
package com.cjy.traceability.module.traceability.controller.admin.agriculturalused;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.cjy.traceability.framework.common.pojo.PageParam;
import com.cjy.traceability.framework.common.pojo.PageResult;
import com.cjy.traceability.framework.common.pojo.CommonResult;
import com.cjy.traceability.framework.common.util.object.BeanUtils;
import static com.cjy.traceability.framework.common.pojo.CommonResult.success;
import com.cjy.traceability.framework.excel.core.util.ExcelUtils;
import com.cjy.traceability.framework.operatelog.core.annotations.OperateLog;
import static com.cjy.traceability.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.cjy.traceability.module.traceability.controller.admin.agriculturalused.vo.*;
import com.cjy.traceability.module.traceability.dal.dataobject.agriculturalused.AgriculturalUsedDO;
import com.cjy.traceability.module.traceability.service.agriculturalused.AgriculturalUsedService;
@Tag(name = "管理后台 - 农资使用记录;")
@RestController
@RequestMapping("/traceability/agricultural-used")
@Validated
public class AgriculturalUsedController {
@Resource
private AgriculturalUsedService agriculturalUsedService;
@PostMapping("/create")
@Operation(summary = "创建农资使用记录;")
@PreAuthorize("@ss.hasPermission('traceability:agricultural-used:create')")
public CommonResult<Integer> createAgriculturalUsed(@Valid @RequestBody AgriculturalUsedSaveReqVO createReqVO) {
return success(agriculturalUsedService.createAgriculturalUsed(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新农资使用记录;")
@PreAuthorize("@ss.hasPermission('traceability:agricultural-used:update')")
public CommonResult<Boolean> updateAgriculturalUsed(@Valid @RequestBody AgriculturalUsedSaveReqVO updateReqVO) {
agriculturalUsedService.updateAgriculturalUsed(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除农资使用记录;")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('traceability:agricultural-used:delete')")
public CommonResult<Boolean> deleteAgriculturalUsed(@RequestParam("id") Integer id) {
agriculturalUsedService.deleteAgriculturalUsed(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得农资使用记录;")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('traceability:agricultural-used:query')")
public CommonResult<AgriculturalUsedRespVO> getAgriculturalUsed(@RequestParam("id") Integer id) {
AgriculturalUsedDO agriculturalUsed = agriculturalUsedService.getAgriculturalUsed(id);
return success(BeanUtils.toBean(agriculturalUsed, AgriculturalUsedRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得农资使用记录;分页")
@PreAuthorize("@ss.hasPermission('traceability:agricultural-used:query')")
public CommonResult<PageResult<AgriculturalUsedRespVO>> getAgriculturalUsedPage(@Valid AgriculturalUsedPageReqVO pageReqVO) {
PageResult<AgriculturalUsedDO> pageResult = agriculturalUsedService.getAgriculturalUsedPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, AgriculturalUsedRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出农资使用记录; Excel")
@PreAuthorize("@ss.hasPermission('traceability:agricultural-used:export')")
@OperateLog(type = EXPORT)
public void exportAgriculturalUsedExcel(@Valid AgriculturalUsedPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<AgriculturalUsedDO> list = agriculturalUsedService.getAgriculturalUsedPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "农资使用记录;.xls", "数据", AgriculturalUsedRespVO.class,
BeanUtils.toBean(list, AgriculturalUsedRespVO.class));
}
}

@ -0,0 +1,41 @@
package com.cjy.traceability.module.traceability.controller.admin.agriculturalused.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.cjy.traceability.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.cjy.traceability.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 农资使用记录;分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class AgriculturalUsedPageReqVO extends PageParam {
@Schema(description = "农事记录ID", example = "32189")
private Integer husbandryId;
@Schema(description = "农资ID", example = "1")
private Integer agriculturalType;
@Schema(description = "农资名称", example = "芋艿")
private String agriculturalName;
@Schema(description = "生产厂家")
private String manufacturer;
@Schema(description = "计量单位")
private String agriculturalUnit;
@Schema(description = "农资用量")
private BigDecimal agriculturalUsed;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,49 @@
package com.cjy.traceability.module.traceability.controller.admin.agriculturalused.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 农资使用记录; Response VO")
@Data
@ExcelIgnoreUnannotated
public class AgriculturalUsedRespVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8984")
@ExcelProperty("主键ID")
private Integer id;
@Schema(description = "农事记录ID", example = "32189")
@ExcelProperty("农事记录ID")
private Integer husbandryId;
@Schema(description = "农资ID", example = "1")
@ExcelProperty("农资ID")
private Integer agriculturalType;
@Schema(description = "农资名称", example = "芋艿")
@ExcelProperty("农资名称")
private String agriculturalName;
@Schema(description = "生产厂家")
@ExcelProperty("生产厂家")
private String manufacturer;
@Schema(description = "计量单位")
@ExcelProperty("计量单位")
private String agriculturalUnit;
@Schema(description = "农资用量")
@ExcelProperty("农资用量")
private BigDecimal agriculturalUsed;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,34 @@
package com.cjy.traceability.module.traceability.controller.admin.agriculturalused.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 农资使用记录;新增/修改 Request VO")
@Data
public class AgriculturalUsedSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8984")
private Integer id;
@Schema(description = "农事记录ID", example = "32189")
private Integer husbandryId;
@Schema(description = "农资ID", example = "1")
private Integer agriculturalType;
@Schema(description = "农资名称", example = "芋艿")
private String agriculturalName;
@Schema(description = "生产厂家")
private String manufacturer;
@Schema(description = "计量单位")
private String agriculturalUnit;
@Schema(description = "农资用量")
private BigDecimal agriculturalUsed;
}

@ -1,5 +1,9 @@
package com.cjy.traceability.module.traceability.controller.admin.husbandryrecord;
import com.cjy.traceability.module.traceability.controller.admin.agriculturalused.vo.AgriculturalUsedRespVO;
import com.cjy.traceability.module.traceability.dal.dataobject.agricultural.AgriculturalDO;
import com.cjy.traceability.module.traceability.dal.dataobject.agriculturalused.AgriculturalUsedDO;
import com.cjy.traceability.module.traceability.service.agriculturalused.AgriculturalUsedService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -36,7 +40,8 @@ public class HusbandryRecordController {
@Resource
private HusbandryRecordService husbandryRecordService;
@Resource
private AgriculturalUsedService agriculturalUsedService;
@PostMapping("/create")
@Operation(summary = "创建农事记录")
@PreAuthorize("@ss.hasPermission('traceability:husbandry-record:create')")
@ -67,7 +72,10 @@ public class HusbandryRecordController {
@PreAuthorize("@ss.hasPermission('traceability:husbandry-record:query')")
public CommonResult<HusbandryRecordRespVO> getHusbandryRecord(@RequestParam("id") Integer id) {
HusbandryRecordDO husbandryRecord = husbandryRecordService.getHusbandryRecord(id);
return success(BeanUtils.toBean(husbandryRecord, HusbandryRecordRespVO.class));
HusbandryRecordRespVO respVO = BeanUtils.toBean(husbandryRecord, HusbandryRecordRespVO.class);
List<AgriculturalUsedDO> agriculturalUsedList = agriculturalUsedService.getAgriculturalUsedList(husbandryRecord.getId());
respVO.setAgriculturalUsedResp(BeanUtils.toBean(agriculturalUsedList, AgriculturalUsedRespVO.class));
return success(respVO);
}
// @GetMapping("/page")

@ -1,5 +1,6 @@
package com.cjy.traceability.module.traceability.controller.admin.husbandryrecord.vo;
import com.cjy.traceability.module.traceability.controller.admin.agriculturalused.vo.AgriculturalUsedRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -53,4 +54,6 @@ public class HusbandryRecordRespVO {
@ExcelProperty("备注")
private String husbandryNotes;
private List<AgriculturalUsedRespVO> agriculturalUsedResp;
}

@ -0,0 +1,56 @@
package com.cjy.traceability.module.traceability.dal.dataobject.agriculturalused;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.cjy.traceability.framework.mybatis.core.dataobject.BaseDO;
/**
* 农资使用记录; DO
*
* @author 芋道源码
*/
@TableName("traceability_agricultural_used")
@KeySequence("traceability_agricultural_used_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AgriculturalUsedDO extends BaseDO {
/**
* 主键ID
*/
@TableId
private Integer id;
/**
* 农事记录ID
*/
private Integer husbandryId;
/**
* 农资ID
*/
private Integer agriculturalType;
/**
* 农资名称
*/
private String agriculturalName;
/**
* 生产厂家
*/
private String manufacturer;
/**
* 计量单位
*/
private String agriculturalUnit;
/**
* 农资用量
*/
private BigDecimal agriculturalUsed;
}

@ -0,0 +1,39 @@
package com.cjy.traceability.module.traceability.dal.mysql.agriculturalused;
import java.util.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cjy.traceability.framework.common.pojo.PageResult;
import com.cjy.traceability.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cjy.traceability.framework.mybatis.core.mapper.BaseMapperX;
import com.cjy.traceability.module.traceability.dal.dataobject.agriculturalused.AgriculturalUsedDO;
import org.apache.ibatis.annotations.Mapper;
import com.cjy.traceability.module.traceability.controller.admin.agriculturalused.vo.*;
/**
* 农资使用记录; Mapper
*
* @author 芋道源码
*/
@Mapper
public interface AgriculturalUsedMapper extends BaseMapperX<AgriculturalUsedDO> {
default PageResult<AgriculturalUsedDO> selectPage(AgriculturalUsedPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<AgriculturalUsedDO>()
.eqIfPresent(AgriculturalUsedDO::getHusbandryId, reqVO.getHusbandryId())
.eqIfPresent(AgriculturalUsedDO::getAgriculturalType, reqVO.getAgriculturalType())
.likeIfPresent(AgriculturalUsedDO::getAgriculturalName, reqVO.getAgriculturalName())
.eqIfPresent(AgriculturalUsedDO::getManufacturer, reqVO.getManufacturer())
.eqIfPresent(AgriculturalUsedDO::getAgriculturalUnit, reqVO.getAgriculturalUnit())
.eqIfPresent(AgriculturalUsedDO::getAgriculturalUsed, reqVO.getAgriculturalUsed())
.betweenIfPresent(AgriculturalUsedDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(AgriculturalUsedDO::getId));
}
default List<AgriculturalUsedDO> selectAgriculturalUsedList(Integer husbandryId){
return selectList(new LambdaQueryWrapperX<AgriculturalUsedDO>()
.eq(AgriculturalUsedDO:: getHusbandryId,husbandryId)
);
}
}

@ -0,0 +1,57 @@
package com.cjy.traceability.module.traceability.service.agriculturalused;
import java.util.*;
import javax.validation.*;
import com.cjy.traceability.module.traceability.controller.admin.agriculturalused.vo.*;
import com.cjy.traceability.module.traceability.dal.dataobject.agriculturalused.AgriculturalUsedDO;
import com.cjy.traceability.framework.common.pojo.PageResult;
import com.cjy.traceability.framework.common.pojo.PageParam;
/**
* 农资使用记录; Service 接口
*
* @author 芋道源码
*/
public interface AgriculturalUsedService {
/**
* 创建农资使用记录;
*
* @param createReqVO 创建信息
* @return 编号
*/
Integer createAgriculturalUsed(@Valid AgriculturalUsedSaveReqVO createReqVO);
/**
* 更新农资使用记录;
*
* @param updateReqVO 更新信息
*/
void updateAgriculturalUsed(@Valid AgriculturalUsedSaveReqVO updateReqVO);
/**
* 删除农资使用记录;
*
* @param id 编号
*/
void deleteAgriculturalUsed(Integer id);
/**
* 获得农资使用记录;
*
* @param id 编号
* @return 农资使用记录;
*/
AgriculturalUsedDO getAgriculturalUsed(Integer id);
/**
* 获得农资使用记录;分页
*
* @param pageReqVO 分页查询
* @return 农资使用记录;分页
*/
PageResult<AgriculturalUsedDO> getAgriculturalUsedPage(AgriculturalUsedPageReqVO pageReqVO);
List<AgriculturalUsedDO> getAgriculturalUsedList(Integer husbandryId);
}

@ -0,0 +1,79 @@
package com.cjy.traceability.module.traceability.service.agriculturalused;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import com.cjy.traceability.module.traceability.controller.admin.agriculturalused.vo.*;
import com.cjy.traceability.module.traceability.dal.dataobject.agriculturalused.AgriculturalUsedDO;
import com.cjy.traceability.framework.common.pojo.PageResult;
import com.cjy.traceability.framework.common.pojo.PageParam;
import com.cjy.traceability.framework.common.util.object.BeanUtils;
import com.cjy.traceability.module.traceability.dal.mysql.agriculturalused.AgriculturalUsedMapper;
import static com.cjy.traceability.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cjy.traceability.module.traceability.enums.ErrorCodeConstants.*;
/**
* 农资使用记录; Service 实现类
*
* @author 芋道源码
*/
@Service
@Validated
public class AgriculturalUsedServiceImpl implements AgriculturalUsedService {
@Resource
private AgriculturalUsedMapper agriculturalUsedMapper;
@Override
public Integer createAgriculturalUsed(AgriculturalUsedSaveReqVO createReqVO) {
// 插入
AgriculturalUsedDO agriculturalUsed = BeanUtils.toBean(createReqVO, AgriculturalUsedDO.class);
agriculturalUsedMapper.insert(agriculturalUsed);
// 返回
return agriculturalUsed.getId();
}
@Override
public void updateAgriculturalUsed(AgriculturalUsedSaveReqVO updateReqVO) {
// 校验存在
validateAgriculturalUsedExists(updateReqVO.getId());
// 更新
AgriculturalUsedDO updateObj = BeanUtils.toBean(updateReqVO, AgriculturalUsedDO.class);
agriculturalUsedMapper.updateById(updateObj);
}
@Override
public void deleteAgriculturalUsed(Integer id) {
// 校验存在
validateAgriculturalUsedExists(id);
// 删除
agriculturalUsedMapper.deleteById(id);
}
private void validateAgriculturalUsedExists(Integer id) {
if (agriculturalUsedMapper.selectById(id) == null) {
throw exception(AGRICULTURAL_USED_NOT_EXISTS);
}
}
@Override
public AgriculturalUsedDO getAgriculturalUsed(Integer id) {
return agriculturalUsedMapper.selectById(id);
}
@Override
public PageResult<AgriculturalUsedDO> getAgriculturalUsedPage(AgriculturalUsedPageReqVO pageReqVO) {
return agriculturalUsedMapper.selectPage(pageReqVO);
}
@Override
public List<AgriculturalUsedDO> getAgriculturalUsedList(Integer husbandryId) {
return agriculturalUsedMapper.selectAgriculturalUsedList(husbandryId);
}
}
Loading…
Cancel
Save