buhuazhen
4 天以前 a4a0e2bd0ddcf0b6c55b701fc52875f3302cbe11
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -8,25 +8,25 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.ruoyi.common.enums.StockQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.quality.dto.QualityInspectDto;
import com.ruoyi.quality.dto.QualityInspectExportDTO;
import com.ruoyi.quality.dto.QualityInspectExportVO;
import com.ruoyi.quality.mapper.QualityInspectMapper;
import com.ruoyi.quality.mapper.QualityTestStandardMapper;
import com.ruoyi.quality.mapper.QualityUnqualifiedMapper;
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.quality.pojo.QualityInspectParam;
import com.ruoyi.quality.pojo.QualityUnqualified;
import com.ruoyi.quality.service.IQualityInspectParamService;
import com.ruoyi.quality.service.IQualityInspectService;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
@@ -46,13 +46,9 @@
    private IQualityInspectParamService qualityInspectParamService;
    private QualityTestStandardMapper qualityTestStandardMapper;
    private QualityUnqualifiedMapper qualityUnqualifiedMapper;
    private SalesLedgerProductMapper salesLedgerProductMapper;
    private ProcurementRecordService procurementRecordService;
    private QualityInspectExportHandle qualityInspectExportHandle;
    @Override
    public int add(QualityInspectDto qualityInspectDto) {
@@ -77,12 +73,13 @@
        return qualityInspectDto;
    }
    //提交
    @Override
    public int submit(QualityInspect inspect) {
        QualityInspect qualityInspect = qualityInspectMapper.selectById(inspect.getId());
        /*判断不合格*/
        if (ObjectUtils.isNotNull(qualityInspect.getCheckResult()) && qualityInspect.getCheckResult().equals("不合格")) {
        if (ObjectUtils.isNull(qualityInspect.getCheckResult())) {
            throw new RuntimeException("请先判断是否合格");
        }
        if (qualityInspect.getCheckResult().equals("不合格")) {
            QualityUnqualified qualityUnqualified = new QualityUnqualified();
            BeanUtils.copyProperties(qualityInspect, qualityUnqualified);
            qualityUnqualified.setInspectState(0);//待处理
@@ -93,13 +90,14 @@
            qualityUnqualifiedMapper.insert(qualityUnqualified);
        } else {
            //合格直接入库
            stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), StockQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId());
            if (qualityInspect.getInspectType() == 2 || qualityInspect.getInspectType() == 0) {
                stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId(), "-", "-", "-");
            }
        }
        qualityInspect.setInspectState(1);//已提交
        return qualityInspectMapper.updateById(qualityInspect);
    }
    /*生成检验报告*/
    @Override
    public void down(HttpServletResponse response, QualityInspect qualityInspect) {
        QualityInspect inspect = qualityInspectMapper.selectById(qualityInspect.getId());
@@ -135,11 +133,9 @@
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "检验报告", "UTF-8");
            String fileName = URLEncoder.encode("检验报告", "UTF-8");
            response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
@@ -185,8 +181,25 @@
                util.exportExcel(response, qualityInspects, "出厂检验导出");
                break;
        }
    }
    /**
     * 导出检验记录(支持选中导出和全部导出,包含检验参数)
     * 每个检验参数一行(一个检验记录展开成多行)
     */
    @Override
    public void qualityInspectExportNew(HttpServletResponse response, QualityInspectExportDTO exportDTO) {
        // 1. 查询检验记录
        List<QualityInspect> qualityInspects = qualityInspectExportHandle.queryInspectList(exportDTO);
        if (CollectionUtils.isEmpty(qualityInspects)) {
            throw new RuntimeException("没有可导出的数据");
        }
        // 2. 构建导出数据(每个检验参数一行)
        List<QualityInspectExportVO> exportList = qualityInspectExportHandle.buildExportData(qualityInspects, exportDTO.getInspectType());
        // 3. 导出Excel
        qualityInspectExportHandle.exportExcel(response, exportList, exportDTO.getInspectType());
    }
}