package com.yuanchu.mom.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.dto.ProcessComplainDto; import com.yuanchu.mom.dto.ReportPageDto; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.InsReportMapper; import com.yuanchu.mom.mapper.InsSampleMapper; import com.yuanchu.mom.mapper.UserMapper; import com.yuanchu.mom.pojo.*; import com.yuanchu.mom.mapper.ProcessComplainMapper; import com.yuanchu.mom.service.ProcessComplainService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.utils.GiveCode; import com.yuanchu.mom.utils.QueryWrappers; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 投诉 服务实现类 *

* * @author * @since 2024-11-02 09:29:11 */ @Service @Transactional(rollbackFor = Exception.class) public class ProcessComplainServiceImpl extends ServiceImpl implements ProcessComplainService { @Resource private ProcessComplainMapper processComplainMapper; @Resource private InsReportMapper insReportMapper; @Resource private InsSampleMapper insSampleMapper; @Resource GetLook getLook; @Resource GiveCode giveCode; @Override public Map pageProcessComplain(Page page, ProcessComplain processComplain) { Map map = new HashMap<>(); map.put("head", PrintChina.printChina(ProcessComplain.class)); Map map1 = getLook.selectPowerByMethodAndUserId("pageProcessComplain"); if (map1.get("look") == 1) processComplain.setCreateUser(map1.get("userId")); map.put("body", processComplainMapper.pageProcessComplain(page, QueryWrappers.queryWrappers(processComplain))); return map; } @Override public int addProcessComplain(ProcessComplain processComplain) { //投诉编号生成 String giveCode = this.giveCode.giveCode("JCZX-", "cnas_process_complain", "", "yyMMdd"); processComplain.setComplainNo(giveCode); return processComplainMapper.insert(processComplain); } @Override public ProcessComplainDto getProcessComplain(Long id) { return processComplainMapper.getProcessComplain(id); } @Override public int doProcessComplain(ProcessComplain processComplain) { return processComplainMapper.updateById(processComplain); } @Override public void exportProcessComplain(ProcessComplain processComplain, HttpServletResponse response) throws Exception { List data = processComplainMapper.pageProcessComplain(new Page(-1, -1), QueryWrappers.queryWrappers(processComplain)).getRecords(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("UTF-8"); String fileName = URLEncoder.encode("投诉列表导出", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); try { // 新建ExcelWriter ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); WriteSheet mainSheet = EasyExcel.writerSheet(0, "投诉列表导出").head(ProcessComplain.class).build(); excelWriter.write(data, mainSheet); // 关闭流 excelWriter.finish(); } catch (IOException e) { throw new RuntimeException("导出失败"); } } }