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<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> 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<List<VoPlans>> getNotCompletePlans() {
|
try {
|
List<VoPlans> 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<QueryResultVo<List<VoPlans>>> 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<VoPlanDetails> 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<VoPlanDetails> 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<Integer> 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());
|
}
|
}
|
}
|