package com.panzhihua.sangeshenbian.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; import com.panzhihua.sangeshenbian.model.dto.ComplaintCompletionDTO; import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO; import com.panzhihua.sangeshenbian.model.dto.*; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import com.panzhihua.sangeshenbian.model.query.AnalyticStatisticsQuery; import com.panzhihua.sangeshenbian.model.query.AppStaticsQuery; import com.panzhihua.sangeshenbian.model.query.BasePage; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; import com.panzhihua.sangeshenbian.model.vo.*; import com.panzhihua.sangeshenbian.warpper.MgtComplaintQuery; import javax.validation.Valid; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.List; /** *

* 问题报告表 服务类 *

* * @author * @since 2025-02-22 */ public interface IComplaintService extends IService { void saveComplaint(Complaint complaint,LoginUserInfoVO loginUserInfoVO); /** * 诉求列表 * * @param query * @param loginUserInfoVO * @return */ Page complaintList(ComplaintQuery query, LoginUserInfoVO loginUserInfoVO); /** * 工单详情 * @param id * @return */ ComplaintVO detail(Long id, LoginUserInfoVO loginUserInfoVO); /** * 保存办理进度 * * @param dto * @param loginUserInfoVO */ void saveProcess(ComplaintProcessDTO dto, LoginUserInfoVO loginUserInfoVO); /** * 办理结果录入 * * @param dto * @param loginUserInfoVO */ void saveResult(ComplaintCompletionDTO dto, LoginUserInfoVO loginUserInfoVO); /** * 办理进度列表 * @param complaintId * @return */ List progress(Long complaintId); void saveAndReport(ComplaintVO complaintVO, LoginUserInfoVO loginUserInfo); /** * 诉求上报 */ void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO); void saveAndComplete(@Valid ComplaintSaveAndCompleteDTO complaintVO, LoginUserInfoVO loginUserInfo); /** * 诉求上报撤回 */ void reportWithdraw(ComplaintReportWithdrawDTO dto, LoginUserInfoVO loginUserInfoVO); /** * 诉求下派 */ void saveDispatch(ComplaintDispatch dto, LoginUserInfoVO loginUserInfoVO); /** * 上报审核 * @param complaintReporAuditDTO * @param loginUserInfoVO */ void reportAudit(ComplaintReporAuditDTO complaintReporAuditDTO, LoginUserInfoVO loginUserInfoVO); /** * 延期申请 */ void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO); /** * 延期审核 */ void delayAudit(ComplaintDelayAuditDTO complaintDelayAuditDTO, LoginUserInfoVO loginUserInfoVO); List getDispatchList(LoginUserInfoVO loginUserInfoVO); /** * 获取待办诉求 * @param page * @param loginUserInfo * @return */ Page getTodoList(BasePage page, LoginUserInfoVO loginUserInfo); /** * 延期情况说明 * @param complaintId * @return */ ComplaintAuditRecord delayDetail(Long complaintId); /** * 管理后台-诉求列表 * * @param query * @param loginUserInfo * @return */ Page pageList(MgtComplaintQuery query, SystemUserVo loginUserInfo); /** * 管理后台-诉求详情 * @param id * @return */ ComplaintVO getDetailMgt(Long id); /** * 诉求列表导出 * @param query * @param loginUserInfo */ void export(MgtComplaintQuery query, SystemUserVo loginUserInfo) throws IOException; /** * 社区问题单、问题处理单、协调通知单 下载 * * @param id * @param loginUserInfo */ String downloadFile(Long id, Integer type, SystemUserVo loginUserInfo) throws IOException; /** * 获取超时未评价的数据 * @return */ List getTimeoutAndNotComment(); /** * 修改办理进度 * @param dto */ void updateProgress(ComplaintProcessUpdateDto dto); /** * 删除办理进度 * @param id */ void delProgress(Long id); /** * 数据统计第一部分 * @param query * @return */ AnalyticStatisticsOneVo analyticStatisticsOne(AnalyticStatisticsQuery query,List complaints, SimpleDateFormat simpleDateFormat); /** * 数据统计第二部分 * * @param time * @param complaints * @param simpleDateFormat * @return */ List analyticStatisticsTwo(String time, List complaints, SimpleDateFormat simpleDateFormat); /** * + * 数据统计第三部分 * * @param rank * @param complaints * @return */ List analyticStatisticsThree(Integer rank, List complaints); /** * 数据统计第四部分 * @param complaints * @return */ AnalyticStatisticsFourVo analyticStatisticsFour(List complaints); /** * 查询党员或上级对应的诉求列表 * @param query * @param loginUserInfo * @return */ List queryCompliantList(AppStaticsQuery query, LoginUserInfoVO loginUserInfo); }