Browse Source

修正已采购退货问题

yzc 2 years ago
parent
commit
860a830e0d

+ 5 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/purchase/PurchaseBackVo.java

@@ -1,9 +1,12 @@
 package com.fjhx.params.purchase;
 
+import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.entity.purchase.PurchaseBack;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 /**
  * 采购退货
  *
@@ -25,4 +28,6 @@ public class PurchaseBackVo extends PurchaseBack {
     private String countryId;
     /**详细地址*/
     private String detailedAddress;
+    /**退货物品列表*/
+    List<ApplyPurchase> goodsList;
 }

+ 20 - 10
hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/impl/PurchaseBackServiceImpl.java

@@ -1,26 +1,30 @@
 package com.fjhx.service.purchase.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.base.Condition;
 import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.entity.order.OrderDetails;
 import com.fjhx.entity.order.OrderInfo;
 import com.fjhx.entity.purchase.Purchase;
 import com.fjhx.entity.purchase.PurchaseBack;
+import com.fjhx.mapper.purchase.PurchaseBackMapper;
 import com.fjhx.params.purchase.PurchaseBackEx;
 import com.fjhx.params.purchase.PurchaseBackVo;
-import com.fjhx.mapper.purchase.PurchaseBackMapper;
 import com.fjhx.service.apply.ApplyPurchaseService;
 import com.fjhx.service.order.OrderDetailsService;
 import com.fjhx.service.order.OrderInfoService;
 import com.fjhx.service.purchase.PurchaseBackService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.service.purchase.PurchaseService;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 采购退货 服务实现类
@@ -55,7 +59,6 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
         save(purchaseBackVo);
         //查询采购订单信息
         Purchase purchase = purchaseService.getById(purchaseBackVo.getPurchaseId());
-        ApplyPurchase applyPurchase = applyPurchaseService.getById(purchase.getApplyId());
         //创建退货订单
         OrderInfo orderInfo = new OrderInfo();
         orderInfo.setType(7);
@@ -70,12 +73,19 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
         orderInfo.setDetailedAddress(purchaseBackVo.getDetailedAddress());//详细地址
         orderInfoService.save(orderInfo);
         //创建订单明细
-        OrderDetails orderDetails = new OrderDetails();
-        orderDetails.setOrderId(orderInfo.getId());
-        orderDetails.setProductId(applyPurchase.getGoodsId());
-        orderDetails.setQuantity(purchaseBackVo.getQuantity());
-        orderDetails.setPrice(applyPurchase.getUnitPrice());
-        orderDetails.setNotIssuedQuantity(purchaseBackVo.getQuantity());
-        orderDetailsService.save(orderDetails);
+        List<OrderDetails> orderDetailsList = new ArrayList<>();
+        for (ApplyPurchase applyPurchase : purchaseBackVo.getGoodsList()) {
+            //忽略退货数量为0或小于0的物品
+            if(applyPurchase.getQuantity().compareTo(BigDecimal.ZERO)>0) {
+                OrderDetails orderDetails = new OrderDetails();
+                orderDetails.setOrderId(orderInfo.getId());
+                orderDetails.setProductId(applyPurchase.getGoodsId());
+                orderDetails.setQuantity(applyPurchase.getQuantity());
+                orderDetails.setPrice(applyPurchase.getUnitPrice());
+                orderDetails.setNotIssuedQuantity(applyPurchase.getQuantity());
+                orderDetailsList.add(orderDetails);
+            }
+        }
+        orderDetailsService.saveBatch(orderDetailsList);
     }
 }

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

@@ -206,11 +206,11 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
             // 如果是采购入库或质检不合格出库,添加冻结数量
             if (typeEnum.equals(InTypeEnum.PURCHASE) || typeEnum.equals(OutTypeEnum.UNQUALIFIED_QUALITY_INSPECTION)) {
-                stock.setFrozenQuantity(changeQuantity);
+                stock.setFrozenQuantity(stock.getFrozenQuantity().add(changeQuantity));
             }
             // 否则添加库存数量
             else {
-                stock.setQuantity(changeQuantity);
+                stock.setQuantity(stock.getQuantity().add(changeQuantity));
             }
 
         }