fix:生产-质量-仓储(合格,不合格),批号,供应商
| | |
| | | * @param recordType |
| | | * @param recordId |
| | | */ |
| | | public void addUnStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) { |
| | | public void addUnStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId, String batchNo, String customer, LocalDate productionDate) { |
| | | StockUninventoryDto stockUninventoryDto = new StockUninventoryDto(); |
| | | stockUninventoryDto.setRecordId(recordId); |
| | | stockUninventoryDto.setRecordType(String.valueOf(recordType)); |
| | | stockUninventoryDto.setQualitity(quantity); |
| | | stockUninventoryDto.setProductModelId(productModelId); |
| | | stockUninventoryDto.setBatchNo(batchNo); |
| | | stockUninventoryDto.setCustomer(customer); |
| | | stockUninventoryDto.setProductionDate(productionDate); |
| | | stockUninventoryService.addStockUninventory(stockUninventoryDto); |
| | | } |
| | | |
| | |
| | | order.setDrawMaterials(JSON.toJSONString(existingMaterialList)); |
| | | productOrderMapper.updateById(order); |
| | | } |
| | | }else { |
| | | } else { |
| | | throw new RuntimeException("请领取投入材料"); |
| | | } |
| | | /*新增报工产出表*/ |
| | |
| | | //合格数量=报工数量 |
| | | BigDecimal productQty = productionProductOutput.getQuantity(); |
| | | //只有合格数量>0才能增加相应数据 |
| | | ProductWorkOrder pwo = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId()); |
| | | String customer = "长治市轴承制造有限公司"; |
| | | if (productQty.compareTo(BigDecimal.ZERO) > 0) { |
| | | /*新增质检*/ |
| | | List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().eq(ProductProcessRouteItem::getProductRouteId, productProcessRouteItem.getProductRouteId())); |
| | |
| | | inspectType = 2; |
| | | process = null; |
| | | } |
| | | ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId()); |
| | | ProductOrder productOrder = productOrderMapper.selectById(productWorkOrder.getProductOrderId()); |
| | | ProductOrder productOrder = productOrderMapper.selectById(pwo.getProductOrderId()); |
| | | if (productOrder == null) { |
| | | throw new RuntimeException("生产订单不存在"); |
| | | } |
| | |
| | | qualityInspect.setProductModelId(productModel.getId()); |
| | | qualityInspect.setBatchNo(productOrder.getBatchNo()); |
| | | qualityInspect.setManufacturingTeam(productOrder.getManufacturingTeam()); |
| | | qualityInspect.setProductionDate(pwo.getActualStartTime() != null ? pwo.getActualStartTime() : LocalDate.now()); |
| | | qualityInspectMapper.insert(qualityInspect); |
| | | List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(product.getId(), inspectType, process); |
| | | if (qualityTestStandard.size() > 0) { |
| | |
| | | } |
| | | } else { |
| | | //直接入库 |
| | | String customer = "长治市轴承制造有限公司"; |
| | | stockUtils.addStock(productProcessRouteItem.getProductModelId(), productionProductOutput.getQuantity().subtract(productionProductOutput.getScrapQty()), |
| | | StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId(),order.getBatchNo(),customer,null |
| | | StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId(), order.getBatchNo(), customer, pwo.getActualStartTime() != null ? pwo.getActualStartTime() : LocalDate.now() |
| | | ); |
| | | } |
| | | /*更新工单和生产订单*/ |
| | |
| | | //如果报废数量>0,需要进入报废的库存 |
| | | if (ObjectUtils.isNotEmpty(dto.getScrapQty())) { |
| | | if (dto.getScrapQty().compareTo(BigDecimal.ZERO) > 0) { |
| | | stockUtils.addUnStock(productModel.getId(), dto.getScrapQty(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId()); |
| | | stockUtils.addUnStock(productModel.getId(), dto.getScrapQty(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId(), |
| | | order.getBatchNo(), customer, pwo.getActualStartTime() != null ? pwo.getActualStartTime() : LocalDate.now()); |
| | | } |
| | | } |
| | | return true; |
| | |
| | | String text = inspectParams.stream().map(QualityInspectParam::getParameterItem).collect(Collectors.joining(",")); |
| | | qualityUnqualified.setDefectivePhenomena(text + "这些指标中存在不合格");//不合格现象 |
| | | qualityUnqualified.setInspectId(qualityInspect.getId()); |
| | | qualityUnqualified.setProductionDate(inspect.getProductionDate()); |
| | | qualityUnqualified.setBatchNo(inspect.getBatchNo()); |
| | | qualityUnqualified.setProductionDate(qualityInspect.getProductionDate()); |
| | | qualityUnqualified.setBatchNo(batchNo); |
| | | qualityUnqualifiedMapper.insert(qualityUnqualified); |
| | | } else { |
| | | //合格直接入库 |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), |
| | | qualityInspect.getId(), batchNo, customer,inspect.getProductionDate() |
| | | qualityInspect.getId(), batchNo, customer != null ? customer : "长治市轴承制造有限公司", inspect.getProductionDate() |
| | | ); |
| | | } |
| | | qualityInspect.setInspectState(1);//已提交 |
| | |
| | | public int deal(QualityUnqualified qualityUnqualified) { |
| | | QualityUnqualified unqualified = qualityUnqualifiedMapper.selectById(qualityUnqualified.getId()); |
| | | QualityInspect qualityInspect = qualityInspectService.getById(unqualified.getInspectId()); |
| | | ProductionProductMain productionProductMain = productionProductMainMapper.selectById(qualityInspect.getProductMainId()); |
| | | ProductWorkOrder workOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId()); |
| | | ProductOrder orders = productOrderMapper.selectById(workOrder.getProductOrderId()); |
| | | String batchNo; |
| | | if (qualityInspect.getProductMainId() != null) { |
| | | ProductionProductMain productionProductMain = productionProductMainMapper.selectById(qualityInspect.getProductMainId()); |
| | | ProductWorkOrder workOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId()); |
| | | ProductOrder orders = productOrderMapper.selectById(workOrder.getProductOrderId()); |
| | | batchNo = orders.getBatchNo(); |
| | | } else { |
| | | batchNo = qualityInspect.getBatchNo(); |
| | | } |
| | | String customer = "长治市轴承制造有限公司"; |
| | | if (ObjectUtils.isNotNull(qualityInspect) && qualityInspect.getInspectType() != 0) { |
| | | switch (qualityUnqualified.getDealResult()) { |
| | | case "返修": |
| | |
| | | break; |
| | | case "报废": |
| | | //调用不合格库存接口 入不合格库 |
| | | stockUtils.addUnStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId()); |
| | | stockUtils.addUnStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId(), |
| | | batchNo, customer, qualityInspect.getProductionDate() != null ? qualityInspect.getProductionDate() : LocalDate.now()); |
| | | break; |
| | | case "让步放行": |
| | | //调用提交合格的接口 |
| | | String customer = "长治市轴承制造有限公司"; |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(), |
| | | orders.getBatchNo(), customer,null |
| | | batchNo, customer, qualityInspect.getProductionDate() != null ? qualityInspect.getProductionDate() : LocalDate.now() |
| | | ); |
| | | break; |
| | | case "返工": |
| | |
| | | switch (qualityUnqualified.getDealResult()) { |
| | | case "报废": |
| | | //调用不合格库存接口 入不合格库 |
| | | stockUtils.addUnStock(modelId, unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId()); |
| | | stockUtils.addUnStock(modelId, unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId(), |
| | | batchNo, customer, qualityInspect.getProductionDate() != null ? qualityInspect.getProductionDate() : LocalDate.now()); |
| | | break; |
| | | case "让步放行": |
| | | //调用提交合格的接口 |
| | | String customer = "长治市轴承制造有限公司"; |
| | | stockUtils.addStock(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(), orders.getBatchNo(), customer,null); |
| | | customer = "长治市轴承制造有限公司"; |
| | | stockUtils.addStock(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(), batchNo, customer, qualityInspect.getProductionDate() != null ? qualityInspect.getProductionDate() : LocalDate.now()); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | } |
| | | qualityUnqualified.setInspectState(1);//已处理 |
| | | return qualityUnqualifiedMapper.updateById(qualityUnqualified); |
| | |
| | | private Long recordId; |
| | | |
| | | private BigDecimal unLockedQuantity; |
| | | |
| | | private String uidNo; |
| | | } |
| | |
| | | |
| | | import java.io.Serializable; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | |
| | | @ApiModelProperty("供应商名称") |
| | | private String customer; |
| | | |
| | | @ApiModelProperty("生产日期") |
| | | private LocalDate productionDate; |
| | | |
| | | } |
| | |
| | | newStockUnInventory.setRemark(stockUninventoryDto.getRemark()); |
| | | newStockUnInventory.setBatchNo(stockUninventoryDto.getBatchNo()); |
| | | newStockUnInventory.setCustomer(stockUninventoryDto.getCustomer()); |
| | | newStockUnInventory.setProductionDate(stockUninventoryDto.getProductionDate()); |
| | | stockUninventoryMapper.insert(newStockUnInventory); |
| | | }else { |
| | | stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto); |
| | |
| | | qu.deal_time, |
| | | qu.production_date, |
| | | pm.uid_no, |
| | | pm.batch_no, |
| | | qu.batch_no, |
| | | CASE |
| | | WHEN qu.model = pm.id THEN pm.model |
| | | ELSE qu.model |
| | |
| | | <if test="ew.customer != null and ew.customer !=''"> |
| | | customer = #{ew.customer}, |
| | | </if> |
| | | <if test="ew.productionDate != null"> |
| | | production_date = #{ew.productionDate}, |
| | | </if> |
| | | update_time = now() |
| | | </set> |
| | | where product_model_id = #{ew.productModelId} |
| | |
| | | (su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity, |
| | | pm.model, |
| | | pm.unit, |
| | | pm.uid_no, |
| | | p.product_name, |
| | | su.batch_no, |
| | | su.customer |