fix (farm): 农场首页
- 接口优化
This commit is contained in:
@@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseNamePlanRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseNamePlanRespVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseNameRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo.BaseNameRespVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.CommonDictRespVO;
|
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.FarmingTypeRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.FarmingTypeRespVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.SpeciesClassifyLibraryRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.SpeciesClassifyLibraryRespVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictRespVO;
|
||||||
@@ -27,14 +26,12 @@ import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLi
|
|||||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibraryRespVO;
|
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.SpeciesLibrarySaveReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesThreeLevelTreeRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesThreeLevelTreeRespVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.twodict.vo.TwoDictTreeRespVO;
|
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingnamemaintenance.FarmingNameMaintenanceDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingnamemaintenance.FarmingNameMaintenanceDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingtypemaintenance.FarmingTypeMaintenanceDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingtypemaintenance.FarmingTypeMaintenanceDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputLibraryDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputLibraryDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary.SpeciesLibraryDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary.SpeciesLibraryDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO;
|
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.baseinfo.BaseInfoService;
|
import cn.iocoder.yudao.module.farm.service.baseinfo.BaseInfoService;
|
||||||
import cn.iocoder.yudao.module.farm.service.disasterdata.DisasterDataService;
|
import cn.iocoder.yudao.module.farm.service.disasterdata.DisasterDataService;
|
||||||
import cn.iocoder.yudao.module.farm.service.farmingtypemaintenance.FarmingTypeMaintenanceService;
|
import cn.iocoder.yudao.module.farm.service.farmingtypemaintenance.FarmingTypeMaintenanceService;
|
||||||
@@ -44,7 +41,6 @@ import cn.iocoder.yudao.module.farm.service.speciesclassifylibrary.SpeciesClassi
|
|||||||
import cn.iocoder.yudao.module.farm.service.specieslibrary.SpeciesLibraryService;
|
import cn.iocoder.yudao.module.farm.service.specieslibrary.SpeciesLibraryService;
|
||||||
import cn.iocoder.yudao.module.farm.service.sysDict.SysDictService;
|
import cn.iocoder.yudao.module.farm.service.sysDict.SysDictService;
|
||||||
import cn.iocoder.yudao.module.farm.service.twodict.TwoDictService;
|
import cn.iocoder.yudao.module.farm.service.twodict.TwoDictService;
|
||||||
import cn.iocoder.yudao.module.farm.utils.TreeStructureUtil;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
@@ -53,9 +49,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
|||||||
@@ -35,30 +35,26 @@ public class HomeController {
|
|||||||
@Operation(summary = "农场首页")
|
@Operation(summary = "农场首页")
|
||||||
@GetMapping("/{baseId}")
|
@GetMapping("/{baseId}")
|
||||||
public CommonResult<HomeInfo> getBaseInfo(@PathVariable("baseId") String baseId) {
|
public CommonResult<HomeInfo> getBaseInfo(@PathVariable("baseId") String baseId) {
|
||||||
HomeInfo res = homeService.getHomeInfo(baseId);
|
return success(homeService.getHomeInfo(baseId));
|
||||||
return success(res);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Parameter(name = "baseId", description = "基地ID", required = true)
|
@Parameter(name = "baseId", description = "基地ID", required = true)
|
||||||
@Operation(summary = "农场首页-概要信息")
|
@Operation(summary = "农场首页-概要信息")
|
||||||
@GetMapping("/outlined/{baseId}")
|
@GetMapping("/outlined/{baseId}")
|
||||||
public CommonResult<OutlinedInfoVO> getWeatherInfo(@PathVariable("baseId") String baseId) {
|
public CommonResult<OutlinedInfoVO> getWeatherInfo(@PathVariable("baseId") String baseId) {
|
||||||
OutlinedInfoVO res = homeService.getOutlinedInfo(baseId);
|
return success(homeService.getOutlinedInfo(baseId));
|
||||||
return success(res);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "农场首页-基地名称列表")
|
@Operation(summary = "农场首页-基地名称列表")
|
||||||
@GetMapping("/baseNames")
|
@GetMapping("/baseNames")
|
||||||
public CommonResult<List<BaseNameVO>> getBaseNameList() {
|
public CommonResult<List<BaseNameVO>> getBaseNameList() {
|
||||||
List<BaseNameVO> res = homeService.getBaseNameList();
|
return success(homeService.getBaseNameList());
|
||||||
return success(res);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "农场首页-公司基地及种植")
|
@Operation(summary = "农场首页-公司基地及种植")
|
||||||
@GetMapping("/companyBaseFarming")
|
@GetMapping("/companyBaseFarming")
|
||||||
public CommonResult<Object> getCompanyBaseFarming() {
|
public CommonResult<Object> getCompanyBaseFarming() {
|
||||||
Map<String, Object> res = homeService.getCompanyBaseFarming();
|
return success(homeService.getCompanyBaseFarming());
|
||||||
return success(res);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.home.vo;
|
package cn.iocoder.yudao.module.farm.controller.admin.home.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 基地名称下拉列表
|
* @description: 基地名称下拉列表
|
||||||
@@ -8,6 +10,8 @@ import lombok.Data;
|
|||||||
* @date: 2025/8/15 18:04
|
* @date: 2025/8/15 18:04
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
public class BaseNameVO {
|
public class BaseNameVO {
|
||||||
public String baseId;
|
public String baseId;
|
||||||
public String baseName;
|
public String baseName;
|
||||||
|
|||||||
@@ -26,6 +26,21 @@ public class HomeInfo {
|
|||||||
private List<PlotInfo> plotInfos;
|
private List<PlotInfo> plotInfos;
|
||||||
@Schema(description = "计划集合")
|
@Schema(description = "计划集合")
|
||||||
private List<PlanInfo> planInfos;
|
private List<PlanInfo> planInfos;
|
||||||
|
@Schema(description = "统计信息")
|
||||||
|
private StatisticalInfo statisticalInfo;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public static class StatisticalInfo {
|
||||||
|
@Schema(description = "今日任务数量")
|
||||||
|
private Integer taskCount;
|
||||||
|
@Schema(description = "告警数量")
|
||||||
|
private Integer warningCount;
|
||||||
|
@Schema(description = "物联设备数量")
|
||||||
|
private Integer iotCount;
|
||||||
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ public interface BaseInfoService {
|
|||||||
* @return 基地
|
* @return 基地
|
||||||
*/
|
*/
|
||||||
BaseInfoDO getBaseInfo(String id);
|
BaseInfoDO getBaseInfo(String id);
|
||||||
|
List<BaseInfoDO> getBaseInfos();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得基地分页
|
* 获得基地分页
|
||||||
|
|||||||
@@ -111,6 +111,12 @@ public class BaseInfoServiceImpl implements BaseInfoService {
|
|||||||
return baseInfoMapper.selectById(id);
|
return baseInfoMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BaseInfoDO> getBaseInfos() {
|
||||||
|
String tenantId = String.valueOf(getLoginUser().getTenantId());
|
||||||
|
return baseInfoMapper.selectList("tenant_id", tenantId);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<BaseInfoDO> getBaseInfoPage(BaseInfoPageReqVO pageReqVO) {
|
public PageResult<BaseInfoDO> getBaseInfoPage(BaseInfoPageReqVO pageReqVO) {
|
||||||
return baseInfoMapper.selectPage(pageReqVO);
|
return baseInfoMapper.selectPage(pageReqVO);
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ public interface HomeService {
|
|||||||
*/
|
*/
|
||||||
HomeInfo getHomeInfo(String baseId);
|
HomeInfo getHomeInfo(String baseId);
|
||||||
|
|
||||||
HomeInfo2VO getHomeInfo2(String baseId);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 首页概要信息
|
* 首页概要信息
|
||||||
* @param baseId 基地ID
|
* @param baseId 基地ID
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import cn.iocoder.yudao.framework.security.core.LoginUser;
|
|||||||
import cn.iocoder.yudao.module.farm.controller.admin.home.vo.BaseNameVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.home.vo.BaseNameVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.home.vo.HomeInfo;
|
import cn.iocoder.yudao.module.farm.controller.admin.home.vo.HomeInfo;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.home.vo.HomeInfo.*;
|
import cn.iocoder.yudao.module.farm.controller.admin.home.vo.HomeInfo.*;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.home.vo.HomeInfo2VO;
|
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.home.vo.OutlinedInfoVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.home.vo.OutlinedInfoVO;
|
||||||
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.dataobject.plotinfo.PlotInfoDO;
|
||||||
@@ -21,6 +20,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||||
|
|
||||||
@@ -138,87 +138,6 @@ public class HomeServiceImpl implements HomeService {
|
|||||||
return targetList;
|
return targetList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public HomeInfo2VO getHomeInfo2(String baseId) {
|
|
||||||
|
|
||||||
// 地块信息
|
|
||||||
List<HomeInfo2VO.PlotInfoVO> plotInfoVOs = this.getPlots(baseId);
|
|
||||||
|
|
||||||
int plotCount = 0; // 在种地块
|
|
||||||
int plotTotalCount = 0; // 地块总数
|
|
||||||
|
|
||||||
// 任务信息
|
|
||||||
int cropCount = 0; // 在种作物
|
|
||||||
int cropTotalCount = 0; // 作物总数
|
|
||||||
|
|
||||||
// 基地信息
|
|
||||||
BaseInfoDO baseInfoDO = baseInfoService.getBaseInfo(baseId);
|
|
||||||
|
|
||||||
HomeInfo2VO.BaseInfoVO baseInfoVO = new HomeInfo2VO.BaseInfoVO();
|
|
||||||
baseInfoVO.setId(baseInfoDO.getId());
|
|
||||||
baseInfoVO.setArea(baseInfoDO.getArea());
|
|
||||||
baseInfoVO.setPointName(""); // todo 需要从坐标json中解析坐标名称
|
|
||||||
baseInfoVO.setManager(baseInfoDO.getManager());
|
|
||||||
baseInfoVO.setPlotCount(plotCount);
|
|
||||||
baseInfoVO.setPlotTotalCount(plotTotalCount);
|
|
||||||
baseInfoVO.setCropCount(cropCount);
|
|
||||||
baseInfoVO.setCropTotalCount(cropTotalCount);
|
|
||||||
|
|
||||||
HomeInfo2VO res = new HomeInfo2VO();
|
|
||||||
res.setBaseInfo(baseInfoVO);
|
|
||||||
res.setPlotInfoVOS(plotInfoVOs);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 构建地块信息
|
|
||||||
*
|
|
||||||
* @param baseId 基地ID
|
|
||||||
* @return 地块集合
|
|
||||||
*/
|
|
||||||
private List<HomeInfo2VO.PlotInfoVO> getPlots(String baseId) {
|
|
||||||
// 地块信息
|
|
||||||
List<PlotInfoDO> plotInfos = plotInfoService.getPlotInfos(baseId);
|
|
||||||
List<HomeInfo2VO.PlotInfoVO> resList = new ArrayList<>();
|
|
||||||
plotInfos.forEach(e -> {
|
|
||||||
String plotId = e.getPlotId();
|
|
||||||
|
|
||||||
// 任务信息
|
|
||||||
List<ProductionPlanDO> productionPlanInfos = productionPlanService.getProductionPlans(plotId);
|
|
||||||
List<HomeInfo2VO.ProductionPlanVO> plans = new ArrayList<>();
|
|
||||||
productionPlanInfos.forEach(ee -> {
|
|
||||||
HomeInfo2VO.ProductionPlanVO planVO = new HomeInfo2VO.ProductionPlanVO();
|
|
||||||
planVO.setId(ee.getId());
|
|
||||||
// planVO.setPlantSpecies(ee.getPlantSpecies());
|
|
||||||
// planVO.setCultivationAreaId(ee.getCultivationAreaId());
|
|
||||||
planVO.setManagementCycleName(""); // todo 当前管理周期名称
|
|
||||||
planVO.setManagementCyclePlan(""); // todo 当前管理周期计划进度
|
|
||||||
planVO.setCultivatedArea(0); // todo 种植面积
|
|
||||||
// planVO.setEstimatedOutput(ee.getEstimatedOutput()); // todo 预产数量
|
|
||||||
planVO.setTaskCount(0); // todo 任务数量
|
|
||||||
planVO.setManager(""); //
|
|
||||||
plans.add(planVO); // todo 任务负责人
|
|
||||||
});
|
|
||||||
|
|
||||||
HomeInfo2VO.PlotInfoVO plotVO = new HomeInfo2VO.PlotInfoVO();
|
|
||||||
plotVO.setPlotId(plotId);
|
|
||||||
plotVO.setPlotName(e.getPlotName());
|
|
||||||
plotVO.setPlotArea(e.getPlotArea());
|
|
||||||
plotVO.setCropName(""); // todo 种植作物名称,使用逗号分割
|
|
||||||
plotVO.setCropCount(0); // todo 地块在种作物数量
|
|
||||||
plotVO.setProductionPlanCount(0); // todo 农事任务数量
|
|
||||||
plotVO.setIotCount(0); // todo 物联网设备数据
|
|
||||||
plotVO.setManager(e.getEmployeeId()); // todo 负责人id -> name
|
|
||||||
plotVO.setQrCodeUrl(""); // 二维码URL
|
|
||||||
plotVO.setProductionPlanVOS(plans);
|
|
||||||
resList.add(plotVO);
|
|
||||||
});
|
|
||||||
|
|
||||||
return resList;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OutlinedInfoVO getOutlinedInfo(String baseId) {
|
public OutlinedInfoVO getOutlinedInfo(String baseId) {
|
||||||
OutlinedInfoVO res = new OutlinedInfoVO();
|
OutlinedInfoVO res = new OutlinedInfoVO();
|
||||||
@@ -230,7 +149,8 @@ public class HomeServiceImpl implements HomeService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BaseNameVO> getBaseNameList() {
|
public List<BaseNameVO> getBaseNameList() {
|
||||||
return null;
|
List<BaseInfoDO> baseNameList = baseInfoService.getBaseInfos();
|
||||||
|
return baseNameList.stream().map(e -> new BaseNameVO(e.getId(), e.getName())).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user