farm模块-模型新增字段集合互转
This commit is contained in:
@@ -13,7 +13,7 @@ import java.time.LocalDateTime;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 基础实体对象
|
* 基础实体对象
|
||||||
*
|
* <p>
|
||||||
* 为什么实现 {@link TransPojo} 接口?
|
* 为什么实现 {@link TransPojo} 接口?
|
||||||
* 因为使用 Easy-Trans TransType.SIMPLE 模式,集成 MyBatis Plus 查询
|
* 因为使用 Easy-Trans TransType.SIMPLE 模式,集成 MyBatis Plus 查询
|
||||||
*
|
*
|
||||||
@@ -35,14 +35,14 @@ public abstract class BaseDO implements Serializable, TransPojo {
|
|||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
/**
|
/**
|
||||||
* 创建者,目前使用 SysUser 的 id 编号
|
* 创建者,目前使用 SysUser 的 id 编号
|
||||||
*
|
* <p>
|
||||||
* 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
|
* 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
|
||||||
*/
|
*/
|
||||||
@TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR)
|
@TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR)
|
||||||
private String creator;
|
private String creator;
|
||||||
/**
|
/**
|
||||||
* 更新者,目前使用 SysUser 的 id 编号
|
* 更新者,目前使用 SysUser 的 id 编号
|
||||||
*
|
* <p>
|
||||||
* 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
|
* 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
|
||||||
*/
|
*/
|
||||||
@TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR)
|
@TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR)
|
||||||
|
|||||||
@@ -89,14 +89,14 @@ public class ModelManagementController {
|
|||||||
@Operation(summary = "获得发布模型分页")
|
@Operation(summary = "获得发布模型分页")
|
||||||
public CommonResult<PageResult<ModelManagementRespVO>> getModelManagementPageRelease(@Valid ModelManagementPageReqVO pageReqVO) {
|
public CommonResult<PageResult<ModelManagementRespVO>> getModelManagementPageRelease(@Valid ModelManagementPageReqVO pageReqVO) {
|
||||||
PageResult<ModelManagementDO> pageResult = modelManagementService.getModelManagementPageRelease(pageReqVO);
|
PageResult<ModelManagementDO> pageResult = modelManagementService.getModelManagementPageRelease(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, ModelManagementRespVO.class));
|
return success(convertPageResult(pageResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@Operation(summary = "获得模型管理分页")
|
@Operation(summary = "获得模型管理分页")
|
||||||
public CommonResult<PageResult<ModelManagementRespVO>> getModelManagementPage(@Valid ModelManagementPageReqVO pageReqVO) {
|
public CommonResult<PageResult<ModelManagementRespVO>> getModelManagementPage(@Valid ModelManagementPageReqVO pageReqVO) {
|
||||||
PageResult<ModelManagementDO> pageResult = modelManagementService.getModelManagementPage(pageReqVO);
|
PageResult<ModelManagementDO> pageResult = modelManagementService.getModelManagementPage(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, ModelManagementRespVO.class));
|
return success(convertPageResult(pageResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@@ -107,8 +107,36 @@ public class ModelManagementController {
|
|||||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
List<ModelManagementDO> list = modelManagementService.getModelManagementPage(pageReqVO).getList();
|
List<ModelManagementDO> list = modelManagementService.getModelManagementPage(pageReqVO).getList();
|
||||||
// 导出 Excel
|
// 导出 Excel
|
||||||
ExcelUtils.write(response, "模型管理.xls", "数据", ModelManagementRespVO.class,
|
List<ModelManagementRespVO> respVOList = list.stream()
|
||||||
BeanUtils.toBean(list, ModelManagementRespVO.class));
|
.map(this::convertToRespVO)
|
||||||
|
.collect(java.util.stream.Collectors.toList());
|
||||||
|
ExcelUtils.write(response, "模型管理.xls", "数据", ModelManagementRespVO.class, respVOList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换分页结果,处理suitablePlantingAreas字段的转换
|
||||||
|
*/
|
||||||
|
private PageResult<ModelManagementRespVO> convertPageResult(PageResult<ModelManagementDO> pageResult) {
|
||||||
|
List<ModelManagementRespVO> respVOList = pageResult.getList().stream()
|
||||||
|
.map(this::convertToRespVO)
|
||||||
|
.collect(java.util.stream.Collectors.toList());
|
||||||
|
|
||||||
|
return new PageResult<>(respVOList, pageResult.getTotal());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换单个ModelManagementDO为ModelManagementRespVO
|
||||||
|
*/
|
||||||
|
private ModelManagementRespVO convertToRespVO(ModelManagementDO modelManagementDO) {
|
||||||
|
ModelManagementRespVO respVO = BeanUtils.toBean(modelManagementDO, ModelManagementRespVO.class);
|
||||||
|
|
||||||
|
// 设置suitablePlantingAreas字段,触发自动转换
|
||||||
|
respVO.setSuitablePlantingAreas(modelManagementDO.getSuitablePlantingAreasList());
|
||||||
|
|
||||||
|
// 设置speciesImageList字段,触发自动转换
|
||||||
|
respVO.setSpeciesImageList(modelManagementDO.getSpeciesImageList());
|
||||||
|
|
||||||
|
return respVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,7 @@ public class ModelManagementPageReqVO extends PageParam {
|
|||||||
private String harvest;
|
private String harvest;
|
||||||
|
|
||||||
@Schema(description = "地区多选用,隔开")
|
@Schema(description = "地区多选用,隔开")
|
||||||
private String suitablePlantingAreas;
|
private List<String> suitablePlantingAreas;
|
||||||
|
|
||||||
@Schema(description = "品种描述", example = "随便")
|
@Schema(description = "品种描述", example = "随便")
|
||||||
private String description;
|
private String description;
|
||||||
@@ -54,4 +54,10 @@ public class ModelManagementPageReqVO extends PageParam {
|
|||||||
private String tenantId;
|
private String tenantId;
|
||||||
private int isRelease;
|
private int isRelease;
|
||||||
private int quoteCount;
|
private int quoteCount;
|
||||||
|
@Schema(description = "物种图片")
|
||||||
|
private String speciesImage;
|
||||||
|
|
||||||
|
@Schema(description = "物种图片集合")
|
||||||
|
private List<String> speciesImageList;
|
||||||
|
private Date releaseTime;
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 模型管理 Response VO")
|
@Schema(description = "管理后台 - 模型管理 Response VO")
|
||||||
@@ -42,7 +43,7 @@ public class ModelManagementRespVO {
|
|||||||
|
|
||||||
@Schema(description = "地区多选用,隔开")
|
@Schema(description = "地区多选用,隔开")
|
||||||
@ExcelProperty("地区多选用,隔开")
|
@ExcelProperty("地区多选用,隔开")
|
||||||
private String suitablePlantingAreas;
|
private List<String> suitablePlantingAreas;
|
||||||
|
|
||||||
@Schema(description = "品种描述", example = "随便")
|
@Schema(description = "品种描述", example = "随便")
|
||||||
@ExcelProperty("品种描述")
|
@ExcelProperty("品种描述")
|
||||||
@@ -73,6 +74,12 @@ public class ModelManagementRespVO {
|
|||||||
private String tenantId;
|
private String tenantId;
|
||||||
private int isRelease;
|
private int isRelease;
|
||||||
private int quoteCount;
|
private int quoteCount;
|
||||||
|
@Schema(description = "物种图片")
|
||||||
|
private String speciesImage;
|
||||||
|
|
||||||
|
@Schema(description = "物种图片集合")
|
||||||
|
private List<String> speciesImageList;
|
||||||
|
private Date releaseTime;
|
||||||
private List<ModelCycleRespVO> modelCycles;
|
private List<ModelCycleRespVO> modelCycles;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo;
|
package cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.Data;
|
||||||
import java.util.*;
|
|
||||||
import jakarta.validation.constraints.*;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 模型管理新增/修改 Request VO")
|
@Schema(description = "管理后台 - 模型管理新增/修改 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@@ -28,7 +29,7 @@ public class ModelManagementSaveReqVO {
|
|||||||
private String harvest;
|
private String harvest;
|
||||||
|
|
||||||
@Schema(description = "地区多选用,隔开")
|
@Schema(description = "地区多选用,隔开")
|
||||||
private String suitablePlantingAreas;
|
private List<String> suitablePlantingAreas;
|
||||||
|
|
||||||
@Schema(description = "品种描述", example = "随便")
|
@Schema(description = "品种描述", example = "随便")
|
||||||
private String description;
|
private String description;
|
||||||
@@ -49,4 +50,10 @@ public class ModelManagementSaveReqVO {
|
|||||||
private String tenantId;
|
private String tenantId;
|
||||||
private int isRelease;
|
private int isRelease;
|
||||||
private int quoteCount;
|
private int quoteCount;
|
||||||
|
@Schema(description = "物种图片")
|
||||||
|
private String speciesImage;
|
||||||
|
|
||||||
|
@Schema(description = "物种图片集合")
|
||||||
|
private List<String> speciesImageList;
|
||||||
|
private Date releaseTime;
|
||||||
}
|
}
|
||||||
@@ -3,10 +3,16 @@ package cn.iocoder.yudao.module.farm.dal.dataobject.modelmanagement;
|
|||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 模型管理 DO
|
* 模型管理 DO
|
||||||
*
|
*
|
||||||
@@ -52,9 +58,15 @@ public class ModelManagementDO extends BaseDO {
|
|||||||
*/
|
*/
|
||||||
private String harvest;
|
private String harvest;
|
||||||
/**
|
/**
|
||||||
* 地区多选用,隔开
|
* 地区多选用,隔开(数据库存储为逗号分隔的字符串)
|
||||||
*/
|
*/
|
||||||
private String suitablePlantingAreas;
|
private String suitablePlantingAreas;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 适合种植区域集合(业务层使用)
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private List<String> suitablePlantingAreasList;
|
||||||
/**
|
/**
|
||||||
* 品种描述
|
* 品种描述
|
||||||
*/
|
*/
|
||||||
@@ -83,4 +95,52 @@ public class ModelManagementDO extends BaseDO {
|
|||||||
private String taskId;
|
private String taskId;
|
||||||
private int isRelease;
|
private int isRelease;
|
||||||
private int quoteCount;
|
private int quoteCount;
|
||||||
|
/**
|
||||||
|
* 物种图片(数据库存储为逗号分隔的字符串)
|
||||||
|
*/
|
||||||
|
private String speciesImage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物种图片集合(业务层使用)
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private List<String> speciesImageList;
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date releaseTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取物种图片集合
|
||||||
|
*/
|
||||||
|
public List<String> getSpeciesImageList() {
|
||||||
|
if (speciesImageList == null) {
|
||||||
|
speciesImageList = ImageCollectionUtil.toImageList(this.speciesImage);
|
||||||
|
}
|
||||||
|
return speciesImageList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置物种图片集合
|
||||||
|
*/
|
||||||
|
public void setSpeciesImageList(List<String> speciesImageList) {
|
||||||
|
this.speciesImageList = speciesImageList;
|
||||||
|
this.speciesImage = ImageCollectionUtil.toDatabaseString(speciesImageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取适合种植区域集合
|
||||||
|
*/
|
||||||
|
public List<String> getSuitablePlantingAreasList() {
|
||||||
|
if (suitablePlantingAreasList == null) {
|
||||||
|
suitablePlantingAreasList = ImageCollectionUtil.toImageList(this.suitablePlantingAreas);
|
||||||
|
}
|
||||||
|
return suitablePlantingAreasList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置适合种植区域集合
|
||||||
|
*/
|
||||||
|
public void setSuitablePlantingAreasList(List<String> suitablePlantingAreasList) {
|
||||||
|
this.suitablePlantingAreasList = suitablePlantingAreasList;
|
||||||
|
this.suitablePlantingAreas = ImageCollectionUtil.toDatabaseString(suitablePlantingAreasList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
@@ -67,6 +68,19 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
|||||||
modelManagement.setId(IdUtil.fastUUID());
|
modelManagement.setId(IdUtil.fastUUID());
|
||||||
modelManagement.setTenantId(String.valueOf(user.getTenantId()));
|
modelManagement.setTenantId(String.valueOf(user.getTenantId()));
|
||||||
modelManagement.setIsRelease(0);
|
modelManagement.setIsRelease(0);
|
||||||
|
modelManagement.setType(CommonConstants.MODEL_TYPE_1);
|
||||||
|
// 处理suitablePlantingAreas字段,优先使用集合
|
||||||
|
if (createReqVO.getSuitablePlantingAreas() != null && !createReqVO.getSuitablePlantingAreas().isEmpty()) {
|
||||||
|
modelManagement.setSuitablePlantingAreasList(createReqVO.getSuitablePlantingAreas());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理speciesImage字段,优先使用图片集合
|
||||||
|
if (createReqVO.getSpeciesImageList() != null && !createReqVO.getSpeciesImageList().isEmpty()) {
|
||||||
|
modelManagement.setSpeciesImageList(createReqVO.getSpeciesImageList());
|
||||||
|
} else if (createReqVO.getSpeciesImage() != null) {
|
||||||
|
modelManagement.setSpeciesImage(createReqVO.getSpeciesImage());
|
||||||
|
}
|
||||||
|
|
||||||
modelManagementMapper.insert(modelManagement);
|
modelManagementMapper.insert(modelManagement);
|
||||||
|
|
||||||
// 返回
|
// 返回
|
||||||
@@ -157,6 +171,19 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
|||||||
validateModelManagementExists(updateReqVO.getId());
|
validateModelManagementExists(updateReqVO.getId());
|
||||||
// 更新
|
// 更新
|
||||||
ModelManagementDO updateObj = BeanUtils.toBean(updateReqVO, ModelManagementDO.class);
|
ModelManagementDO updateObj = BeanUtils.toBean(updateReqVO, ModelManagementDO.class);
|
||||||
|
|
||||||
|
// 处理suitablePlantingAreas字段,优先使用集合
|
||||||
|
if (updateReqVO.getSuitablePlantingAreas() != null && !updateReqVO.getSuitablePlantingAreas().isEmpty()) {
|
||||||
|
updateObj.setSuitablePlantingAreasList(updateReqVO.getSuitablePlantingAreas());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理speciesImage字段,优先使用图片集合
|
||||||
|
if (updateReqVO.getSpeciesImageList() != null && !updateReqVO.getSpeciesImageList().isEmpty()) {
|
||||||
|
updateObj.setSpeciesImageList(updateReqVO.getSpeciesImageList());
|
||||||
|
} else if (updateReqVO.getSpeciesImage() != null) {
|
||||||
|
updateObj.setSpeciesImage(updateReqVO.getSpeciesImage());
|
||||||
|
}
|
||||||
|
|
||||||
modelManagementMapper.updateById(updateObj);
|
modelManagementMapper.updateById(updateObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,6 +212,10 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
|||||||
public ModelManagementRespVO getModelManagement(String id) {
|
public ModelManagementRespVO getModelManagement(String id) {
|
||||||
ModelManagementDO modelManagementDO = modelManagementMapper.selectById(id);
|
ModelManagementDO modelManagementDO = modelManagementMapper.selectById(id);
|
||||||
ModelManagementRespVO bean = BeanUtils.toBean(modelManagementDO, ModelManagementRespVO.class);
|
ModelManagementRespVO bean = BeanUtils.toBean(modelManagementDO, ModelManagementRespVO.class);
|
||||||
|
|
||||||
|
// 设置suitablePlantingAreas字段,触发自动转换
|
||||||
|
bean.setSuitablePlantingAreas(modelManagementDO.getSuitablePlantingAreasList());
|
||||||
|
|
||||||
List<ModelCycleRespVO> vos = new ArrayList<>();
|
List<ModelCycleRespVO> vos = new ArrayList<>();
|
||||||
List<ModelCycleDO> list = modelCycleMapper.selectListByModelId(id);
|
List<ModelCycleDO> list = modelCycleMapper.selectListByModelId(id);
|
||||||
list.forEach(cycle -> {
|
list.forEach(cycle -> {
|
||||||
@@ -297,10 +328,10 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void isRelease(ModelManagementSaveReqVO updateReqVO) {
|
public void isRelease(ModelManagementSaveReqVO updateReqVO) {
|
||||||
|
|
||||||
ModelManagementDO modelManagementDO = modelManagementMapper.selectById(updateReqVO.getId());
|
ModelManagementDO modelManagementDO = modelManagementMapper.selectById(updateReqVO.getId());
|
||||||
if (modelManagementDO.getIsRelease() == 0) {
|
if (modelManagementDO.getIsRelease() == 0) {
|
||||||
modelManagementDO.setIsRelease(1);
|
modelManagementDO.setIsRelease(1);
|
||||||
|
modelManagementDO.setReleaseTime(new Date());
|
||||||
} else {
|
} else {
|
||||||
modelManagementDO.setIsRelease(0);
|
modelManagementDO.setIsRelease(0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user