feat (farm):
- 基地名称-下拉框两级联动
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user