| 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.*; | 
|   | 
| import java.util.List; | 
| import java.util.Objects; | 
|   | 
| /** | 
|  * @author ZhuBaoMin | 
|  * @date 2024-11-11 16:29 | 
|  * @LastEditTime 2024-11-11 16:29 | 
|  * @Description | 
|  */ | 
|   | 
| @Slf4j | 
| @RestController | 
| @RequestMapping(path="issue") | 
| @RequiredArgsConstructor | 
| public class IssueCtrl { | 
|     private final IssueSv issueSv; | 
|   | 
|     /** | 
|      * 添加巡检员问题上报记录 | 
|      * @param po | 
|      * @param bindingResult | 
|      * @return | 
|      */ | 
|     @PostMapping(path = "addIssueReport") | 
|     @Transactional(rollbackFor = Exception.class) | 
|     @SsoAop() | 
|     public BaseResponse<Boolean> addIssueReport(@RequestBody @Valid OpeIssueReport po, BindingResult bindingResult) { | 
|         if(bindingResult != null && bindingResult.hasErrors()){ | 
|             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); | 
|         } | 
|   | 
|         String result = issueSv.addIssueReport(po); | 
|         if(!result.equals("success")) { | 
|             return BaseResponseUtils.buildErrorMsg(result); | 
|         } | 
|   | 
|         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.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); | 
|         } | 
|         if (issueSv.getReportReply(po.getReportId()).get("code").equals("0001")){ | 
|             return BaseResponseUtils.buildErrorMsg("该问题上报已回复,请勿重复回复"); | 
|         } | 
|         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")); | 
|   | 
|     } | 
|   | 
| } |