farm模块-物种三级树,模型新增关联物种信息
This commit is contained in:
@@ -3,10 +3,9 @@ package cn.iocoder.yudao.module.farm.controller.admin.specieslibrary;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibraryPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibraryRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibrarySaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesThreeLevelTreeRespVO;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||
@@ -44,14 +43,12 @@ public class SpeciesLibraryController {
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建物种库维护")
|
||||
|
||||
public CommonResult<String> createSpeciesLibrary(@Valid @RequestBody SpeciesLibrarySaveReqVO createReqVO) {
|
||||
return success(speciesLibraryService.createSpeciesLibrary(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新物种库维护")
|
||||
|
||||
public CommonResult<Boolean> updateSpeciesLibrary(@Valid @RequestBody SpeciesLibrarySaveReqVO updateReqVO) {
|
||||
speciesLibraryService.updateSpeciesLibrary(updateReqVO);
|
||||
return success(true);
|
||||
@@ -60,7 +57,6 @@ public class SpeciesLibraryController {
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除物种库维护")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
|
||||
public CommonResult<Boolean> deleteSpeciesLibrary(@RequestParam("id") String id) {
|
||||
speciesLibraryService.deleteSpeciesLibrary(id);
|
||||
return success(true);
|
||||
@@ -69,7 +65,6 @@ public class SpeciesLibraryController {
|
||||
@DeleteMapping("/delete-list")
|
||||
@Parameter(name = "ids", description = "编号", required = true)
|
||||
@Operation(summary = "批量删除物种库维护")
|
||||
|
||||
public CommonResult<Boolean> deleteSpeciesLibraryList(@RequestParam("ids") List<String> ids) {
|
||||
speciesLibraryService.deleteSpeciesLibraryListByIds(ids);
|
||||
return success(true);
|
||||
@@ -78,23 +73,28 @@ public class SpeciesLibraryController {
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得物种库维护")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
|
||||
public CommonResult<SpeciesLibraryRespVO> getSpeciesLibrary(@RequestParam("id") String id) {
|
||||
SpeciesLibraryDO speciesLibrary = speciesLibraryService.getSpeciesLibrary(id);
|
||||
return success(BeanUtils.toBean(speciesLibrary, SpeciesLibraryRespVO.class));
|
||||
SpeciesLibraryRespVO resp = BeanUtils.toBean(speciesLibrary, SpeciesLibraryRespVO.class);
|
||||
return success(resp);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得物种库维护分页")
|
||||
|
||||
public CommonResult<PageResult<SpeciesLibraryRespVO>> getSpeciesLibraryPage(@Valid SpeciesLibraryPageReqVO pageReqVO) {
|
||||
PageResult<SpeciesLibraryDO> pageResult = speciesLibraryService.getSpeciesLibraryPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, SpeciesLibraryRespVO.class));
|
||||
PageResult<SpeciesLibraryRespVO> resp = BeanUtils.toBean(pageResult, SpeciesLibraryRespVO.class);
|
||||
return success(resp);
|
||||
}
|
||||
|
||||
@GetMapping("/tree")
|
||||
@Operation(summary = "物种库三级树(speciesName1->speciesName2->cultivarName)")
|
||||
public CommonResult<List<SpeciesThreeLevelTreeRespVO>> getSpeciesThreeLevelTree() {
|
||||
return success(speciesLibraryService.getSpeciesThreeLevelTree());
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出物种库维护 Excel")
|
||||
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportSpeciesLibraryExcel(@Valid SpeciesLibraryPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
|
||||
@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import cn.idev.excel.annotation.*;
|
||||
|
||||
@@ -24,6 +23,12 @@ public class SpeciesLibraryRespVO {
|
||||
@ExcelProperty("物种类别名称")
|
||||
private String speciesName;
|
||||
|
||||
@Schema(description = "物种类别名称-前半段")
|
||||
private String speciesName1;
|
||||
|
||||
@Schema(description = "物种类别名称-后半段")
|
||||
private String speciesName2;
|
||||
|
||||
@Schema(description = "物种名称", example = "芋艿")
|
||||
@ExcelProperty("物种名称")
|
||||
private String cultivarName;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil;
|
||||
|
||||
/**
|
||||
* 物种库维护 DO
|
||||
@@ -77,6 +77,7 @@ public class SpeciesLibraryDO extends BaseDO {
|
||||
this.imageList = imageList;
|
||||
this.image = ImageCollectionUtil.toDatabaseString(imageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 0=启用,1=停用
|
||||
*/
|
||||
@@ -104,4 +105,10 @@ public class SpeciesLibraryDO extends BaseDO {
|
||||
private String plotName;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String speciesName1;
|
||||
@TableField(exist = false)
|
||||
private String speciesName2;
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.farm.dal.mysql.sysDict;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictReqVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@@ -13,9 +14,10 @@ import java.util.List;
|
||||
* @date: 2025/8/19 17:42
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysDictMapper {
|
||||
public interface SysDictMapper extends BaseMapperX<SysDictDO> {
|
||||
|
||||
SysDictDO selectDictByMaxField2Code(SysDictReqVO reqVO);
|
||||
|
||||
SysDictDO getDictByFieldCode(SysDictReqVO reqVO);
|
||||
|
||||
SysDictDO selectDictByOne(SysDictReqVO reqVO);
|
||||
@@ -34,6 +36,6 @@ public interface SysDictMapper {
|
||||
|
||||
void insertOne(SysDictDO reqVO);
|
||||
|
||||
void updateById(SysDictDO reqVO);
|
||||
int updateById(SysDictDO reqVO);
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.security.core.LoginUser;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.DisasterDataReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictThreeLvRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.modelcycle.vo.ModelCycleRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.modelfarmingoperation.vo.ModelFarmingOperationRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementPageReqVO;
|
||||
@@ -18,6 +19,7 @@ import cn.iocoder.yudao.module.farm.dal.dataobject.modelfarmingoperationinput.Mo
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.modelmanagement.ModelManagementDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.modelpestdiseaseweed.ModelPestDiseaseWeedDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.modelweatherdisaster.ModelWeatherDisasterDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary.SpeciesLibraryDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.modelcycle.ModelCycleMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.modelenvironmentindex.ModelEnvironmentIndexMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.modelfarmingoperation.ModelFarmingOperationMapper;
|
||||
@@ -27,8 +29,9 @@ import cn.iocoder.yudao.module.farm.dal.mysql.modelpestdiseaseweed.ModelPestDise
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.modelweatherdisaster.ModelWeatherDisasterMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO;
|
||||
import cn.iocoder.yudao.module.farm.enums.CommonConstants;
|
||||
import cn.iocoder.yudao.module.farm.service.disasterdata.DisasterDataService;
|
||||
import cn.iocoder.yudao.module.farm.framework.util.ModelManagementConvertUtil;
|
||||
import cn.iocoder.yudao.module.farm.service.disasterdata.DisasterDataService;
|
||||
import cn.iocoder.yudao.module.farm.service.specieslibrary.SpeciesLibraryService;
|
||||
import cn.iocoder.yudao.module.farm.service.sysDict.SysDictService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
@@ -74,6 +77,8 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
||||
@Resource
|
||||
private DisasterDataService disasterDataService;
|
||||
|
||||
@Resource
|
||||
private SpeciesLibraryService speciesLibraryService;
|
||||
|
||||
@Override
|
||||
public String createModelManagement(ModelManagementSaveReqVO createReqVO) {
|
||||
@@ -85,7 +90,14 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
||||
modelManagement.setIsRelease(0);
|
||||
modelManagement.setType(CommonConstants.MODEL_TYPE_1);
|
||||
|
||||
sysDictService.getDictByField3Code(createReqVO.getSpeciesId());
|
||||
SpeciesLibraryDO speciesLibrary = speciesLibraryService.getSpeciesLibrary(createReqVO.getSpeciesId());
|
||||
modelManagement.setSpeciesName(speciesLibrary.getSpeciesName() + "/" + speciesLibrary.getCultivarName());
|
||||
if (speciesLibrary.getLifeCycle() == 1) {
|
||||
modelManagement.setCycle("一年生");
|
||||
} else if (speciesLibrary.getLifeCycle() == 10) {
|
||||
modelManagement.setCycle("多年生");
|
||||
}
|
||||
modelManagement.setSpeciesImage(speciesLibrary.getImage());
|
||||
// 处理suitablePlantingAreas字段,优先使用集合
|
||||
if (createReqVO.getSuitablePlantingAreas() != null && !createReqVO.getSuitablePlantingAreas().isEmpty()) {
|
||||
modelManagement.setSuitablePlantingAreasList(createReqVO.getSuitablePlantingAreas());
|
||||
@@ -191,7 +203,8 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
||||
if (existing == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
SysDictThreeLvRespVO dictByField3Code = sysDictService.getDictByField3Code(existing.getSpeciesId());
|
||||
existing.setSpeciesName(dictByField3Code.getNames());
|
||||
// 基础字段:仅当请求中非空时才覆盖
|
||||
if (updateReqVO.getModelName() != null) existing.setModelName(updateReqVO.getModelName());
|
||||
if (updateReqVO.getSpeciesId() != null) existing.setSpeciesId(updateReqVO.getSpeciesId());
|
||||
|
||||
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.farm.service.specieslibrary;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibraryPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibrarySaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesThreeLevelTreeRespVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary.SpeciesLibraryDO;
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
@@ -67,4 +68,9 @@ public interface SpeciesLibraryService {
|
||||
*/
|
||||
Map<String, String> getSpeciesLibraryForLifeCycMap();
|
||||
|
||||
/**
|
||||
* 基于 speciesName1 -> speciesName2 -> cultivarName 构建三级树
|
||||
*/
|
||||
List<SpeciesThreeLevelTreeRespVO> getSpeciesThreeLevelTree();
|
||||
|
||||
}
|
||||
@@ -5,18 +5,21 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.security.core.LoginUser;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictThreeLvRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibraryPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibrarySaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesThreeLevelTreeRespVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary.SpeciesLibraryDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.specieslibrary.SpeciesLibraryMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictMapper;
|
||||
import cn.iocoder.yudao.module.farm.enums.CommonConstants;
|
||||
import cn.iocoder.yudao.module.farm.service.sysDict.SysDictService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -25,6 +28,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
|
||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DICT_TYPE_CODE_3;
|
||||
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.SPECIES_LIBRARY_NOT_EXISTS;
|
||||
import static cn.iocoder.yudao.module.farm.utils.StrHelperUtil.generate;
|
||||
|
||||
/**
|
||||
* 物种库维护 Service 实现类
|
||||
@@ -38,7 +42,8 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
@Resource
|
||||
private SpeciesLibraryMapper speciesLibraryMapper;
|
||||
@Resource
|
||||
private SysDictMapper sysDictMapper;
|
||||
private SysDictService sysDictService;
|
||||
|
||||
|
||||
@Override
|
||||
public String createSpeciesLibrary(SpeciesLibrarySaveReqVO createReqVO) {
|
||||
@@ -53,6 +58,9 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
String id = IdUtil.fastUUID();
|
||||
speciesLibrary.setId(id);
|
||||
speciesLibrary.setTenantId(String.valueOf(user.getTenantId()));
|
||||
speciesLibrary.setCreateTime(LocalDateTime.now());
|
||||
SysDictThreeLvRespVO dictByField2Code = sysDictService.getDictByField2Code(speciesLibrary.getCategory());
|
||||
speciesLibrary.setSpeciesName(dictByField2Code.getNames());
|
||||
speciesLibraryMapper.insert(speciesLibrary);
|
||||
// 同步
|
||||
this.syncCreateDict(id);
|
||||
@@ -68,7 +76,7 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
SysDictReqVO query = new SysDictReqVO();
|
||||
query.setDictTypeCode(DICT_TYPE_CODE_3);
|
||||
query.setField2Code(category);
|
||||
SysDictDO obj = sysDictMapper.selectDictByMaxField2Code(query);
|
||||
SysDictDO obj = sysDictService.selectDictByMaxField2Code(query);
|
||||
|
||||
SysDictDO insertObj = new SysDictDO();
|
||||
insertObj.setDictTypeCode(DICT_TYPE_CODE_3);
|
||||
@@ -77,11 +85,11 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
insertObj.setField1Name(obj.getField1Name());
|
||||
insertObj.setField2Code(category);
|
||||
insertObj.setField2Name(obj.getField2Name());
|
||||
insertObj.setField3Code(String.valueOf(Integer.parseInt(obj.getField3Code()) + 1));
|
||||
insertObj.setField3Code(generate());
|
||||
insertObj.setField3Name(cultivarName);
|
||||
insertObj.setStatus(CommonConstants.YES_CODE);
|
||||
insertObj.setDeleted(false);
|
||||
sysDictMapper.insertOne(insertObj);
|
||||
sysDictService.insertOne(insertObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -95,6 +103,8 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
}
|
||||
// 更新
|
||||
SpeciesLibraryDO updateObj = BeanUtils.toBean(updateReqVO, SpeciesLibraryDO.class);
|
||||
SysDictThreeLvRespVO dictByField2Code = sysDictService.getDictByField2Code(updateObj.getCategory());
|
||||
updateObj.setSpeciesName(dictByField2Code.getNames());
|
||||
speciesLibraryMapper.updateById(updateObj);
|
||||
// 同步
|
||||
this.syncUpdateDict(updateObj.getId());
|
||||
@@ -108,7 +118,7 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
SysDictReqVO query = new SysDictReqVO();
|
||||
query.setDictTypeCode(DICT_TYPE_CODE_3);
|
||||
query.setField2Code(category);
|
||||
SysDictDO obj = sysDictMapper.selectDictByMaxField2Code(query);
|
||||
SysDictDO obj = sysDictService.selectDictByMaxField2Code(query);
|
||||
|
||||
SysDictDO updateObj = new SysDictDO();
|
||||
updateObj.setId(Integer.valueOf(id));
|
||||
@@ -118,7 +128,7 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
updateObj.setField2Name(obj.getField2Name());
|
||||
updateObj.setField3Code(obj.getField3Code());
|
||||
updateObj.setField3Name(cultivarName);
|
||||
sysDictMapper.updateById(updateObj);
|
||||
sysDictService.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -140,12 +150,12 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
SysDictReqVO query = new SysDictReqVO();
|
||||
query.setDictTypeCode(DICT_TYPE_CODE_3);
|
||||
query.setField2Code(category);
|
||||
SysDictDO obj = sysDictMapper.selectDictByMaxField2Code(query);
|
||||
SysDictDO obj = sysDictService.selectDictByMaxField2Code(query);
|
||||
|
||||
SysDictDO updateObj = new SysDictDO();
|
||||
updateObj.setId(obj.getId());
|
||||
updateObj.setDeleted(false);
|
||||
sysDictMapper.updateById(obj);
|
||||
sysDictService.updateById(obj);
|
||||
|
||||
}
|
||||
|
||||
@@ -168,6 +178,15 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
// 触发图片集合转换,确保返回的DO对象包含转换后的图片集合
|
||||
speciesLibrary.getImageList();
|
||||
}
|
||||
if (speciesLibrary != null && speciesLibrary.getSpeciesName() != null) {
|
||||
String[] parts = speciesLibrary.getSpeciesName().split("/");
|
||||
if (parts.length > 0) {
|
||||
speciesLibrary.setSpeciesName1(parts[0]);
|
||||
}
|
||||
if (parts.length > 1) {
|
||||
speciesLibrary.setSpeciesName2(parts[1]);
|
||||
}
|
||||
}
|
||||
return speciesLibrary;
|
||||
}
|
||||
|
||||
@@ -180,6 +199,15 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
if (speciesLibrary != null) {
|
||||
speciesLibrary.getImageList();
|
||||
}
|
||||
if (speciesLibrary != null && speciesLibrary.getSpeciesName() != null) {
|
||||
String[] parts = speciesLibrary.getSpeciesName().split("/");
|
||||
if (parts.length > 0) {
|
||||
speciesLibrary.setSpeciesName1(parts[0]);
|
||||
}
|
||||
if (parts.length > 1) {
|
||||
speciesLibrary.setSpeciesName2(parts[1]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return pageResult;
|
||||
@@ -196,4 +224,43 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SpeciesThreeLevelTreeRespVO> getSpeciesThreeLevelTree() {
|
||||
List<SpeciesLibraryDO> list = speciesLibraryMapper.selectList();
|
||||
Map<String, Map<String, List<SpeciesLibraryDO>>> grouped = list.stream().collect(Collectors.groupingBy(
|
||||
e -> splitSpeciesName(e.getSpeciesName(), 0),
|
||||
Collectors.groupingBy(e -> splitSpeciesName(e.getSpeciesName(), 1))
|
||||
));
|
||||
|
||||
return grouped.entrySet().stream().map(level1 -> {
|
||||
SpeciesThreeLevelTreeRespVO n1 = new SpeciesThreeLevelTreeRespVO();
|
||||
n1.setName(level1.getKey());
|
||||
List<SpeciesThreeLevelTreeRespVO> childrenLv2 = level1.getValue().entrySet().stream().map(level2 -> {
|
||||
SpeciesThreeLevelTreeRespVO n2 = new SpeciesThreeLevelTreeRespVO();
|
||||
n2.setName(level2.getKey());
|
||||
List<SpeciesThreeLevelTreeRespVO> childrenLv3 = level2.getValue().stream().map(leaf -> {
|
||||
SpeciesThreeLevelTreeRespVO n3 = new SpeciesThreeLevelTreeRespVO();
|
||||
n3.setName(leaf.getCultivarName());
|
||||
n3.setId(leaf.getId());
|
||||
return n3;
|
||||
}).collect(Collectors.toList());
|
||||
n2.setChildren(childrenLv3);
|
||||
return n2;
|
||||
}).collect(Collectors.toList());
|
||||
n1.setChildren(childrenLv2);
|
||||
return n1;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private String splitSpeciesName(String speciesName, int index) {
|
||||
if (speciesName == null) {
|
||||
return "";
|
||||
}
|
||||
String[] parts = speciesName.split("/");
|
||||
if (index < parts.length) {
|
||||
return parts[index];
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,8 @@ public interface SysDictService {
|
||||
|
||||
SysDictThreeLvRespVO getDictByField3Code(String field3Code);
|
||||
|
||||
SysDictThreeLvRespVO getDictByField2Code(String field2Code);
|
||||
|
||||
SysDictDO getDictByFieldCode(SysDictReqVO reqVO);
|
||||
|
||||
List<InputLibraryRespVO> getInvestGoodsList();
|
||||
@@ -66,5 +68,9 @@ public interface SysDictService {
|
||||
|
||||
void deleteFarmingNameMaintenance(String id);
|
||||
|
||||
SysDictDO selectDictByMaxField2Code(SysDictReqVO reqVO);
|
||||
|
||||
void updateById(SysDictDO updateObj);
|
||||
|
||||
void insertOne(SysDictDO insertObj);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -216,6 +219,18 @@ public class SysDictServiceImpl implements SysDictService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysDictThreeLvRespVO getDictByField2Code(String field2Code) {
|
||||
SysDictReqVO query = new SysDictReqVO();
|
||||
query.setDictTypeCode(CommonConstants.DICT_TYPE_CODE_3);
|
||||
query.setField2Code(field2Code);
|
||||
SysDictDO obj = sysDictMapper.getDictByFieldCode(query);
|
||||
|
||||
String codes = MessageFormat.format("{0}/{1}", obj.getField1Code(), obj.getField2Code(), obj.getField3Code());
|
||||
String names = MessageFormat.format("{0}/{1}", obj.getField1Name(), obj.getField2Name(), obj.getField3Name());
|
||||
return new SysDictThreeLvRespVO(codes, names);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysDictDO getDictByFieldCode(SysDictReqVO reqVO) {
|
||||
return null;
|
||||
@@ -438,5 +453,19 @@ public class SysDictServiceImpl implements SysDictService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysDictDO selectDictByMaxField2Code(SysDictReqVO reqVO) {
|
||||
return sysDictMapper.selectDictByMaxField2Code(reqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateById(SysDictDO updateObj) {
|
||||
sysDictMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertOne(SysDictDO insertObj) {
|
||||
sysDictMapper.insertOne(insertObj);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user