liurunyu
2024-12-13 74a3e4680487ad5184bea49d729356053d7fee35
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueCtrl.java
@@ -1,19 +1,24 @@
package com.dy.pipIrrApp.issue;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.aop.SsoAop;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrApp.issue.dto.DtoDeleteParam;
import com.dy.pipIrrApp.issue.qo.QoIssueReport;
import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport;
import com.dy.pipIrrGlobal.pojoOp.OpeReportReply;
import com.dy.pipIrrGlobal.voOp.VoIssueReport;
import com.dy.pipIrrGlobal.voOp.VoIssueReportReply;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
@@ -52,4 +57,102 @@
        return BaseResponseUtils.buildSuccess(true) ;
    }
    /**
     * 获取巡检员问题上报记录
     * @param vo
     * @return
     */
    @GetMapping(path = "/getIssueReports")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoIssueReport>>> getIssueReports(QoIssueReport vo) {
        try {
            //QueryResultVo<List<VoIssueReport_temp>> res = issueSv.getIssueReports(vo);
            return BaseResponseUtils.buildSuccess(issueSv.getIssueReports(vo));
        } catch (Exception e) {
            log.error("获取巡检员问题上报记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    /**
     * 获取一个巡检员问题上报记录详情
     * @param issueReportId
     * @return
     */
    @GetMapping(path = "/getOneIssueReport")
    @SsoAop()
    public BaseResponse<VoIssueReport> getOneIssueReport(@RequestParam("issueReportId") Long issueReportId) {
        try {
            VoIssueReport issueReport = issueSv.getIssueReportById(issueReportId);
            if(issueReport == null) {
                return BaseResponseUtils.buildNonExist();
            }
            return BaseResponseUtils.buildSuccess(issueReport);
        } catch (Exception e) {
            log.error("获取问题上报记录详情异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    /**
     * 逻辑删除巡检员问题上报,删除前先判断要删除的上报是否存在
     * @param po
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "deleteIssueReport")
    public BaseResponse<Boolean> deleteIssueReport(@RequestBody @Valid DtoDeleteParam po, BindingResult bindingResult) {
        if(bindingResult != null && bindingResult.hasErrors()){
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        String result = issueSv.deleteIssueReport(po);
        if(!result.equals("success")) {
            return BaseResponseUtils.buildErrorMsg(result);
        }
        return BaseResponseUtils.buildSuccess();
    }
    /**
     * 回复巡检员问题上报
     * @param po
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "replyReport")
    @Transactional(rollbackFor = Exception.class)
    public BaseResponse<Boolean> replyReport(@RequestBody @Valid OpeReportReply po, BindingResult bindingResult) {
        if(bindingResult != null && bindingResult.hasErrors()){
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        if (issueSv.getReportReply(po.getReportId()).get("code").equals("0001")){
            return BaseResponseUtils.buildFail("该问题上报已回复,请勿重复回复");
        }
        String result = issueSv.replyReport(po);
        if(!result.equals("sucess")) {
            return BaseResponseUtils.buildErrorMsg(result);
        }
        return BaseResponseUtils.buildSuccess() ;
    }
    /**
     * 根据问题上报ID获取上报回复信息
     * @param reportId
     * @return
     */
    @GetMapping(path = "/getReportReply")
    public BaseResponse<VoIssueReportReply> getReportReply(@RequestParam("reportId") Long reportId) {
        JSONObject result = issueSv.getReportReply(reportId);
        if(!result.get("code").equals("0001")) {
            return BaseResponseUtils.buildErrorMsg(result.get("msg").toString());
        }
        return BaseResponseUtils.buildSuccess(result.get("data"));
    }
}