| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.deepoove.poi.XWPFTemplate; |
| | | import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.utils.bean.BeanUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | |
| | | import com.ruoyi.production.mapper.ProductProcessRouteMapper; |
| | | import com.ruoyi.production.mapper.ProductWorkOrderMapper; |
| | | import com.ruoyi.production.mapper.ProductionProductMainMapper; |
| | | import com.ruoyi.production.pojo.*; |
| | | import com.ruoyi.production.pojo.ProductOrder; |
| | | import com.ruoyi.production.pojo.ProductProcessRoute; |
| | | import com.ruoyi.production.pojo.ProductProcessRouteItem; |
| | | import com.ruoyi.production.pojo.ProductWorkOrder; |
| | | import com.ruoyi.production.service.ProductOrderService; |
| | | import com.ruoyi.quality.mapper.QualityUnqualifiedMapper; |
| | | import com.ruoyi.quality.pojo.QualityInspect; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @AllArgsConstructor |
| | | @Service |
| | |
| | | if (ObjectUtils.isNotNull(qualityInspect) && qualityInspect.getInspectType() != 0) { |
| | | switch (qualityUnqualified.getDealResult()) { |
| | | case "返修": |
| | | case "返工": |
| | | //判断质检表是否有相关的报工id,如果有报工id,那么返工需要重新创建生产订单重新生产 |
| | | if (ObjectUtils.isNotNull(qualityInspect.getProductMainId())) { |
| | | //返工需要重新创建生产订单重新生产 |
| | |
| | | //调用提交合格的接口 |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId()); |
| | | break; |
| | | case "返工": |
| | | default: |
| | | break; |
| | | } |
| | | } else { |
| | | //查询对应的规格型号id |
| | | Long modelId = qualityUnqualifiedMapper.getModelId(qualityUnqualified.getProductName(), qualityUnqualified.getModel()); |
| | | switch (qualityUnqualified.getDealResult()) { |
| | | case "报废": |
| | | //调用不合格库存接口 入不合格库 |
| | | stockUtils.addUnStock(Long.valueOf(unqualified.getModel()), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId()); |
| | | stockUtils.addUnStock(modelId, unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId()); |
| | | break; |
| | | case "让步放行": |
| | | //调用提交合格的接口 |
| | | stockUtils.addStock(Long.valueOf(unqualified.getModel()), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId()); |
| | | stockUtils.addStock(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId()); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | public QualityUnqualified getUnqualified(Integer id) { |
| | | return qualityUnqualifiedMapper.getUnqualified(id); |
| | | } |
| | | |
| | | @Override |
| | | public void downloadReturnRecord(Long id, HttpServletResponse response) { |
| | | XWPFTemplate template = null; |
| | | InputStream inputStream = null; |
| | | OutputStream out = null; |
| | | try { |
| | | // 1. 查询数据 |
| | | QualityUnqualified info = qualityUnqualifiedMapper.selectById(id); |
| | | Map<String, Object> data = new HashMap<>(); |
| | | data.put("productName", info.getProductName()); |
| | | data.put("model", info.getModel()); |
| | | |
| | | // 加载模板 |
| | | inputStream = getClass().getResourceAsStream("/static/return-record.docx"); |
| | | if (inputStream == null) { |
| | | throw new RuntimeException("模板文件不存在,请检查路径:/static/return-record.docx"); |
| | | } |
| | | |
| | | // 渲染模板 |
| | | template = XWPFTemplate.compile(inputStream).render(data); |
| | | |
| | | // 设置响应头 |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); |
| | | response.setHeader("Content-Disposition", "attachment; filename=rework_record_" + id + ".docx"); |
| | | response.setContentLengthLong(-1); |
| | | |
| | | out = response.getOutputStream(); |
| | | template.write(out); |
| | | out.flush(); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException("下载失败", e); |
| | | } finally { |
| | | if (template != null) { |
| | | try { |
| | | template.close(); |
| | | } catch (Exception e) { |
| | | log.error("关闭模板失败", e); |
| | | } |
| | | } |
| | | if (inputStream != null) { |
| | | try { |
| | | inputStream.close(); |
| | | } catch (Exception e) { |
| | | log.error("关闭输入流失败", e); |
| | | } |
| | | } |
| | | if (out != null) { |
| | | try { |
| | | out.close(); |
| | | } catch (Exception e) { |
| | | log.error("关闭输出流失败", e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |