diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/CropFarmingCenterController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/CropFarmingCenterController.java index 3f397cca..c64e7a5b 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/CropFarmingCenterController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/CropFarmingCenterController.java @@ -92,6 +92,7 @@ public class CropFarmingCenterController { cropFarmingCenterService.restartProductionPlan(updateReqVO); return success(true); } + @Operation(summary = "生产计划-开始按钮") @PutMapping("/production-plan/start") public CommonResult startPlanning(@RequestBody ProductionPlanUpdateReqVO updateReqVO) { diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanUpdateReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanUpdateReqVO.java index 4dbfb043..28f0a7b4 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanUpdateReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanUpdateReqVO.java @@ -43,7 +43,10 @@ public class ProductionPlanUpdateReqVO { @Schema(description = "计划执行状态 (1:未开始;2:进行中;3:已完成;4:逾期)") private Integer planStatus; + @Schema(description = "计划执行状态 (5: 逾期未开始; 6:逾期未结束)") private Integer planSubStatus; + @Schema(description = "逾期天数") + private Integer overdueDays; @Schema(description = "租户ID") diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java index f6764242..3d54619d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java @@ -28,6 +28,7 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import java.time.LocalDate; +import java.time.Period; import java.time.ZoneId; import java.util.ArrayList; import java.util.List; @@ -226,7 +227,8 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService { PageResult resultData = BeanUtils.toBean(productionPlanDOPageResult, ProductionPlanRespVO.class); resultData.getList().forEach(e -> { // 逾期天数 - + int overdueDays = this.countOverdueDays(e); + e.setOverdueDays(overdueDays); // 计划状态-名称 e.setPlanStatusName(PLAN_MAP.get(e.getPlanStatus())); // 模型 @@ -258,6 +260,26 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService { } + private int countOverdueDays(ProductionPlanRespVO vo) { + Integer planStatus = vo.getPlanStatus(); + Integer planSubStatus = vo.getPlanSubStatus(); + + if (!ObjectUtils.notEqual(planStatus, PLAN_STATUS_4)) { + LocalDate today = LocalDate.now(ZoneId.of("Asia/Shanghai")); + if (!ObjectUtils.notEqual(planSubStatus, PLAN_STATUS_5)) { + LocalDate productionStartDate = vo.getProductionStartDate(); + Period period = Period.between(today, productionStartDate); + return period.getDays(); + } + if (!ObjectUtils.notEqual(planSubStatus, PLAN_STATUS_5)) { + LocalDate productionEndDate = vo.getProductionEndDate(); + Period period = Period.between(today, productionEndDate); + return period.getDays(); + } + } + return 0; + } + @Override public int getCropCount(Long tenantId) { return productionPlanMapper.getCropCount(tenantId);