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.yuanchu.mom.dto.EvaluateGroupDto; import com.yuanchu.mom.mapper.EvaluateGroupMapper; import com.yuanchu.mom.mapper.EvaluateMapper; import com.yuanchu.mom.pojo.Evaluate; import com.yuanchu.mom.pojo.EvaluateCompetent; import com.yuanchu.mom.pojo.EvaluateGroup; import com.yuanchu.mom.pojo.EvaluateLeader; import com.yuanchu.mom.mapper.EvaluateLeaderMapper; import com.yuanchu.mom.service.EvaluateLeaderService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; /** *

* 组长打分 服务实现类 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2024-06-17 01:39:56 */ @Service public class EvaluateLeaderServiceImpl extends ServiceImpl implements EvaluateLeaderService { @Resource EvaluateLeaderMapper evaluateLeaderMapper; @Resource EvaluateMapper evaluateMapper; @Override public List getEvaluateLeader(EvaluateGroupDto evaluateGroupDto) { return evaluateLeaderMapper.getEvaluateLeader(evaluateGroupDto.getMonth(), evaluateGroupDto.getDepartLims(), evaluateGroupDto.getName()); } @Override public Double writeEvaluateLeader(EvaluateLeader evaluateLeader) { double newTotal = evaluateLeader.getSeasonable() + evaluateLeader.getExact() + evaluateLeader.getResponsibility() + evaluateLeader.getCompliance() + evaluateLeader.getPositive() + evaluateLeader.getSolidarity(); EvaluateLeader evaluateLeader1 = evaluateLeaderMapper.selectById(evaluateLeader.getId()); Evaluate evaluate = evaluateMapper.selectById(evaluateLeader.getEvaluateId()); evaluate.setScore(evaluate.getScore() - evaluateLeader1.getTotal() + newTotal); evaluateMapper.updateById(evaluate); evaluateLeader.setTotal(newTotal); evaluateLeaderMapper.updateById(evaluateLeader); return newTotal; } @Override public void export(String month, String name, String departLims, HttpServletResponse response) throws IOException { List evaluateLeaders = new ArrayList(); evaluateLeaders = evaluateLeaderMapper.getEvaluateLeader(month, departLims, name); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("UTF-8"); // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 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(EvaluateLeader.class).build(); excelWriter.write(evaluateLeaders, mainSheet); // 关闭流 excelWriter.finish(); } catch (IOException e) { throw new RuntimeException("导出失败"); } } }