feat (farm): 计划管理

- 分页查询相应格式修改
- 添加计划进度字段
This commit is contained in:
达富斌
2025-08-28 14:07:56 +08:00
parent 3bcb2e62ee
commit e7c3347709
4 changed files with 22 additions and 18 deletions

View File

@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanPageRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanUpdateReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordRespVO;
@@ -50,7 +50,7 @@ public class CropFarmingCenterController {
// 生产计划
@GetMapping("/production-plan/page")
@Operation(summary = "生产计划-分页")
public CommonResult<PageResult<ProductionPlanPageRespVO>> getProductionPlanPage(@Valid cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanPageReqVO pageReqVO) {
public CommonResult<PageResult<ProductionPlanRespVO>> getProductionPlanPage(@Valid cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanPageReqVO pageReqVO) {
return success(cropFarmingCenterService.getProductionPlanPage(pageReqVO));
}

View File

@@ -56,6 +56,8 @@ public class ProductionPlanRespVO {
private Integer planStatus;
@Schema(description = "计划执行状态-名称")
private String planStatusName;
@Schema(description = "计划执行进度")
private Double planProgress;
@Schema(description = "租户ID")

View File

@@ -24,7 +24,7 @@ public interface CropFarmingCenterService {
void updateProductionPlan(ProductionPlanUpdateReqVO updateReqVO);
PageResult<ProductionPlanPageRespVO> getProductionPlanPage(ProductionPlanPageReqVO reqVO);
PageResult<ProductionPlanRespVO> getProductionPlanPage(ProductionPlanPageReqVO reqVO);
int getCropCount(Long tenantId);

View File

@@ -220,11 +220,13 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
}
@Override
public PageResult<ProductionPlanPageRespVO> getProductionPlanPage(ProductionPlanPageReqVO reqVO) {
public PageResult<ProductionPlanRespVO> getProductionPlanPage(ProductionPlanPageReqVO reqVO) {
PageResult<ProductionPlanDO> productionPlanDOPageResult = productionPlanMapper.selectPage2(reqVO);
PageResult<ProductionPlanRespVO> resultData = BeanUtils.toBean(productionPlanDOPageResult, ProductionPlanRespVO.class);
resultData.getList().forEach(e -> {
// todo 计划进度比例
e.setPlanProgress(0.00);
// 计划状态-名称
e.setPlanStatusName(PLAN_MAP.get(e.getPlanStatus()));
// 模型
@@ -239,20 +241,20 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
});
// 响应结构包装 (包装成符合前端需要的格式)
List<ProductionPlanPageRespVO> collect = resultData.getList().stream()
.collect(Collectors.groupingBy(plan -> new AbstractMap.SimpleEntry<>(plan.getBaseId(), plan.getBaseName()), Collectors.toList()))
.entrySet().stream()
.map(entry -> {
ProductionPlanPageRespVO groupedVO = new ProductionPlanPageRespVO();
groupedVO.setBaseId(entry.getKey().getKey());
groupedVO.setBaseName(entry.getKey().getValue());
groupedVO.setPlans(entry.getValue());
return groupedVO;
})
.collect(Collectors.toList());
long size = collect.size();
return new PageResult<>(collect, size);
// List<ProductionPlanPageRespVO> collect = resultData.getList().stream()
// .collect(Collectors.groupingBy(plan -> new AbstractMap.SimpleEntry<>(plan.getBaseId(), plan.getBaseName()), Collectors.toList()))
// .entrySet().stream()
// .map(entry -> {
// ProductionPlanPageRespVO groupedVO = new ProductionPlanPageRespVO();
// groupedVO.setBaseId(entry.getKey().getKey());
// groupedVO.setBaseName(entry.getKey().getValue());
// groupedVO.setPlans(entry.getValue());
// return groupedVO;
// })
// .collect(Collectors.toList());
//
// long size = collect.size();
return resultData;
}