| | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.OrderUtils; |
| | | import com.ruoyi.common.utils.bean.BeanUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; |
| | | import com.ruoyi.purchase.mapper.PurchaseReturnOrderProductsMapper; |
| | | import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper; |
| | | import com.ruoyi.purchase.pojo.PurchaseLedger; |
| | | import com.ruoyi.purchase.pojo.PurchaseReturnOrderProducts; |
| | | import com.ruoyi.purchase.pojo.PurchaseReturnOrders; |
| | | import com.ruoyi.production.mapper.ProductionOperationTaskMapper; |
| | | import com.ruoyi.production.mapper.ProductionOrderMapper; |
| | | import com.ruoyi.production.mapper.ProductionOrderRoutingMapper; |
| | |
| | | import com.ruoyi.stock.service.StockUninventoryService; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Arrays; |
| | | import java.util.HashMap; |
| | |
| | | private final ProductionOperationTaskMapper productionOperationTaskMapper; |
| | | private final StockUninventoryService stockUninventoryService; |
| | | private final StockInRecordService stockInRecordService; |
| | | private final PurchaseReturnOrdersMapper purchaseReturnOrdersMapper; |
| | | private final PurchaseReturnOrderProductsMapper purchaseReturnOrderProductsMapper; |
| | | private final PurchaseLedgerMapper purchaseLedgerMapper; |
| | | |
| | | @Override |
| | | public IPage<QualityUnqualified> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int deal(QualityUnqualified qualityUnqualified) { |
| | | QualityUnqualified unqualified = qualityUnqualifiedMapper.selectById(qualityUnqualified.getId()); |
| | | QualityInspect qualityInspect = qualityInspectService.getById(unqualified.getInspectId()); |
| | |
| | | case "让步放行": |
| | | stockUtils.addStock(modelId, unqualified.getQuantity(), |
| | | StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId()); |
| | | break; |
| | | case "拒收": |
| | | createRejectPurchaseReturn(qualityInspect, qualityUnqualified); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | return value == null ? BigDecimal.ZERO : value; |
| | | } |
| | | |
| | | private void createRejectPurchaseReturn(QualityInspect qualityInspect, QualityUnqualified qualityUnqualified) { |
| | | if (qualityInspect == null) { |
| | | throw new ServiceException("手动新增的不合格记录不支持拒收处理,请选择报废或让步放行"); |
| | | } |
| | | Long supplierId = null; |
| | | Long purchaseLedgerId = qualityInspect.getPurchaseLedgerId(); |
| | | if (purchaseLedgerId != null) { |
| | | PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(purchaseLedgerId); |
| | | if (purchaseLedger != null) { |
| | | supplierId = purchaseLedger.getSupplierId(); |
| | | } |
| | | } |
| | | PurchaseReturnOrders returnOrder = new PurchaseReturnOrders(); |
| | | returnOrder.setReturnType(1); |
| | | returnOrder.setSupplierId(supplierId); |
| | | returnOrder.setPurchaseLedgerId(purchaseLedgerId); |
| | | returnOrder.setPreparedAt(LocalDate.now()); |
| | | returnOrder.setReturnUserName(qualityUnqualified.getDealName()); |
| | | returnOrder.setRemark("原料检验不合格-拒收"); |
| | | returnOrder.setNo(OrderUtils.countTodayByCreateTime(purchaseReturnOrdersMapper, "CGTL", "no", LocalDateTime.now())); |
| | | purchaseReturnOrdersMapper.insert(returnOrder); |
| | | PurchaseReturnOrderProducts product = new PurchaseReturnOrderProducts(); |
| | | product.setPurchaseReturnOrderId(returnOrder.getId()); |
| | | product.setReturnQuantity(qualityUnqualified.getQuantity()); |
| | | product.setStockInRecordId(0L); |
| | | purchaseReturnOrderProductsMapper.insert(product); |
| | | } |
| | | |
| | | private String resolveProductionBatchNo(Long productionProductMainId, |
| | | Long qualityInspectId, |
| | | Long productModelId) { |