| | |
| | | package com.panzhihua.sangeshenbian.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.idev.excel.EasyExcel; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.deepoove.poi.XWPFTemplate; |
| | | 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.entity.Complaint; |
| | |
| | | import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow; |
| | | import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; |
| | | import com.panzhihua.sangeshenbian.model.entity.SystemUser; |
| | | import com.panzhihua.sangeshenbian.model.excel.ComplaintExcel; |
| | | import com.panzhihua.sangeshenbian.model.excel.PartyMemberExcel; |
| | | import com.panzhihua.sangeshenbian.model.query.BasePage; |
| | | import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; |
| | | import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO; |
| | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; |
| | | import com.panzhihua.sangeshenbian.service.ISystemUserService; |
| | | import com.panzhihua.sangeshenbian.utils.FileUtil; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.core.io.ClassPathResource; |
| | | import org.springframework.core.io.Resource; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLEncoder; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.Optional; |
| | | |
| | |
| | | private final IComStreetService comStreetService; |
| | | private final IComActService comActService; |
| | | private final IWorkOrderItemConfigService workOrderItemConfigService; |
| | | private final IComplaintCommentService complaintCommentService; |
| | | private final HttpServletResponse response; |
| | | private final IPartyMemberService partyMemberService; |
| | | private final IComplaintCommentService complaintCommentService; |
| | | |
| | |
| | | .eq(ComplaintAuditRecord::getLatestFlag, true) |
| | | .last("LIMIT 1").one(); |
| | | } |
| | | |
| | | /** |
| | | * 管理后台-诉求列表 |
| | | * |
| | | * @param query |
| | | * @param loginUserInfo |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Page<ComplaintVO> pageList(ComplaintQuery query, SystemUserVo loginUserInfo) { |
| | | return baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()), query,loginUserInfo); |
| | | } |
| | | |
| | | @Override |
| | | public ComplaintVO getDetailMgt(Long id) { |
| | | Complaint complaint = getById(id); |
| | | ComplaintVO complaintVO = BeanUtil.copyProperties(complaint, ComplaintVO.class); |
| | | //查询办理进度 |
| | | List<ComplaintProgress> complaintProgresses = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id).orderByAsc(ComplaintProgress::getCreateTime).list(); |
| | | complaintVO.setComplaintProgresses(complaintProgresses); |
| | | //查询诉求流转记录 |
| | | List<ComplaintFlow> complaintFlows = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getCreateTime).list(); |
| | | complaintVO.setComplaintFlows(complaintFlows); |
| | | //查询评价 |
| | | ComplaintComment comment = complaintCommentService.lambdaQuery().eq(ComplaintComment::getComplaintId, id).last("LIMIT 1").one(); |
| | | complaintVO.setComplaintComment(comment); |
| | | return complaintVO; |
| | | } |
| | | |
| | | /** |
| | | * 诉求列表导出 |
| | | * @param query |
| | | * @param loginUserInfo |
| | | */ |
| | | @Override |
| | | public void export(ComplaintQuery query, SystemUserVo loginUserInfo) throws IOException { |
| | | List<ComplaintVO> list = baseMapper.getList(query, loginUserInfo); |
| | | List<ComplaintExcel> complaintExcels = BeanUtil.copyToList(list, ComplaintExcel.class); |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | String fileName = URLEncoder.encode("诉求数据", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); |
| | | EasyExcel.write(response.getOutputStream(), PartyMemberExcel.class) |
| | | .sheet("诉求数据") |
| | | .doWrite(complaintExcels); |
| | | } |
| | | |
| | | @Override |
| | | public void communityProblem(Long id) throws IOException { |
| | | //Complaint complaint = getById(id); |
| | | //TODO 查询真实数据 |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("community", "社区社区"); |
| | | map.put("problemType", "就业"); |
| | | map.put("descriptionContent", "描述内容"); |
| | | map.put("reportType", "党员"); |
| | | map.put("partyOrganization", "石羊党群"); |
| | | map.put("name", "张三"); |
| | | map.put("contactNumber", "1888888888"); |
| | | map.put("nickname", "李四"); |
| | | map.put("phone", "17777777777"); |
| | | // 在文本中直接使用换行符 |
| | | String content = "第一行内容\n第二行内容\n第三行内容"; |
| | | map.put("complaintProgress", content); |
| | | map.put("status", "处理中"); |
| | | response.setContentType("application/octet-stream"); |
| | | String fileName = URLEncoder.encode("社区问题单", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition","attachment;filename=\""+fileName+".docx"+"\""); |
| | | String fileTemplateName = FileUtil.getPath() + "template/社区问题单.docx"; |
| | | XWPFTemplate.compile(fileTemplateName).render(map).writeAndClose(response.getOutputStream()); |
| | | } |
| | | /** |
| | | * 问题处理单 |
| | | * @param id |
| | | */ |
| | | @Override |
| | | public void problemHandle(Long id) { |
| | | |
| | | } |
| | | /** |
| | | * 协调通知 |
| | | * @param id |
| | | */ |
| | | @Override |
| | | public void coordinationNotice(Long id) { |
| | | |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | try { |
| | | /*文本*/ |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("community", "社区社区"); |
| | | map.put("problemType", "就业"); |
| | | map.put("descriptionContent", "描述内容"); |
| | | map.put("reportType", "党员"); |
| | | map.put("partyOrganization", "石羊党群"); |
| | | map.put("name", "张三"); |
| | | map.put("contactNumber", "1888888888"); |
| | | map.put("nickname", "李四"); |
| | | map.put("phone", "17777777777"); |
| | | // 在文本中直接使用换行符 |
| | | String content = "第一行内容\n第二行内容\n第三行内容"; |
| | | map.put("complaintProgress", content); |
| | | map.put("status", "处理中"); |
| | | XWPFTemplate.compile("F:\\DeskTop\\zhihuishequ\\springcloud_k8s_panzhihuazhihuishequ\\service_sangeshenbian\\src\\main\\resources\\template\\社区问题单.docx").render(map).writeToFile("F:\\DeskTop\\社区.docx"); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |