From 706f722adc849eba0296f1dbd64166e1e0bde4c5 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期二, 14 一月 2025 09:58:41 +0800 Subject: [PATCH] app模块巡检问题上报增加文件处理逻辑,增加缩略图文件路径生成 --- pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java | 192 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 186 insertions(+), 6 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java index 36f7867..201247d 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java @@ -1,12 +1,30 @@ package com.dy.pipIrrApp.issue; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.dy.common.util.NumUtil; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.common.webUtil.ResultCodeMsg; +import com.dy.pipIrrApp.issue.dto.DtoDeleteParam; +import com.dy.pipIrrApp.issue.qo.QoIssueReport; import com.dy.pipIrrGlobal.daoOp.OpeIssueReportMapper; +import com.dy.pipIrrGlobal.daoOp.OpeReportReplyMapper; +import com.dy.pipIrrGlobal.dyFile.FileOperate; +import com.dy.pipIrrGlobal.dyFile.FileRestVo; 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 com.dy.pipIrrGlobal.voOp.VoIssueReport_temp; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.util.Date; +import java.util.*; /** * @author ZhuBaoMin @@ -21,6 +39,32 @@ @Autowired private OpeIssueReportMapper opeIssueReportMapper; + @Autowired + private OpeReportReplyMapper opeReportReplyMapper; + + @Value("${dy.webFile.fmUrl}") + private String fmUrl ; + + @Autowired + private FileOperate fileOp ; + + private void dealWebFilePath(JSONArray jsonArray, boolean hasZipFile){ + for (Object obj : jsonArray){ + if(obj instanceof JSONObject){ + JSONObject jsonObject = (JSONObject) obj; + Object hashObj = jsonObject.get("hash") ; + if(hashObj != null && NumUtil.isIntNumber(hashObj.toString())){ + FileRestVo fvo = fileOp.parseHashcode(fmUrl, Integer.valueOf(hashObj.toString())); + if(fvo != null && fvo.fileWebUrl != null){ + jsonObject.put("webPath", fvo.fileWebUrl + jsonObject.get("filePath")); + if(hasZipFile){ + jsonObject.put("webPathZip", fileOp.getFileZipPath(fvo.fileWebUrl + jsonObject.get("filePath"))); + } + } + } + } + } + } /** * 娣诲姞宸℃鍛橀棶棰樹笂鎶� * @param po @@ -39,13 +83,149 @@ } /** - * 娣诲姞宸℃鍛橀棶棰樹笂鎶ヤ俊鎭� + * 鏍规嵁鏉′欢鑾峰彇宸℃鍛橀棶棰樹笂鎶ヨ褰� + * @param queryVo + * @return + */ + public QueryResultVo<List<VoIssueReport>> getIssueReports(QoIssueReport queryVo) { + //瀹屽杽鏌ヨ鍏呭�艰褰曠殑璧锋鏃堕棿 + String timeStart = queryVo.getTimeStart(); + String timeStop = queryVo.getTimeStop(); + if (timeStart != null) { + timeStart = timeStart + " 00:00:00"; + queryVo.setTimeStart(timeStart); + } + if (timeStop != null) { + timeStop = timeStop + " 23:59:59"; + queryVo.setTimeStop(timeStop); + } + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + Long itemTotal = opeIssueReportMapper.getIssueReportsCount(params); + //QueryResultVo<List<VoIssueReport_temp>> rsVo = new QueryResultVo<>(); + QueryResultVo<List<VoIssueReport>> rsVo = new QueryResultVo<>(); + + rsVo.pageSize = queryVo.pageSize; + rsVo.pageCurr = queryVo.pageCurr; + + rsVo.calculateAndSet(itemTotal, params); + + List<VoIssueReport_temp> list_temp = opeIssueReportMapper.getIssueReports(params); + List<VoIssueReport> list = new ArrayList<>(); + for (int i = 0; i < list_temp.size(); i++) { + VoIssueReport_temp report_temp = list_temp.get(i); + VoIssueReport report = new VoIssueReport(); + BeanUtils.copyProperties(report_temp, report); + + JSONArray images_array = Optional.ofNullable(JSON.parseArray(report_temp.getImages())).orElse(new JSONArray()); + JSONArray audios_array = Optional.ofNullable(JSON.parseArray(report_temp.getAudios())).orElse(new JSONArray()); + JSONArray videos_array = Optional.ofNullable(JSON.parseArray(report_temp.getVideos())).orElse(new JSONArray()); + this.dealWebFilePath(images_array, true) ; + this.dealWebFilePath(audios_array, false) ; + this.dealWebFilePath(videos_array, true) ; + report.setImages(images_array); + report.setAudios(audios_array); + report.setVideos(videos_array); + list.add(report); + } + + rsVo.obj = list; + //rsVo.obj = opeIssueReportMapper.getIssueReports(params); + return rsVo; + } + + /** + * 鏍规嵁闂涓婃姤璁板綍涓婚敭鑾峰彇鑾峰彇宸℃鍛橀棶棰樹笂鎶ヨ褰曡鍥惧璞� + * @param issueReportId + * @return + */ + public VoIssueReport getIssueReportById(Long issueReportId) { + VoIssueReport_temp issueReport = opeIssueReportMapper.getIssueReportById(issueReportId); + + VoIssueReport report = new VoIssueReport(); + BeanUtils.copyProperties(issueReport, report); + + JSONArray images_array = Optional.ofNullable(JSON.parseArray(issueReport.getImages())).orElse(new JSONArray()); + JSONArray audios_array = Optional.ofNullable(JSON.parseArray(issueReport.getAudios())).orElse(new JSONArray()); + JSONArray videos_array = Optional.ofNullable(JSON.parseArray(issueReport.getVideos())).orElse(new JSONArray()); + this.dealWebFilePath(images_array, true) ; + this.dealWebFilePath(audios_array, false) ; + this.dealWebFilePath(videos_array, true) ; + + report.setImages(images_array); + report.setAudios(audios_array); + report.setVideos(videos_array); + return report; + } + + /** + * 閫昏緫鍒犻櫎宸℃鍛橀棶棰樹笂鎶ワ紝鍒犻櫎鍓嶅厛鍒ゆ柇瑕佸垹闄ょ殑涓婃姤鏄惁瀛樺湪 * @param po * @return */ - //public Long insertIssueReport(OpeIssueReport po) { - // opeIssueReportMapper.insert(po); - // return po.getId(); - //} + public String deleteIssueReport(DtoDeleteParam po) { + // 鏍规嵁涓婃姤ID鍙婂贰妫�鍛業D鑾峰彇鏈垹闄ょ殑涓婃姤锛屽垹闄や笂鎶ュ垽鏂娇鐢� + OpeIssueReport opeIssueReport = opeIssueReportMapper.getReport(po.getIssueReportId(), po.getInspectorId()); + if(opeIssueReport == null) { + return "鎮ㄨ鍒犻櫎鐨勯棶棰樹笂鎶ヤ笉瀛樺湪"; + } + + if(opeIssueReportMapper.deleteIssueReport(po.getIssueReportId()) == 0) { + return "宸℃鍛橀棶棰樹笂鎶ュ垹闄ゅけ璐�"; + } + + return "success"; + } + + /** + * 娣诲姞宸℃鍛橀棶棰樹笂鎶ュ洖澶� + * 娣诲姞闂涓婃姤鍥炲璁板綍 + * 闂涓婃姤鐘舵�佹敼涓哄凡鍥炲 + * @param po + * @return + */ + public String replyReport(OpeReportReply po) { + po.setReplyTime(new Date()); + opeReportReplyMapper.insert(po); + if(po.getId() == 0) { + return "鍥炲璁板綍娣诲姞澶辫触"; + } + + OpeIssueReport issueReport = new OpeIssueReport(); + issueReport.setId(po.getReportId()); + issueReport.setState((byte)2); + Integer rec = opeIssueReportMapper.updateByPrimaryKeySelective(issueReport); + if(rec == 0) { + return "宸℃鍛橀棶棰樹笂鎶ョ姸鎬佷慨鏀瑰け璐�"; + } + return "sucess"; + } + + /** + * 鑾峰彇涓婃姤鍥炲淇℃伅 + * @param reportId + * @return + */ + public JSONObject getReportReply(Long reportId) { + JSONObject result = new JSONObject(); + if(reportId == null) { + result.put("code", ResultCodeMsg.RsCode.ERROR_CODE); + result.put("msg","璇烽�夋嫨涓�涓棶棰樹笂鎶�"); + return result; + } + + VoIssueReportReply issueReportReply = opeReportReplyMapper.getReportReplyByReportId(reportId); + if(issueReportReply != null) { + result.put("code", ResultCodeMsg.RsCode.SUCCESS_CODE); + result.put("msg","success"); + result.put("data", issueReportReply); + return result; + } + result.put("code", ResultCodeMsg.RsCode.ERROR_CODE); + result.put("msg","鏈幏鍙栧埌涓婃姤鍥炲淇℃伅"); + return result; + + } } -- Gitblit v1.8.0