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