package com.dy.pipIrrApp.issue; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; 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.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.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; /** * 添加巡检员问题上报 * @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> 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 params = (Map) PojoUtils.generalize(queryVo); Long itemTotal = opeIssueReportMapper.getIssueReportsCount(params); //QueryResultVo> rsVo = new QueryResultVo<>(); QueryResultVo> rsVo = new QueryResultVo<>(); rsVo.pageSize = queryVo.pageSize; rsVo.pageCurr = queryVo.pageCurr; rsVo.calculateAndSet(itemTotal, params); List list_temp = opeIssueReportMapper.getIssueReports(params); List 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()); 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()); report.setImages(images_array); report.setAudios(audios_array); report.setVideos(videos_array); return report; } /** * 逻辑删除巡检员问题上报,删除前先判断要删除的上报是否存在 * @param po * @return */ public String deleteIssueReport(DtoDeleteParam po) { // 根据上报ID及巡检员ID获取未删除的上报,删除上报判断使用 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; } }