package com.dy.pipIrrIrrigate.irrigatePlan; import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryConditionVo; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.voIr.VoPlanDetails; import com.dy.pipIrrGlobal.voIr.VoPlans; import com.dy.pipIrrIrrigate.irrigatePlan.dto.IrrigatePlan; import com.dy.pipIrrIrrigate.irrigatePlan.dto.PlanSimple; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; import java.util.Objects; /** * @author ZhuBaoMin * @date 2025-06-30 14:58 * @LastEditTime 2025-06-30 14:58 * @Description */ @Slf4j @RestController @RequestMapping(path = "plan") @RequiredArgsConstructor public class IrrigatePlanCtrl { private final IrrigatePlanSv irrigatePlanSv; /** * 创建灌溉计划 * @param planAndSchedule * @param bindingResult * @return */ @PostMapping(path = "createPlan", consumes = MediaType.APPLICATION_JSON_VALUE) @SsoAop() public BaseResponse createPlan(@RequestBody @Valid IrrigatePlan planAndSchedule, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = irrigatePlanSv.createPlan(planAndSchedule); if(map_result.get("success").equals(false)) { return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); } return BaseResponseUtils.buildSuccess() ; } /** * 删除灌溉计划 * @param planSimple * @param bindingResult * @return */ @PostMapping(path = "deletePlan") @SsoAop() public BaseResponse deletePlan(@RequestBody @Valid PlanSimple planSimple, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = irrigatePlanSv.deletePlan(planSimple); if(map_result.get("success").equals(false)) { return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); } return BaseResponseUtils.buildSuccess() ; } /** * 发布灌溉计划 * 1. 修改灌溉计划状态为发布状态 * 2. 添加灌溉计划操作记录 * 3. 生成开阀计划 * @param planSimple * @param bindingResult * @return */ @PostMapping(path = "publishPlan", consumes = MediaType.APPLICATION_JSON_VALUE) @SsoAop() public BaseResponse publishPlan(@RequestBody @Valid PlanSimple planSimple, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = irrigatePlanSv.publishPlan(planSimple); if(map_result.get("success").equals(false)) { return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); } return BaseResponseUtils.buildSuccess() ; } /** * 终止灌溉计划 * @param planSimple * @param bindingResult * @return */ @PostMapping(path = "terminatePlan", consumes = MediaType.APPLICATION_JSON_VALUE) @SsoAop() public BaseResponse terminatePlan(@RequestBody @Valid PlanSimple planSimple, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = irrigatePlanSv.terminatePlan(planSimple); if(map_result.get("success").equals(false)) { return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); } return BaseResponseUtils.buildSuccess() ; } /** * 获取未完成的计划列表,灌溉模块计划列表页使用 * @return */ @GetMapping(path = "/getNotCompletePlans") @SsoAop() public BaseResponse> getNotCompletePlans() { try { List res = irrigatePlanSv.getNotCompletePlans(); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取未完的计划异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * 获取已完成的计划列表,灌溉模块计划列表页使用 * @return */ @GetMapping(path = "/getCompletedPlans") @SsoAop() public BaseResponse>> getCompletedPlans(QueryConditionVo qo) { try { return BaseResponseUtils.buildSuccess(irrigatePlanSv.getCompletedPlans(qo)); } catch (Exception e) { log.error("获取项目记录异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * 根据计划ID获取计划发布结果 * @param planId * @return */ @GetMapping(path = "/getPublishResults") @SsoAop() public BaseResponse getPublishResults(@RequestParam Long planId) { if(planId == null) { return BaseResponseUtils.buildErrorMsg("计划ID不能为空"); } try { VoPlanDetails res = irrigatePlanSv.getPublishResults(planId); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取计划发布结果异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * 根据计划ID获取计划终止操作结果 * @param planId * @return */ @GetMapping(path = "/getTerminateResults") @SsoAop() public BaseResponse getTerminateResults(@RequestParam Long planId) { if(planId == null) { return BaseResponseUtils.buildErrorMsg("计划ID不能为空"); } try { VoPlanDetails res = irrigatePlanSv.getTerminateResults(planId); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取计划发布结果异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * 根据计划ID获取计划最新状态 * @param planId * @return */ @GetMapping(path = "/getPlanLatestState") @SsoAop() public BaseResponse getPlanLatestState(@RequestParam Long planId) { if(planId == null) { return BaseResponseUtils.buildErrorMsg("计划ID不能为空"); } try { return BaseResponseUtils.buildSuccess(irrigatePlanSv.getPlanLatestState(planId)); } catch (Exception e) { log.error("获取未完的计划异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } }