| | |
| | | purchaseLedgerServiceImpl.addQualityInspect(purchaseLedger, salesLedgerProduct); |
| | | }else { |
| | | //直接入库 |
| | | stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId()); |
| | | stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId(),"-","-","-"); |
| | | } |
| | | } |
| | | } else if (status.equals(3)) { |
| | |
| | | * @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 warehouseCode,String warehouseName,String productCode) { |
| | | StockUninventoryDto stockUninventoryDto = new StockUninventoryDto(); |
| | | stockUninventoryDto.setRecordId(recordId); |
| | | stockUninventoryDto.setWarehouseCode(warehouseCode); |
| | | stockUninventoryDto.setWarehouseName(warehouseName); |
| | | stockUninventoryDto.setProductCode(productCode); |
| | | stockUninventoryDto.setRecordType(String.valueOf(recordType)); |
| | | stockUninventoryDto.setQualitity(quantity); |
| | | stockUninventoryDto.setProductModelId(productModelId); |
| | |
| | | * @param recordType |
| | | * @param recordId |
| | | */ |
| | | public void addStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) { |
| | | public void addStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId,String warehouseCode,String warehouseName,String productCode) { |
| | | StockInventoryDto stockInventoryDto = new StockInventoryDto(); |
| | | stockInventoryDto.setRecordId(recordId); |
| | | stockInventoryDto.setWarehouseCode(warehouseCode); |
| | | stockInventoryDto.setWarehouseName(warehouseName); |
| | | stockInventoryDto.setProductCode(productCode); |
| | | stockInventoryDto.setRecordType(String.valueOf(recordType)); |
| | | stockInventoryDto.setQualitity(quantity); |
| | | stockInventoryDto.setProductModelId(productModelId); |
| | |
| | | } |
| | | }else { |
| | | //直接入库 |
| | | stockUtils.addStock(productProcessRouteItem.getProductModelId(), productQty, StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId()); |
| | | stockUtils.addStock(productProcessRouteItem.getProductModelId(), productQty, StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId(),"-","-","-"); |
| | | } |
| | | |
| | | /*添加生产核算 区分工序是计件还是计时*/ |
| | |
| | | //如果报废数量>0,需要进入报废的库存 |
| | | if (ObjectUtils.isNotEmpty(productionProductOutput.getScrapQty())) { |
| | | if (productionProductOutput.getScrapQty().compareTo(BigDecimal.ZERO) > 0) { |
| | | stockUtils.addUnStock(productModel.getId(), productionProductOutput.getScrapQty(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId()); |
| | | stockUtils.addUnStock(productModel.getId(), productionProductOutput.getScrapQty(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId(),"-","-","-"); |
| | | } |
| | | } |
| | | } |
| | |
| | | qualityUnqualifiedMapper.insert(qualityUnqualified); |
| | | } else { |
| | | //合格直接入库 |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId()); |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId(), "-", "-", "-"); |
| | | } |
| | | qualityInspect.setInspectState(1);//已提交 |
| | | return qualityInspectMapper.updateById(qualityInspect); |
| | |
| | | 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(), "-", "-", "-"); |
| | | break; |
| | | case "让步放行": |
| | | //调用提交合格的接口 |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId()); |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(), "-", "-", "-"); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | 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(), "-", "-", "-"); |
| | | break; |
| | | case "让步放行": |
| | | //调用提交合格的接口 |
| | | stockUtils.addStock(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId()); |
| | | stockUtils.addStock(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(), "-", "-", "-"); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | |
| | | |
| | | //出库 |
| | | stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId()); |
| | | stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId(),"-","-","-"); |
| | | } |
| | | |
| | | return AjaxResult.success(); |
| | |
| | | @Data |
| | | public class StockInventoryExportData { |
| | | |
| | | @Excel(name ="仓库编码") |
| | | private String warehouseCode; |
| | | @Excel(name ="仓库") |
| | | private String warehouseName; |
| | | |
| | | @Excel(name = "存货编码") |
| | | private String productCode; |
| | | |
| | | @Excel(name = "产品名称") |
| | | @Excel(name = "存货") |
| | | private String productName; |
| | | |
| | | @Excel(name = "规格") |
| | | @Excel(name = "规格型号") |
| | | private String model; |
| | | |
| | | @Excel(name = "单位") |
| | | @Excel(name = "主单位") |
| | | private String unit; |
| | | |
| | | @Excel(name = "库存数量") |
| | | @Excel(name = "数量(主单位)") |
| | | private BigDecimal qualitity; |
| | | |
| | | @Excel(name = "预警数量") |
| | | private BigDecimal warnNum; |
| | | |
| | | @Excel(name = "冻结数量") |
| | | private BigDecimal lockedQuantity; |
| | | |
| | | @Excel(name = "备注") |
| | | private String remark; |
| | | // |
| | | // @Excel(name = "最新更新时间") |
| | | // @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | |
| | | |
| | | @ApiModelProperty("备注") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty("仓库编码") |
| | | private String warehouseCode; |
| | | |
| | | @ApiModelProperty("仓库") |
| | | private String warehouseName; |
| | | |
| | | @ApiModelProperty("存货编码") |
| | | private String productCode; |
| | | } |
| | |
| | | @ApiModelProperty("被订单锁定数量") |
| | | private BigDecimal lockedQuantity; |
| | | |
| | | |
| | | @ApiModelProperty("仓库编码") |
| | | private String warehouseCode; |
| | | |
| | | @ApiModelProperty("仓库") |
| | | private String warehouseName; |
| | | |
| | | @ApiModelProperty("存货编码") |
| | | private String productCode; |
| | | |
| | | } |
| | |
| | | stockInRecordDto.setType("0"); |
| | | stockInRecordService.add(stockInRecordDto); |
| | | //再进行新增库存数量库存 |
| | | //先查询库存表中的产品是否存在,不存在新增,存在更新 |
| | | StockInventory oldStockInventory = stockInventoryMapper.selectOne(new QueryWrapper<StockInventory>().lambda().eq(StockInventory::getProductModelId, stockInventoryDto.getProductModelId())); |
| | | //先查询库存表中的产品是否存在,不存在新增,存在更新 阳光彩印添加仓库编码, 添加比对仓库 |
| | | StockInventory oldStockInventory = stockInventoryMapper.selectOne(new QueryWrapper<StockInventory>().lambda().eq(StockInventory::getProductModelId, stockInventoryDto.getProductModelId()).eq(StockInventory::getWarehouseCode,stockInventoryDto.getWarehouseCode())); |
| | | if (ObjectUtils.isEmpty(oldStockInventory)) { |
| | | StockInventory newStockInventory = new StockInventory(); |
| | | newStockInventory.setProductModelId(stockInventoryDto.getProductModelId()); |
| | | newStockInventory.setQualitity(stockInventoryDto.getQualitity()); |
| | | newStockInventory.setVersion(1); |
| | | newStockInventory.setProductCode(stockInventoryDto.getProductCode()); |
| | | newStockInventory.setWarehouseCode(stockInventoryDto.getWarehouseCode()); |
| | | newStockInventory.setWarehouseName(stockInventoryDto.getWarehouseName()); |
| | | newStockInventory.setRemark(stockInventoryDto.getRemark()); |
| | | newStockInventory.setLockedQuantity(stockInventoryDto.getLockedQuantity()); |
| | | newStockInventory.setWarnNum(stockInventoryDto.getWarnNum()); |
| | |
| | | if (item.getProductCategory().equals(dto.getProductName()) && |
| | | item.getSpecificationModel().equals(dto.getModel())) { |
| | | StockInventoryDto stockInventoryDto = new StockInventoryDto(); |
| | | stockInventoryDto.setWarehouseCode(dto.getWarehouseCode()); |
| | | stockInventoryDto.setWarehouseName(dto.getWarehouseName()); |
| | | stockInventoryDto.setProductCode(dto.getProductCode()); |
| | | stockInventoryDto.setRecordId(0L); |
| | | stockInventoryDto.setRecordType(StockInQualifiedRecordTypeEnum.CUSTOMIZATION_STOCK_IN.getCode()); |
| | | stockInventoryDto.setQualitity(dto.getQualitity()); |
| | | stockInventoryDto.setRemark(dto.getRemark()); |
| | | stockInventoryDto.setWarnNum(dto.getWarnNum()); |
| | | if (ObjectUtils.isNotEmpty(dto.getLockedQuantity())&&dto.getLockedQuantity().compareTo(dto.getQualitity())>0) { |
| | | throw new RuntimeException("冻结数量不能超过本次导入的库存数量"); |
| | | } |
| | | stockInventoryDto.setLockedQuantity(dto.getLockedQuantity()); |
| | | stockInventoryDto.setProductModelId(item.getProductModelId()); |
| | | this.addstockInventory(stockInventoryDto); |
| | | matched = true; |
| | |
| | | (si.qualitity - COALESCE(si.locked_quantity, 0)) as un_locked_quantity, |
| | | pm.model, |
| | | si.remark, |
| | | si.warehouse_code, |
| | | si.warehouse_name, |
| | | si.product_code, |
| | | pm.unit, |
| | | p.product_name |
| | | from stock_inventory si |