| | |
| | | import com.ruoyi.procurementrecord.service.ProcurementRecordService; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.quality.dto.QualityInspectDto; |
| | | import com.ruoyi.quality.utils.FinalInspectExportUtil; |
| | | import com.ruoyi.quality.utils.ProcessInspectExportUtil; |
| | | import com.ruoyi.quality.utils.RawMaterialInspectExportUtil; |
| | | import com.ruoyi.quality.mapper.QualityInspectMapper; |
| | | import com.ruoyi.quality.mapper.QualityTestStandardMapper; |
| | | import com.ruoyi.quality.mapper.QualityUnqualifiedMapper; |
| | |
| | | public int add(QualityInspectDto qualityInspectDto) { |
| | | QualityInspect qualityInspect = new QualityInspect(); |
| | | BeanUtils.copyProperties(qualityInspectDto, qualityInspect); |
| | | qualityInspect.setId(null);//强制走数据库自增,避免前端误传id导致主键冲突 |
| | | qualityInspect.setInspectState(0);//默认未提交 |
| | | qualityInspectMapper.insert(qualityInspect); |
| | | for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) { |
| | | qualityInspectParam.setInspectId(qualityInspect.getId()); |
| | | if (ObjectUtils.isNotEmpty(qualityInspectDto.getQualityInspectParams())) { |
| | | for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) { |
| | | qualityInspectParam.setInspectId(qualityInspect.getId()); |
| | | } |
| | | qualityInspectParamService.saveBatch(qualityInspectDto.getQualityInspectParams()); |
| | | } |
| | | qualityInspectParamService.saveBatch(qualityInspectDto.getQualityInspectParams()); |
| | | // 保存附件 |
| | | fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.QUALITY_INSPECT, qualityInspect.getId(), qualityInspectDto.getStorageBlobDTOs()); |
| | | return 0; |
| | |
| | | public int submit(QualityInspect inspect) { |
| | | QualityInspect qualityInspect = qualityInspectMapper.selectById(inspect.getId()); |
| | | |
| | | if (Integer.valueOf(1).equals(qualityInspect.getInspectState())) { |
| | | throw new ServiceException("该记录已提交,不能重复提交"); |
| | | } |
| | | |
| | | // 原材料检验/过程检验/出厂检验:表单不再填写合格/不合格数量,改用「判定」字段 |
| | | boolean isVerdictInspect = qualityInspect.getInspectType() != null |
| | | && (qualityInspect.getInspectType() == 0 || qualityInspect.getInspectType() == 1 || qualityInspect.getInspectType() == 2); |
| | | |
| | | //提交前必须判断是否合格 |
| | | if (ObjectUtils.isNull(qualityInspect.getCheckResult())) { |
| | | throw new ServiceException("请先判断是否合格"); |
| | | if (isVerdictInspect) { |
| | | // 改用「判定」字段 |
| | | if (ObjectUtils.isNull(qualityInspect.getVerdict())) { |
| | | throw new ServiceException("请先判定是否合格"); |
| | | } |
| | | } else { |
| | | throw new ServiceException("请先判断是否合格"); |
| | | } |
| | | } |
| | | |
| | | // 由「判定」推导合格/不合格数量 |
| | | if (isVerdictInspect) { |
| | | BigDecimal total = qualityInspect.getQuantity() == null ? BigDecimal.ZERO : qualityInspect.getQuantity(); |
| | | if ("合格".equals(qualityInspect.getVerdict())) { |
| | | qualityInspect.setQualifiedQuantity(total); |
| | | qualityInspect.setUnqualifiedQuantity(BigDecimal.ZERO); |
| | | } else if ("不合格".equals(qualityInspect.getVerdict())) { |
| | | qualityInspect.setQualifiedQuantity(BigDecimal.ZERO); |
| | | qualityInspect.setUnqualifiedQuantity(total); |
| | | } |
| | | } |
| | | |
| | | if (ObjectUtils.isNull(qualityInspect.getQualifiedQuantity())) { |
| | |
| | | qualityUnqualified.setProductModelId(qualityInspect.getProductModelId()); |
| | | List<QualityInspectParam> inspectParams = qualityInspectParamService.list(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, inspect.getId())); |
| | | String text = inspectParams.stream().map(QualityInspectParam::getParameterItem).collect(Collectors.joining(",")); |
| | | qualityUnqualified.setDefectivePhenomena(text + "这些指标中存在不合格");//不合格现象 |
| | | if (text == null || text.isEmpty()) { |
| | | text = qualityInspect.getAbnormalRemark(); |
| | | } |
| | | qualityUnqualified.setDefectivePhenomena((text == null || text.isEmpty()) ? "检验不合格" : text + "这些指标中存在不合格");//不合格现象 |
| | | qualityUnqualified.setInspectId(qualityInspect.getId()); |
| | | qualityUnqualifiedMapper.insert(qualityUnqualified); |
| | | |
| | |
| | | return R.ok("检验单已提交"); |
| | | } |
| | | |
| | | if (ObjectUtils.isNull(qualityInspect.getVerdict())) { |
| | | qualityInspect.setVerdict("合格"); |
| | | } |
| | | if (ObjectUtils.isNull(qualityInspect.getCheckResult())) { |
| | | qualityInspect.setCheckResult("合格"); |
| | | } |
| | |
| | | @Override |
| | | public void qualityInspectExport(HttpServletResponse response, QualityInspect qualityInspect) { |
| | | List<QualityInspect> qualityInspects = qualityInspectMapper.qualityInspectExport(qualityInspect); |
| | | // 原材料检验:按纸质单据样式导出 |
| | | if (qualityInspect.getInspectType() != null && qualityInspect.getInspectType() == 0) { |
| | | RawMaterialInspectExportUtil.export(response, qualityInspects); |
| | | return; |
| | | } |
| | | // 过程检验:按纸质单据样式导出 |
| | | if (qualityInspect.getInspectType() != null && qualityInspect.getInspectType() == 1) { |
| | | ProcessInspectExportUtil.export(response, qualityInspects); |
| | | return; |
| | | } |
| | | // 出厂检验:按纸质单据样式导出 |
| | | if (qualityInspect.getInspectType() != null && qualityInspect.getInspectType() == 2) { |
| | | FinalInspectExportUtil.export(response, qualityInspects); |
| | | return; |
| | | } |
| | | ExcelUtil<QualityInspect> util = new ExcelUtil<QualityInspect>(QualityInspect.class); |
| | | switch (qualityInspect.getInspectType()) { |
| | | case 0: |