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.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.dto.ProcurementSuppliesListDto; import com.yuanchu.mom.dto.ProcurementSuppliesListEDto; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.ProcurementSuppliesListMapper; import com.yuanchu.mom.mapper.SupplierManagementMapper; import com.yuanchu.mom.mapper.UserMapper; import com.yuanchu.mom.pojo.ProcurementSuppliesList; import com.yuanchu.mom.pojo.SupplierManagement; import com.yuanchu.mom.pojo.User; import com.yuanchu.mom.service.ProcurementSuppliesListService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; /** *

* 服务与供应商 耗材列表 服务实现类 *

* * @author 芯导软件(江苏)有限公司 * @since 2024-11-15 04:04:32 */ @Service public class ProcurementSuppliesListServiceImpl extends ServiceImpl implements ProcurementSuppliesListService { @Autowired private UserMapper userMapper; @Autowired private SupplierManagementMapper supplierManagementMapper; @Autowired private ProcurementSuppliesListMapper procurementSuppliesListMapper; @Override public IPage selectList(Page page, ProcurementSuppliesListDto list) { IPage iPage = baseMapper.selectProcurementSuppliesList(page, list); IPage result = new Page<>(); List dtos = new ArrayList<>(); BeanUtils.copyProperties(iPage, result); for (int i = 0; i < iPage.getRecords().size(); i++) { ProcurementSuppliesList record = iPage.getRecords().get(i); ProcurementSuppliesListDto dto = new ProcurementSuppliesListDto(); BeanUtils.copyProperties(record, dto); if (record.getPersonInCharge() != 0) { User user = userMapper.selectById(record.getPersonInCharge()); dto.setPersonInChargeName(user.getName()); } if (record.getUpdateUser() != 0) { User updateUser = userMapper.selectById(record.getUpdateUser()); dto.setUpdateUserName(updateUser.getName()); } if (record.getSupplier() != 0) { SupplierManagement supplierManagement = supplierManagementMapper.selectById(record.getSupplier()); dto.setSupplierName(supplierManagement.getSupplierName()); } dtos.add(dto); } result.setRecords(dtos); return result; } @Override public Integer addProcurementSuppliesList(ProcurementSuppliesListDto dto) { ProcurementSuppliesList list = new ProcurementSuppliesList(); BeanUtils.copyProperties(dto, list); return baseMapper.insert(list); } @Override public Integer updateProcurementSuppliesList(ProcurementSuppliesListDto dto) { ProcurementSuppliesList list = new ProcurementSuppliesList(); BeanUtils.copyProperties(dto, list); return baseMapper.updateById(list); } @Override public void exportProcurementSuppliesList(Integer contentsId,HttpServletResponse response) { List data = procurementSuppliesListMapper.selectProcurementSuppliesListByContentsId(contentsId); if (contentsId==0){ data = procurementSuppliesListMapper.selectList(null); } if (data.size()==0) { throw new ErrorException("无数据"); } response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("UTF-8"); // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 try { String fileName = URLEncoder.encode("耗材列表", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); // 新建ExcelWriter ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); WriteSheet writeSheet = EasyExcel.writerSheet(0, "耗材列表").head(ProcurementSuppliesListEDto.class).build(); excelWriter.write(data, writeSheet); // 关闭流 excelWriter.finish(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); throw new ErrorException("导出失败"); } catch (IOException e) { e.printStackTrace(); throw new ErrorException("导出失败"); } } }