| | |
| | | import com.deepoove.poi.XWPFTemplate; |
| | | import com.deepoove.poi.config.Configure; |
| | | import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.utils.HackLoopTableRenderPolicy; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.procurementrecord.service.ProcurementRecordService; |
| | |
| | | import com.ruoyi.quality.service.IQualityInspectParamService; |
| | | import com.ruoyi.quality.service.IQualityInspectService; |
| | | import com.ruoyi.sales.mapper.SalesLedgerProductMapper; |
| | | import com.ruoyi.stock.pojo.StockUninventory; |
| | | import com.ruoyi.stock.support.FinishedProductStockDimensionResolver; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | private ProductOrderMapper productOrderMapper; |
| | | @Autowired |
| | | private ISysNoticeService sysNoticeService; |
| | | // 解析成品入库维度。 |
| | | @Autowired |
| | | private FinishedProductStockDimensionResolver finishedProductStockDimensionResolver; |
| | | |
| | | @Override |
| | | public int add(QualityInspectDto qualityInspectDto) { |
| | |
| | | // 质检总数 |
| | | BigDecimal quantity = qualityInspect.getQuantity(); |
| | | // 合格数量 = 质检总数 - 不良数量 |
| | | if (ObjectUtils.isNull(qualityInspect.getDefectiveQuantity())) { |
| | | qualityInspect.setDefectiveQuantity(BigDecimal.ZERO); |
| | | } |
| | | BigDecimal productQty = quantity.subtract(qualityInspect.getDefectiveQuantity()); |
| | | // 合格率=合格数量/质检总数 |
| | | BigDecimal productQtyRate = productQty.divide(quantity, 2, RoundingMode.HALF_UP) |
| | |
| | | qualityUnqualified.setInspectId(qualityInspect.getId()); |
| | | qualityUnqualifiedMapper.insert(qualityUnqualified); |
| | | } else { |
| | | //合格入库 |
| | | // 合格入库 |
| | | Integer inspectType = qualityInspect.getInspectType(); |
| | | //生产成品添加审核流程,半成品不审核 |
| | | if (inspectType != null && inspectType.equals(2)) { |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), |
| | | StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId()); |
| | | boolean isFinishedProduct = inspectType != null && inspectType.equals(2); // 成品需要审核 |
| | | // 根据是否成品选择入库方式 |
| | | String processCategory = null; |
| | | String voltage = null; |
| | | if (isFinishedProduct && qualityInspect.getProductMainId() != null) { |
| | | processCategory = finishedProductStockDimensionResolver.resolveProcessCategory(qualityInspect.getProductMainId()); |
| | | voltage = finishedProductStockDimensionResolver.resolveVoltage(qualityInspect.getProductMainId()); |
| | | } |
| | | if (isFinishedProduct) { |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), productQty, |
| | | StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId(), |
| | | processCategory, voltage); |
| | | } else { |
| | | stockUtils.addStockNoReview(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), |
| | | stockUtils.addStockNoReview(qualityInspect.getProductModelId(), productQty, |
| | | StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId()); |
| | | } |
| | | |
| | | // 不良数量>0的入不合格库存 |
| | | if (qualityInspect.getDefectiveQuantity().compareTo(BigDecimal.ZERO) > 0) { |
| | | stockUtils.addUnStockNoReview(qualityInspect.getProductModelId(), qualityInspect.getDefectiveQuantity(), |
| | | StockInUnQualifiedRecordTypeEnum.QUALITYINSPECT_UNSTOCK_IN.getCode(), qualityInspect.getId()); |
| | | } |
| | | } |
| | | qualityInspect.setInspectState(1);//已提交 |
| | | return qualityInspectMapper.updateById(qualityInspect); |