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 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>> getIssueReports(QoIssueReport vo) { try { //QueryResultVo> 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 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 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 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 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")); } }