| | |
| | | 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.deepoove.poi.XWPFTemplate; |
| | | import com.deepoove.poi.config.Configure; |
| | | import com.ruoyi.basic.mapper.ProductMapper; |
| | | import com.ruoyi.basic.mapper.ProductModelMapper; |
| | | import com.ruoyi.basic.pojo.Product; |
| | |
| | | import com.ruoyi.common.enums.RawMaterialCheckResult; |
| | | import com.ruoyi.common.enums.RawMaterialCheckType; |
| | | import com.ruoyi.common.enums.RawMaterialInspectState; |
| | | import com.ruoyi.common.utils.HackLoopTableRenderPolicy; |
| | | import com.ruoyi.common.utils.bean.BeanUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.inspectiontask.mapper.QualityInspectItemMapper; |
| | | import com.ruoyi.inspectiontask.pojo.QualityInspectItem; |
| | | import com.ruoyi.quality.dto.RawMaterialDto; |
| | | import com.ruoyi.quality.dto.RawMaterialQualityInspectItemDto; |
| | | import com.ruoyi.quality.mapper.RawMaterialMapper; |
| | | import com.ruoyi.quality.pojo.QualityInspect; |
| | | import com.ruoyi.quality.pojo.QualityInspectParam; |
| | | import com.ruoyi.quality.pojo.RawMaterial; |
| | | import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem; |
| | | import com.ruoyi.quality.service.RawMaterialQualityInspectItemService; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.net.URLEncoder; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public void export(HttpServletResponse response, RawMaterialDto rawMaterialDto) { |
| | | List<RawMaterialDto> rawMaterials = rawMaterialMapper.listPage(new Page<>(1, Integer.MAX_VALUE), rawMaterialDto).getRecords(); |
| | | ExcelUtil<RawMaterialDto> util = new ExcelUtil<RawMaterialDto>(RawMaterialDto.class); |
| | | util.exportExcel(response, rawMaterials, "原料检验导出"); |
| | | } |
| | | |
| | | @Override |
| | | public void down(HttpServletResponse response, RawMaterialDto rawMaterialDto) { |
| | | RawMaterial rawMaterial = rawMaterialMapper.selectById(rawMaterialDto.getId()); |
| | | // 获取产品型号信息 |
| | | ProductModel productModel = productModelMapper.selectById(rawMaterial.getProductModelId()); |
| | | Product product = productMapper.selectById(productModel.getProductId()); |
| | | RawMaterialDto inspect = new RawMaterialDto(); |
| | | BeanUtils.copyProperties(rawMaterial, inspect); |
| | | inspect.setModel(productModel.getModel()); |
| | | inspect.setProductName(product.getProductName()); |
| | | inspect.setCheckTypeText(RawMaterialCheckType.fromValue(rawMaterial.getCheckType()) == null ? "" : RawMaterialCheckType.fromValue(rawMaterial.getCheckType()).getValue()); |
| | | inspect.setCheckResultText(RawMaterialCheckResult.fromValue(rawMaterial.getCheckResult()) == null ? "" : RawMaterialCheckResult.fromValue(rawMaterial.getCheckResult()).getValue()); |
| | | |
| | | List<RawMaterialQualityInspectItem> paramList = rawMaterialQualityInspectItemService.list( |
| | | new LambdaQueryWrapper<RawMaterialQualityInspectItem>() |
| | | .eq(RawMaterialQualityInspectItem::getRawMaterialId, rawMaterialDto.getId()) |
| | | ); |
| | | List<RawMaterialQualityInspectItemDto> inspectItems = new ArrayList<>(); |
| | | |
| | | int index = 1; |
| | | for (RawMaterialQualityInspectItem item : paramList) { |
| | | RawMaterialQualityInspectItemDto dto = new RawMaterialQualityInspectItemDto(); |
| | | BeanUtils.copyProperties(item, dto); |
| | | QualityInspectItem qualityInspectItem = qualityInspectItemMapper.selectById(item.getQualityInspectItemId()); |
| | | dto.setName(qualityInspectItem.getName()); |
| | | dto.setUnit(qualityInspectItem.getUnit()); |
| | | dto.setStandardValue(qualityInspectItem.getStandardValue()); |
| | | dto.setInternalControl(qualityInspectItem.getInternalControl()); |
| | | dto.setIndex(index); |
| | | inspectItems.add(dto); |
| | | index++; |
| | | } |
| | | |
| | | InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx"); |
| | | Configure configure = Configure.builder() |
| | | .bind("paramList", new HackLoopTableRenderPolicy()) |
| | | .build(); |
| | | XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( |
| | | new HashMap<String, Object>() {{ |
| | | put("inspect", inspect); |
| | | put("paramList", inspectItems); |
| | | }}); |
| | | |
| | | try { |
| | | response.setContentType("application/msword"); |
| | | String fileName = URLEncoder.encode( |
| | | "检验报告", "UTF-8"); |
| | | response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); |
| | | response.setHeader("Content-disposition", |
| | | "attachment;filename=" + fileName + ".docx"); |
| | | OutputStream os = response.getOutputStream(); |
| | | template.write(os); |
| | | os.flush(); |
| | | os.close(); |
| | | inputStream.close(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | throw new RuntimeException("导出失败"); |
| | | } |
| | | } |
| | | } |