From 1e3eeec2d3a470d066d21900586b912dfef58c91 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 17 四月 2025 15:07:41 +0800
Subject: [PATCH] 优化代码

---
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java |  235 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 235 insertions(+), 0 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
new file mode 100644
index 0000000..edd4f55
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java
@@ -0,0 +1,235 @@
+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.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-11 16:29
+ * @LastEditTime 2024-11-11 16:29
+ * @Description
+ */
+
+@Slf4j
+@Service
+public class IssueSv {
+    @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, boolean isVideo){
+        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){
+                            if(!isVideo){
+                                jsonObject.put("webPathZip", fileOp.getFileZipPath(fvo.fileWebUrl + jsonObject.get("filePath")));
+                            }else{
+                                jsonObject.put("webPathZip", fileOp.getFileZipPath(fvo.fileWebUrl + jsonObject.get("filePath"), "jpg"));
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    /**
+     * 娣诲姞宸℃鍛橀棶棰樹笂鎶�
+     * @param po
+     * @return
+     */
+    public String addIssueReport(OpeIssueReport po) {
+        po.setReportTime(new Date());
+        po.setState((byte)1);
+        opeIssueReportMapper.insert(po);
+        Long issueReportId = po.getId();
+        if(issueReportId == null) {
+            return "宸℃鍛橀棶棰樹笂鎶ュけ璐�";
+        }
+
+        return "success";
+    }
+
+    /**
+     * 鏍规嵁鏉′欢鑾峰彇宸℃鍛橀棶棰樹笂鎶ヨ褰�
+     * @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, false) ;
+            this.dealWebFilePath(audios_array, false, false) ;
+            this.dealWebFilePath(videos_array, true, 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, false) ;
+        this.dealWebFilePath(audios_array, false, false) ;
+        this.dealWebFilePath(videos_array, true, true) ;
+
+        report.setImages(images_array);
+        report.setAudios(audios_array);
+        report.setVideos(videos_array);
+        return report;
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎宸℃鍛橀棶棰樹笂鎶ワ紝鍒犻櫎鍓嶅厛鍒ゆ柇瑕佸垹闄ょ殑涓婃姤鏄惁瀛樺湪
+     * @param po
+     * @return
+     */
+    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