feat (farm):

- 基地名称-下拉框两级联动
This commit is contained in:
达富斌
2025-08-22 11:08:04 +08:00
parent 2c8d936411
commit 15e502ed7e
4 changed files with 59 additions and 8 deletions

View File

@@ -100,8 +100,8 @@ public class BaseInfoController {
@GetMapping("/get/baser-name-list") @GetMapping("/get/baser-name-list")
@Operation(summary = "获得基地名称-下拉列表") @Operation(summary = "获得基地名称-下拉列表")
public CommonResult<List<BaseNameRespVO>> getBaseNameList() { public CommonResult<List<BaseNameRespVO>> getBaseNameList() {
List<BaseInfoDO> res = baseInfoService.getBaseNameList(); List<BaseNameRespVO> res = baseInfoService.getBaseNameList();
return success(BeanUtils.toBean(res,BaseNameRespVO.class)); return success(res);
} }
} }

View File

@@ -5,6 +5,8 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.List;
/** /**
* @description: TODO * @description: TODO
* @author: binda * @author: binda
@@ -20,4 +22,22 @@ public class BaseNameRespVO {
@Schema(description = "基地名称", example = "张三") @Schema(description = "基地名称", example = "张三")
private String name; private String name;
private List<PlotInfoVO> children;
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class PlotInfoVO {
@Schema(description = "地块ID", example = "4027")
private String plotId;
@Schema(description = "地块名称", example = "王五")
private String plotName;
}
public BaseNameRespVO(String id, String name) {
this.id = id;
this.name = name;
}
} }

View File

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.farm.service.baseinfo;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseInfoPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseInfoPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseInfoSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseInfoSaveReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseNameRespVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
import jakarta.validation.Valid; import jakarta.validation.Valid;
@@ -66,5 +67,5 @@ public interface BaseInfoService {
* 基地名称-下拉列表 * 基地名称-下拉列表
* @return * @return
*/ */
List<BaseInfoDO> getBaseNameList(); List<BaseNameRespVO> getBaseNameList();
} }

View File

@@ -6,13 +6,19 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseInfoPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseInfoPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseInfoSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseInfoSaveReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseNameRespVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO;
import cn.iocoder.yudao.module.farm.dal.mysql.baseinfo.BaseInfoMapper; import cn.iocoder.yudao.module.farm.dal.mysql.baseinfo.BaseInfoMapper;
import cn.iocoder.yudao.module.farm.dal.mysql.plotinfo.PlotInfoMapper;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
@@ -29,6 +35,8 @@ public class BaseInfoServiceImpl implements BaseInfoService {
@Resource @Resource
private BaseInfoMapper baseInfoMapper; private BaseInfoMapper baseInfoMapper;
@Resource
private PlotInfoMapper plotInfoMapper;
@Override @Override
public String createBaseInfo(BaseInfoSaveReqVO createReqVO) { public String createBaseInfo(BaseInfoSaveReqVO createReqVO) {
@@ -88,9 +96,31 @@ private void validateBaseInfoExists(String id) {
} }
@Override @Override
public List<BaseInfoDO> getBaseNameList() { public List<BaseNameRespVO> getBaseNameList() {
return baseInfoMapper.selectList(); List<BaseNameRespVO> res = new ArrayList<>();
// 地块
List<PlotInfoDO> plotInfoDOS = plotInfoMapper.selectList();
// 基地
List<BaseInfoDO> baseInfoDOS = baseInfoMapper.selectList();
Map<String, String> baseNameMap = baseInfoDOS.stream().collect(Collectors.toMap(BaseInfoDO::getId, BaseInfoDO::getName, (v1, v2) -> v1));
for (Map.Entry<String, String> entry : baseNameMap.entrySet()) {
String key = entry.getKey();
BaseNameRespVO obj = new BaseNameRespVO(key, entry.getValue());
List<BaseNameRespVO.PlotInfoVO> childList = new ArrayList<>();
for (PlotInfoDO aDo : plotInfoDOS) {
if (aDo.getBaseId().equals(key)) {
childList.add(new BaseNameRespVO.PlotInfoVO(aDo.getPlotId(), aDo.getPlotName()));
}
}
obj.setChildren(childList);
res.add(obj);
}
return BeanUtils.toBean(res, BaseNameRespVO.class);
} }