|  |  | 
 |  |  | 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 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.*; | 
 |  |  | 
 |  |  |     @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 | 
 |  |  | 
 |  |  |             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); | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据问题上报记录主键获取获取巡检员问题上报记录视图对象 | 
 |  |  |      * @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 |