| | |
| | | import com.deepoove.poi.config.Configure; |
| | | import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.HackLoopTableRenderPolicy; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.framework.web.domain.R; |
| | | import com.ruoyi.procurementrecord.service.ProcurementRecordService; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.production.mapper.ProductionProductMainMapper; |
| | | import com.ruoyi.production.pojo.ProductionProductMain; |
| | | import com.ruoyi.quality.dto.QualityInspectDto; |
| | | import com.ruoyi.quality.mapper.QualityInspectMapper; |
| | | import com.ruoyi.quality.mapper.QualityTestStandardMapper; |
| | |
| | | import java.io.OutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.net.URLEncoder; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Arrays; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | |
| | | private SalesLedgerProductMapper salesLedgerProductMapper; |
| | | |
| | | private ProcurementRecordService procurementRecordService; |
| | | |
| | | private ProductionProductMainMapper productionProductMainMapper; |
| | | |
| | | @Override |
| | | public int add(QualityInspectDto qualityInspectDto) { |
| | |
| | | stockInventoryDto.setRecordId(qualityInspect.getId()); |
| | | stockInventoryDto.setProductModelId(qualityInspect.getProductModelId()); |
| | | stockInventoryDto.setQualitity(qualityInspect.getQualifiedQuantity()); |
| | | if (qualityInspect.getCheckTime() != null) { |
| | | LocalDate stockCreateDate = DateUtils.toLocalDate(qualityInspect.getCheckTime()).plusDays(1); |
| | | stockInventoryDto.setCreateTime(LocalDateTime.of(stockCreateDate, java.time.LocalTime.MIDNIGHT)); |
| | | } |
| | | stockInventoryDto.setBatchNo(resolveProductionBatchNo( |
| | | qualityInspect.getProductMainId(), |
| | | qualityInspect.getId(), |
| | |
| | | qualityUnqualified.setInspectState(0);//待处理 |
| | | qualityUnqualified.setQuantity(qualityInspect.getUnqualifiedQuantity()); |
| | | qualityUnqualified.setProductModelId(qualityInspect.getProductModelId()); |
| | | applyDealTypeByReportType(qualityInspect, qualityUnqualified); |
| | | 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 + "这些指标中存在不合格");//不合格现象 |
| | |
| | | return qualityInspectMapper.updateById(qualityInspect); |
| | | } |
| | | |
| | | private void applyDealTypeByReportType(QualityInspect qualityInspect, QualityUnqualified qualityUnqualified) { |
| | | if (qualityInspect == null || qualityUnqualified == null || qualityInspect.getProductMainId() == null) { |
| | | return; |
| | | } |
| | | ProductionProductMain productMain = productionProductMainMapper.selectById(qualityInspect.getProductMainId()); |
| | | if (productMain == null || productMain.getReportType() == null) { |
| | | return; |
| | | } |
| | | switch (productMain.getReportType()) { |
| | | case 1: |
| | | qualityUnqualified.setDealType(0); |
| | | qualityUnqualified.setDealResult("报工"); |
| | | break; |
| | | case 2: |
| | | qualityUnqualified.setDealType(1); |
| | | qualityUnqualified.setDealResult("报工"); |
| | | break; |
| | | case 3: |
| | | qualityUnqualified.setDealType(2); |
| | | qualityUnqualified.setDealResult("报废"); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public R autoSubmit(Long id) { |
| | | if (id == null) { |
| | | return R.fail("检验单ID不能为空"); |
| | | } |
| | | QualityInspect qualityInspect = qualityInspectMapper.selectById(id); |
| | | if (qualityInspect == null) { |
| | | return R.fail("检验单不存在"); |
| | | } |
| | | if (Integer.valueOf(1).equals(qualityInspect.getInspectState())) { |
| | | return R.ok("检验单已提交"); |
| | | } |
| | | |
| | | if (ObjectUtils.isNull(qualityInspect.getCheckResult())) { |
| | | qualityInspect.setCheckResult("合格"); |
| | | } |
| | | if (ObjectUtils.isNull(qualityInspect.getQualifiedQuantity())) { |
| | | qualityInspect.setQualifiedQuantity(qualityInspect.getQuantity() == null ? BigDecimal.ZERO : qualityInspect.getQuantity()); |
| | | } |
| | | if (ObjectUtils.isNull(qualityInspect.getUnqualifiedQuantity())) { |
| | | qualityInspect.setUnqualifiedQuantity(BigDecimal.ZERO); |
| | | } |
| | | qualityInspectMapper.updateById(qualityInspect); |
| | | int rows = submit(qualityInspect); |
| | | return rows > 0 ? R.ok("检验单提交成功") : R.fail("检验单提交失败"); |
| | | } |
| | | |
| | | private String resolveProductionBatchNo(Long productionProductMainId, |
| | | Long qualityInspectId, |
| | | Long productModelId) { |