Jelajahi Sumber

良品转次品 采购退货减次品库存

yzc 2 tahun lalu
induk
melakukan
63df61ac79

+ 11 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/StockController.java

@@ -78,5 +78,16 @@ public class StockController {
         return R.success();
     }
 
+    /**
+     * 良品转次品
+     *
+     * @return
+     */
+    @PostMapping("/qualifiedToDefective")
+    public R qualifiedToDefective(@RequestBody Stock stock){
+        stockService.qualifiedToDefective(stock);
+        return R.success();
+    }
+
 }
 

+ 2 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockService.java

@@ -50,5 +50,7 @@ public interface StockService extends BaseService<Stock> {
 
     /**次品转良品*/
     void defectiveToQualified(Stock stock);
+    /**良品转次品*/
+    void qualifiedToDefective(Stock stock);
 
 }

+ 18 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockServiceImpl.java

@@ -158,6 +158,19 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     }
 
     /**
+     * 良品转次品
+     */
+    @Override
+    public void qualifiedToDefective(Stock stock) {
+        Assert.notEmpty(stock.getId(), "库存id不能为空");
+        Assert.notEmpty(stock.getQuantity(), "要转换的数量不能为空");
+        Stock stock1 = getById(stock.getId());
+        stock1.setQuantity(stock1.getQuantity().subtract(stock.getQuantity()));
+        stock1.setDefectiveQuantity(stock1.getDefectiveQuantity().add(stock.getQuantity()));
+        updateById(stock1);
+    }
+
+    /**
      * 合并变更数量(如果同一种物品在出入库一个仓库,则合并数量)
      */
     private Map<String, Stock> mergeChangeQuantity(StockChangeDto stockChangeDto) {
@@ -257,6 +270,11 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
                     BigDecimal subtract = oldStock.getFrozenQuantity().subtract(newStock.getFrozenQuantity());
                     Assert.eqTrue(subtract.compareTo(BigDecimal.ZERO) >= 0, "产品锁定库存不足,出库失败");
                     oldStock.setFrozenQuantity(subtract);
+                }else if(typeEnum.equals(OutTypeEnum.PURCHASE_BACK)){
+                    //采购退货出库 改成减少次品库存
+                    BigDecimal subtract = oldStock.getDefectiveQuantity().subtract(newStock.getQuantity());
+                    Assert.eqTrue(subtract.compareTo(BigDecimal.ZERO) >= 0, "产品库存不足,出库失败");
+                    oldStock.setDefectiveQuantity(subtract);
                 }
                 // 其他出库,统计库存
                 else {