溯源扫码记录表

main
masong 2 years ago
parent 4963aa898d
commit 6d8ddfcc84
  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/scanrecord/ScanRecordController.java
  3. 34
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/scanrecord/vo/ScanRecordPageReqVO.java
  4. 40
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/scanrecord/vo/ScanRecordRespVO.java
  5. 27
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/scanrecord/vo/ScanRecordSaveReqVO.java
  6. 47
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/dataobject/scanrecord/ScanRecordDO.java
  7. 30
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/scanrecord/ScanRecordMapper.java
  8. 55
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/scanrecord/ScanRecordService.java
  9. 74
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/scanrecord/ScanRecordServiceImpl.java

@ -38,4 +38,5 @@ public interface ErrorCodeConstants {
ErrorCode HUSBANDRY_RECORD_NOT_EXISTS = new ErrorCode(002007, "农事记录不存在");
ErrorCode RECOVERY_RECORD_NOT_EXISTS = new ErrorCode(002010, "采收记录不存在");
ErrorCode SCAN_RECORD_NOT_EXISTS = new ErrorCode(001003,"扫码记录不存在");
}

@ -0,0 +1,95 @@
package com.cjy.traceability.module.traceability.controller.admin.scanrecord;
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.scanrecord.vo.*;
import com.cjy.traceability.module.traceability.dal.dataobject.scanrecord.ScanRecordDO;
import com.cjy.traceability.module.traceability.service.scanrecord.ScanRecordService;
@Tag(name = "管理后台 - 扫码记录")
@RestController
@RequestMapping("/traceability/scan-record")
@Validated
public class ScanRecordController {
@Resource
private ScanRecordService scanRecordService;
@PostMapping("/create")
@Operation(summary = "创建扫码记录")
@PreAuthorize("@ss.hasPermission('traceability:scan-record:create')")
public CommonResult<Integer> createScanRecord(@Valid @RequestBody ScanRecordSaveReqVO createReqVO) {
return success(scanRecordService.createScanRecord(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新扫码记录")
@PreAuthorize("@ss.hasPermission('traceability:scan-record:update')")
public CommonResult<Boolean> updateScanRecord(@Valid @RequestBody ScanRecordSaveReqVO updateReqVO) {
scanRecordService.updateScanRecord(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除扫码记录")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('traceability:scan-record:delete')")
public CommonResult<Boolean> deleteScanRecord(@RequestParam("id") Integer id) {
scanRecordService.deleteScanRecord(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得扫码记录")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('traceability:scan-record:query')")
public CommonResult<ScanRecordRespVO> getScanRecord(@RequestParam("id") Integer id) {
ScanRecordDO scanRecord = scanRecordService.getScanRecord(id);
return success(BeanUtils.toBean(scanRecord, ScanRecordRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得扫码记录分页")
@PreAuthorize("@ss.hasPermission('traceability:scan-record:query')")
public CommonResult<PageResult<ScanRecordRespVO>> getScanRecordPage(@Valid ScanRecordPageReqVO pageReqVO) {
PageResult<ScanRecordDO> pageResult = scanRecordService.getScanRecordPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ScanRecordRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出扫码记录 Excel")
@PreAuthorize("@ss.hasPermission('traceability:scan-record:export')")
@OperateLog(type = EXPORT)
public void exportScanRecordExcel(@Valid ScanRecordPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ScanRecordDO> list = scanRecordService.getScanRecordPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "扫码记录.xls", "数据", ScanRecordRespVO.class,
BeanUtils.toBean(list, ScanRecordRespVO.class));
}
}

@ -0,0 +1,34 @@
package com.cjy.traceability.module.traceability.controller.admin.scanrecord.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.cjy.traceability.framework.common.pojo.PageParam;
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 ScanRecordPageReqVO extends PageParam {
@Schema(description = "溯源产品ID", example = "17764")
private Integer productId;
@Schema(description = "扫码地所属省")
private String province;
@Schema(description = "扫码地所属市")
private String city;
@Schema(description = "扫码地所属县")
private String country;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,40 @@
package com.cjy.traceability.module.traceability.controller.admin.scanrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 扫码记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ScanRecordRespVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7231")
@ExcelProperty("主键ID")
private Integer id;
@Schema(description = "溯源产品ID", example = "17764")
@ExcelProperty("溯源产品ID")
private Integer productId;
@Schema(description = "扫码地所属省")
@ExcelProperty("扫码地所属省")
private String province;
@Schema(description = "扫码地所属市")
@ExcelProperty("扫码地所属市")
private String city;
@Schema(description = "扫码地所属县")
@ExcelProperty("扫码地所属县")
private String country;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,27 @@
package com.cjy.traceability.module.traceability.controller.admin.scanrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 扫码记录新增/修改 Request VO")
@Data
public class ScanRecordSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7231")
private Integer id;
@Schema(description = "溯源产品ID", example = "17764")
private Integer productId;
@Schema(description = "扫码地所属省")
private String province;
@Schema(description = "扫码地所属市")
private String city;
@Schema(description = "扫码地所属县")
private String country;
}

@ -0,0 +1,47 @@
package com.cjy.traceability.module.traceability.dal.dataobject.scanrecord;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.cjy.traceability.framework.mybatis.core.dataobject.BaseDO;
/**
* 扫码记录 DO
*
* @author qfzj
*/
@TableName("traceability_scan_record")
@KeySequence("traceability_scan_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ScanRecordDO extends BaseDO {
/**
* 主键ID
*/
@TableId
private Integer id;
/**
* 溯源产品ID
*/
private Integer productId;
/**
* 扫码地所属省
*/
private String province;
/**
* 扫码地所属市
*/
private String city;
/**
* 扫码地所属县
*/
private String country;
}

@ -0,0 +1,30 @@
package com.cjy.traceability.module.traceability.dal.mysql.scanrecord;
import java.util.*;
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.scanrecord.ScanRecordDO;
import org.apache.ibatis.annotations.Mapper;
import com.cjy.traceability.module.traceability.controller.admin.scanrecord.vo.*;
/**
* 扫码记录 Mapper
*
* @author qfzj
*/
@Mapper
public interface ScanRecordMapper extends BaseMapperX<ScanRecordDO> {
default PageResult<ScanRecordDO> selectPage(ScanRecordPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ScanRecordDO>()
.eqIfPresent(ScanRecordDO::getProductId, reqVO.getProductId())
.eqIfPresent(ScanRecordDO::getProvince, reqVO.getProvince())
.eqIfPresent(ScanRecordDO::getCity, reqVO.getCity())
.eqIfPresent(ScanRecordDO::getCountry, reqVO.getCountry())
.betweenIfPresent(ScanRecordDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(ScanRecordDO::getId));
}
}

@ -0,0 +1,55 @@
package com.cjy.traceability.module.traceability.service.scanrecord;
import java.util.*;
import javax.validation.*;
import com.cjy.traceability.module.traceability.controller.admin.scanrecord.vo.*;
import com.cjy.traceability.module.traceability.dal.dataobject.scanrecord.ScanRecordDO;
import com.cjy.traceability.framework.common.pojo.PageResult;
import com.cjy.traceability.framework.common.pojo.PageParam;
/**
* 扫码记录 Service 接口
*
* @author qfzj
*/
public interface ScanRecordService {
/**
* 创建扫码记录
*
* @param createReqVO 创建信息
* @return 编号
*/
Integer createScanRecord(@Valid ScanRecordSaveReqVO createReqVO);
/**
* 更新扫码记录
*
* @param updateReqVO 更新信息
*/
void updateScanRecord(@Valid ScanRecordSaveReqVO updateReqVO);
/**
* 删除扫码记录
*
* @param id 编号
*/
void deleteScanRecord(Integer id);
/**
* 获得扫码记录
*
* @param id 编号
* @return 扫码记录
*/
ScanRecordDO getScanRecord(Integer id);
/**
* 获得扫码记录分页
*
* @param pageReqVO 分页查询
* @return 扫码记录分页
*/
PageResult<ScanRecordDO> getScanRecordPage(ScanRecordPageReqVO pageReqVO);
}

@ -0,0 +1,74 @@
package com.cjy.traceability.module.traceability.service.scanrecord;
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.scanrecord.vo.*;
import com.cjy.traceability.module.traceability.dal.dataobject.scanrecord.ScanRecordDO;
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.scanrecord.ScanRecordMapper;
import static com.cjy.traceability.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cjy.traceability.module.traceability.enums.ErrorCodeConstants.*;
/**
* 扫码记录 Service 实现类
*
* @author qfzj
*/
@Service
@Validated
public class ScanRecordServiceImpl implements ScanRecordService {
@Resource
private ScanRecordMapper scanRecordMapper;
@Override
public Integer createScanRecord(ScanRecordSaveReqVO createReqVO) {
// 插入
ScanRecordDO scanRecord = BeanUtils.toBean(createReqVO, ScanRecordDO.class);
scanRecordMapper.insert(scanRecord);
// 返回
return scanRecord.getId();
}
@Override
public void updateScanRecord(ScanRecordSaveReqVO updateReqVO) {
// 校验存在
validateScanRecordExists(updateReqVO.getId());
// 更新
ScanRecordDO updateObj = BeanUtils.toBean(updateReqVO, ScanRecordDO.class);
scanRecordMapper.updateById(updateObj);
}
@Override
public void deleteScanRecord(Integer id) {
// 校验存在
validateScanRecordExists(id);
// 删除
scanRecordMapper.deleteById(id);
}
private void validateScanRecordExists(Integer id) {
if (scanRecordMapper.selectById(id) == null) {
throw exception(SCAN_RECORD_NOT_EXISTS);
}
}
@Override
public ScanRecordDO getScanRecord(Integer id) {
return scanRecordMapper.selectById(id);
}
@Override
public PageResult<ScanRecordDO> getScanRecordPage(ScanRecordPageReqVO pageReqVO) {
return scanRecordMapper.selectPage(pageReqVO);
}
}
Loading…
Cancel
Save