feat (farm): 种植中心-生产计划
- 开始, 结束 ,重启, 删除 按钮
This commit is contained in:
@@ -9,9 +9,11 @@ import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRec
|
|||||||
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordRespVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingrecord.FarmingRecordDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingrecord.FarmingRecordDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.enums.CommonConstants;
|
||||||
import cn.iocoder.yudao.module.farm.service.cropFarmingCenter.CropFarmingCenterService;
|
import cn.iocoder.yudao.module.farm.service.cropFarmingCenter.CropFarmingCenterService;
|
||||||
import cn.iocoder.yudao.module.farm.service.farmingrecord.FarmingRecordService;
|
import cn.iocoder.yudao.module.farm.service.farmingrecord.FarmingRecordService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -45,14 +47,11 @@ public class CropFarmingCenterController {
|
|||||||
this.farmingRecordService = farmingRecordService;
|
this.farmingRecordService = farmingRecordService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 生产计划
|
// 生产计划
|
||||||
@GetMapping("/production-plan/page")
|
@GetMapping("/production-plan/page")
|
||||||
@Operation(summary = "生产计划-分页")
|
@Operation(summary = "生产计划-分页")
|
||||||
public CommonResult<ProductionPlanPageRespVO> getProductionPlanPage(@Valid cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanPageReqVO pageReqVO) {
|
public CommonResult<PageResult<ProductionPlanPageRespVO>> getProductionPlanPage(@Valid cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanPageReqVO pageReqVO) {
|
||||||
ProductionPlanPageRespVO pageResult = cropFarmingCenterService.getProductionPlanPage(pageReqVO);
|
return success(cropFarmingCenterService.getProductionPlanPage(pageReqVO));
|
||||||
return success(pageResult);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/production-plan/get/{id}")
|
@GetMapping("/production-plan/get/{id}")
|
||||||
@@ -77,6 +76,38 @@ public class CropFarmingCenterController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping("/production-plan/delete")
|
||||||
|
@Operation(summary = "删除种植中心-生产计划-生产计划")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
public CommonResult<Boolean> deleteProductionPlan(@RequestParam("id") String id) {
|
||||||
|
cropFarmingCenterService.deleteProductionPlan(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "生产计划-重启按钮")
|
||||||
|
@PutMapping("/production-plan/restart")
|
||||||
|
public CommonResult<Boolean> restartPlanning(@RequestBody ProductionPlanUpdateReqVO updateReqVO) {
|
||||||
|
updateReqVO.setPlanStatus(CommonConstants.PLAN_STATUS_2);
|
||||||
|
cropFarmingCenterService.updateProductionPlan(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
@Operation(summary = "生产计划-开始按钮")
|
||||||
|
@PutMapping("/production-plan/start")
|
||||||
|
public CommonResult<Boolean> startPlanning(@RequestBody ProductionPlanUpdateReqVO updateReqVO) {
|
||||||
|
updateReqVO.setPlanStatus(CommonConstants.PLAN_STATUS_2);
|
||||||
|
cropFarmingCenterService.updateProductionPlan(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "生产计划-结束按钮")
|
||||||
|
@PutMapping("/production-plan/finish")
|
||||||
|
public CommonResult<Boolean> finishPlanning(@RequestBody ProductionPlanUpdateReqVO updateReqVO) {
|
||||||
|
updateReqVO.setPlanStatus(CommonConstants.PLAN_STATUS_3);
|
||||||
|
cropFarmingCenterService.updateProductionPlan(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 农事记录
|
// 农事记录
|
||||||
@GetMapping("/farming-record/page")
|
@GetMapping("/farming-record/page")
|
||||||
@Operation(summary = "农事记录-分页")
|
@Operation(summary = "农事记录-分页")
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo;
|
package cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 分页响应实体
|
* @description: 分页响应实体
|
||||||
@@ -18,27 +17,11 @@ import java.math.BigDecimal;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class ProductionPlanPageRespVO {
|
public class ProductionPlanPageRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "基地ID")
|
||||||
@Schema(description = "分页数据")
|
private String baseId;
|
||||||
private PageResult<ProductionPlanRespVO> list;
|
@Schema(description = "基地名称")
|
||||||
|
private String baseName;
|
||||||
@Schema(description = "计划概括信息")
|
@Schema(description = "生产计划集合")
|
||||||
private PlanOverview planOverview;
|
private List<ProductionPlanRespVO> plans;
|
||||||
|
|
||||||
@Data
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
public static class PlanOverview{
|
|
||||||
@Schema(description = "总面积")
|
|
||||||
private BigDecimal totalArea;
|
|
||||||
@Schema(description = "计划总数")
|
|
||||||
private Integer planCount;
|
|
||||||
@Schema(description = "已完成-计划个数")
|
|
||||||
private Integer planCompletedCount;
|
|
||||||
@Schema(description = "进行中-计划个数")
|
|
||||||
private Integer planInProgressCount;
|
|
||||||
@Schema(description = "逾期-计划个数")
|
|
||||||
private Integer planOverdueCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo;
|
package cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementRespVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementRespVO;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -31,14 +33,25 @@ public class ProductionPlanRespVO {
|
|||||||
private String speciesModelId;
|
private String speciesModelId;
|
||||||
|
|
||||||
@Schema(description = "排产开始日期")
|
@Schema(description = "排产开始日期")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDate productionStartDate;
|
private LocalDate productionStartDate;
|
||||||
|
|
||||||
@Schema(description = "排产结束日期")
|
@Schema(description = "排产结束日期")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDate productionEndDate;
|
private LocalDate productionEndDate;
|
||||||
|
|
||||||
@Schema(description = "采收开始日期")
|
@Schema(description = "采收开始日期")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDate harvestStartDate;
|
private LocalDate harvestStartDate;
|
||||||
|
|
||||||
|
@Schema(description = "计划开始日期")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDate plantingStartDate;
|
||||||
|
|
||||||
|
@Schema(description = "计划结束日期")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDate plantingEndDate;
|
||||||
|
|
||||||
@Schema(description = "计划执行状态")
|
@Schema(description = "计划执行状态")
|
||||||
private Integer planStatus;
|
private Integer planStatus;
|
||||||
@Schema(description = "计划执行状态-名称")
|
@Schema(description = "计划执行状态-名称")
|
||||||
@@ -60,6 +73,7 @@ public class ProductionPlanRespVO {
|
|||||||
* 种植区域信息
|
* 种植区域信息
|
||||||
*/
|
*/
|
||||||
@Schema(description = "种植日期")
|
@Schema(description = "种植日期")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDate plantingDate;
|
private LocalDate plantingDate;
|
||||||
@Schema(description = "种植株数")
|
@Schema(description = "种植株数")
|
||||||
private Integer plantingQuantity;
|
private Integer plantingQuantity;
|
||||||
@@ -76,7 +90,26 @@ public class ProductionPlanRespVO {
|
|||||||
@Schema(description = "备注")
|
@Schema(description = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
@Schema(description = "模型", example = "芋艿")
|
@Schema(description = "模型")
|
||||||
private ModelManagementRespVO modelManagementRespVO;
|
private ModelManagementRespVO modelManagementRespVO;
|
||||||
|
|
||||||
|
@Schema(description = "计划概括信息")
|
||||||
|
private ProductionPlanRespVO.PlanOverview planOverview;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public static class PlanOverview{
|
||||||
|
@Schema(description = "总面积")
|
||||||
|
private BigDecimal totalArea;
|
||||||
|
@Schema(description = "计划总数")
|
||||||
|
private Integer planCount;
|
||||||
|
@Schema(description = "已完成-计划个数")
|
||||||
|
private Integer planCompletedCount;
|
||||||
|
@Schema(description = "进行中-计划个数")
|
||||||
|
private Integer planInProgressCount;
|
||||||
|
@Schema(description = "逾期-计划个数")
|
||||||
|
private Integer planOverdueCount;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,12 @@ public class ProductionPlanUpdateReqVO {
|
|||||||
@Schema(description = "采收开始日期")
|
@Schema(description = "采收开始日期")
|
||||||
private LocalDate harvestStartDate;
|
private LocalDate harvestStartDate;
|
||||||
|
|
||||||
|
@Schema(description = "计划开始日期")
|
||||||
|
private LocalDate plantingStartDate;
|
||||||
|
|
||||||
|
@Schema(description = "计划结束日期")
|
||||||
|
private LocalDate plantingEndDate;
|
||||||
|
|
||||||
@Schema(description = "计划执行状态 (1:未开始;2:进行中;3:已完成;4:逾期)")
|
@Schema(description = "计划执行状态 (1:未开始;2:进行中;3:已完成;4:逾期)")
|
||||||
private Integer planStatus;
|
private Integer planStatus;
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,14 @@ public class ProductionPlanDO extends BaseDO {
|
|||||||
* 采收开始日期
|
* 采收开始日期
|
||||||
*/
|
*/
|
||||||
private LocalDate harvestStartDate;
|
private LocalDate harvestStartDate;
|
||||||
|
/**
|
||||||
|
* 计划开始日期
|
||||||
|
*/
|
||||||
|
private LocalDate plantingStartDate;
|
||||||
|
/**
|
||||||
|
* 计划结束日期
|
||||||
|
*/
|
||||||
|
private LocalDate plantingEndDate;
|
||||||
/**
|
/**
|
||||||
* 执行状态
|
* 执行状态
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.farm.dal.mysql.productionplan;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
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.productionplan.vo.ProductionPlanPageReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.productionplan.vo.ProductionPlanPageReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.productionplan.ProductionPlanDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.productionplan.ProductionPlanDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
@@ -36,12 +36,16 @@ public interface ProductionPlanMapper extends BaseMapperX<ProductionPlanDO> {
|
|||||||
|
|
||||||
default PageResult<ProductionPlanDO> selectPage2(cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanPageReqVO reqVO) {
|
default PageResult<ProductionPlanDO> selectPage2(cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanPageReqVO reqVO) {
|
||||||
return selectPage(reqVO, new LambdaQueryWrapperX<ProductionPlanDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<ProductionPlanDO>()
|
||||||
.betweenIfPresent(ProductionPlanDO::getProductionStartDate, reqVO.getProductionStartDate())
|
.betweenIfPresent(ProductionPlanDO::getProductionStartDate,
|
||||||
|
reqVO.getProductionStartDate() != null ? reqVO.getProductionStartDate()[0] : null,
|
||||||
|
reqVO.getProductionStartDate() != null ? reqVO.getProductionStartDate()[1] : null
|
||||||
|
)
|
||||||
.eqIfPresent(ProductionPlanDO::getBaseId, reqVO.getBaseId())
|
.eqIfPresent(ProductionPlanDO::getBaseId, reqVO.getBaseId())
|
||||||
.eqIfPresent(ProductionPlanDO::getPlotId, reqVO.getPlotId())
|
.eqIfPresent(ProductionPlanDO::getPlotId, reqVO.getPlotId())
|
||||||
|
.eqIfPresent(ProductionPlanDO::getPlanStatus, reqVO.getPlanStatus())
|
||||||
.orderByDesc(ProductionPlanDO::getCreateTime)
|
.orderByDesc(ProductionPlanDO::getCreateTime)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
ProductionPlanPageRespVO.PlanOverview getPlanOverview(@Param("baseId") String baseId);
|
ProductionPlanRespVO.PlanOverview getPlanOverview(@Param("baseId") String baseId);
|
||||||
}
|
}
|
||||||
@@ -24,14 +24,19 @@ public class CommonConstants {
|
|||||||
public final static Integer PLAN_STATUS_2 = 2;
|
public final static Integer PLAN_STATUS_2 = 2;
|
||||||
public final static Integer PLAN_STATUS_3 = 3;
|
public final static Integer PLAN_STATUS_3 = 3;
|
||||||
public final static Integer PLAN_STATUS_4 = 4;
|
public final static Integer PLAN_STATUS_4 = 4;
|
||||||
|
public final static Integer PLAN_STATUS_5 = 5;
|
||||||
|
public final static Integer PLAN_STATUS_6 = 6;
|
||||||
|
public final static Integer PLAN_STATUS_7 = 7;
|
||||||
|
|
||||||
public static Map<Integer, String> PLAN_MAP = new HashMap<>();
|
public static Map<Integer, String> PLAN_MAP = new HashMap<>();
|
||||||
static{
|
static{
|
||||||
PLAN_MAP.put(1, "未开始");
|
PLAN_MAP.put(PLAN_STATUS_1, "未开始");
|
||||||
PLAN_MAP.put(2, "进行中");
|
PLAN_MAP.put(PLAN_STATUS_2, "进行中");
|
||||||
PLAN_MAP.put(3, "已完成");
|
PLAN_MAP.put(PLAN_STATUS_3, "已完成");
|
||||||
PLAN_MAP.put(4, "逾期");
|
PLAN_MAP.put(PLAN_STATUS_4, "逾期");
|
||||||
PLAN_MAP.put(5, "已结束");
|
PLAN_MAP.put(PLAN_STATUS_5, "逾期未开始");
|
||||||
|
PLAN_MAP.put(PLAN_STATUS_6, "逾期未结束");
|
||||||
|
PLAN_MAP.put(PLAN_STATUS_7, "已结束");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 模型类型 (1:模型模板; 2:引用案例)
|
// 模型类型 (1:模型模板; 2:引用案例)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.farm.service.cropFarmingCenter;
|
package cn.iocoder.yudao.module.farm.service.cropFarmingCenter;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.*;
|
import cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -23,9 +24,11 @@ public interface CropFarmingCenterService {
|
|||||||
|
|
||||||
void updateProductionPlan(ProductionPlanUpdateReqVO updateReqVO);
|
void updateProductionPlan(ProductionPlanUpdateReqVO updateReqVO);
|
||||||
|
|
||||||
ProductionPlanPageRespVO getProductionPlanPage(ProductionPlanPageReqVO reqVO);
|
PageResult<ProductionPlanPageRespVO> getProductionPlanPage(ProductionPlanPageReqVO reqVO);
|
||||||
|
|
||||||
int getCropCount(Long tenantId);
|
int getCropCount(Long tenantId);
|
||||||
|
|
||||||
Double getTotalArea(Long tenantId);
|
Double getTotalArea(Long tenantId);
|
||||||
|
|
||||||
|
void deleteProductionPlan(String id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,11 +25,14 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.AbstractMap;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
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;
|
||||||
|
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.PLAN_MAP;
|
||||||
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.PRODUCTION_PLAN_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.PRODUCTION_PLAN_NOT_EXISTS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -208,22 +211,39 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProductionPlanPageRespVO getProductionPlanPage(ProductionPlanPageReqVO reqVO) {
|
public PageResult<ProductionPlanPageRespVO> getProductionPlanPage(ProductionPlanPageReqVO reqVO) {
|
||||||
|
|
||||||
PageResult<ProductionPlanDO> productionPlanDOPageResult = productionPlanMapper.selectPage2(reqVO);
|
PageResult<ProductionPlanDO> productionPlanDOPageResult = productionPlanMapper.selectPage2(reqVO);
|
||||||
PageResult<ProductionPlanRespVO> resultData = BeanUtils.toBean(productionPlanDOPageResult, ProductionPlanRespVO.class);
|
PageResult<ProductionPlanRespVO> resultData = BeanUtils.toBean(productionPlanDOPageResult, ProductionPlanRespVO.class);
|
||||||
resultData.getList().forEach(e -> {
|
resultData.getList().forEach(e -> {
|
||||||
|
// 计划状态-名称
|
||||||
|
e.setPlanStatusName(PLAN_MAP.get(e.getPlanStatus()));
|
||||||
|
// 模型
|
||||||
ModelManagementRespVO modelManagementRespVO = modelManagementService.getModelManagement(e.getSpeciesModelId());
|
ModelManagementRespVO modelManagementRespVO = modelManagementService.getModelManagement(e.getSpeciesModelId());
|
||||||
e.setModelManagementRespVO(modelManagementRespVO);
|
e.setModelManagementRespVO(modelManagementRespVO);
|
||||||
|
|
||||||
|
// 计划概述
|
||||||
|
BaseInfoDO baseObj = baseInfoMapper.selectOne("id", e.getBaseId());
|
||||||
|
ProductionPlanRespVO.PlanOverview planOverview = productionPlanMapper.getPlanOverview(e.getBaseId());
|
||||||
|
planOverview.setTotalArea(baseObj.getArea());
|
||||||
|
e.setPlanOverview(planOverview);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 计划概述
|
// 响应结构包装 (包装成符合前端需要的格式)
|
||||||
BaseInfoDO baseObj = baseInfoMapper.selectOne("base_id", reqVO.getBaseId());
|
List<ProductionPlanPageRespVO> collect = resultData.getList().stream()
|
||||||
ProductionPlanPageRespVO.PlanOverview planOverview = productionPlanMapper.getPlanOverview(reqVO.getBaseId());
|
.collect(Collectors.groupingBy(plan -> new AbstractMap.SimpleEntry<>(plan.getBaseId(), plan.getBaseName()), Collectors.toList()))
|
||||||
planOverview.setTotalArea(baseObj.getArea());
|
.entrySet().stream()
|
||||||
return new ProductionPlanPageRespVO(resultData,planOverview);
|
.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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,6 +257,14 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
|
|||||||
return productionPlanMapper.getTotalArea(tenantId);
|
return productionPlanMapper.getTotalArea(tenantId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteProductionPlan(String id) {
|
||||||
|
// 校验存在
|
||||||
|
validateProductionPlanExists(id);
|
||||||
|
// 删除
|
||||||
|
productionPlanMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
private void validateProductionPlanExists(String id) {
|
private void validateProductionPlanExists(String id) {
|
||||||
if (productionPlanMapper.selectById(id) == null) {
|
if (productionPlanMapper.selectById(id) == null) {
|
||||||
throw exception(PRODUCTION_PLAN_NOT_EXISTS);
|
throw exception(PRODUCTION_PLAN_NOT_EXISTS);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
<select id="getPlanOverview"
|
<select id="getPlanOverview"
|
||||||
parameterType="string"
|
parameterType="string"
|
||||||
resultType="cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanPageRespVO$PlanOverview">
|
resultType="cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanRespVO$PlanOverview">
|
||||||
SELECT
|
SELECT
|
||||||
base_id,
|
base_id,
|
||||||
COUNT(*) AS planCount,
|
COUNT(*) AS planCount,
|
||||||
|
|||||||
Reference in New Issue
Block a user