Browse Source

增加退货数量计算

yzc 2 năm trước cách đây
mục cha
commit
ff1af324c3

+ 6 - 4
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/purchase/PurchaseBack.java

@@ -1,12 +1,9 @@
 package com.fjhx.entity.purchase;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.Version;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.fjhx.base.BaseEntity;
-import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -62,5 +59,10 @@ public class PurchaseBack extends BaseEntity {
     @TableLogic
     private Integer delFlag;
 
+    /**
+     * 申购id
+     */
+    private Long applyId;
+
 
 }

+ 11 - 2
hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/impl/PurchaseBackServiceImpl.java

@@ -55,8 +55,8 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
     @Override
     public void add(PurchaseBackVo purchaseBackVo) {
         //创建退货记录
-        purchaseBackVo.setStatus(0);
-        save(purchaseBackVo);
+//        purchaseBackVo.setStatus(0);
+//        save(purchaseBackVo);
         //查询采购订单信息
         Purchase purchase = purchaseService.getById(purchaseBackVo.getPurchaseId());
         //创建退货订单
@@ -74,6 +74,7 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
         orderInfoService.save(orderInfo);
         //创建订单明细
         List<OrderDetails> orderDetailsList = new ArrayList<>();
+        List<PurchaseBack> purchaseBackList = new ArrayList<>();
         for (ApplyPurchase applyPurchase : purchaseBackVo.getGoodsList()) {
             //忽略退货数量为0或小于0的物品
             if(applyPurchase.getQuantity().compareTo(BigDecimal.ZERO)>0) {
@@ -84,8 +85,16 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
                 orderDetails.setPrice(applyPurchase.getUnitPrice());
                 orderDetails.setNotIssuedQuantity(applyPurchase.getQuantity());
                 orderDetailsList.add(orderDetails);
+                //创建退货记录
+                PurchaseBack purchaseBack = new PurchaseBack();
+                purchaseBack.setPurchaseId(purchaseBackVo.getPurchaseId());
+                purchaseBack.setApplyId(applyPurchase.getId());
+                purchaseBack.setStatus(0);
+                purchaseBack.setQuantity(applyPurchase.getQuantity());
+                purchaseBackList.add(purchaseBack);
             }
         }
+        saveBatch(purchaseBackList);
         orderDetailsService.saveBatch(orderDetailsList);
     }
 }

+ 20 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/impl/PurchaseServiceImpl.java

@@ -7,6 +7,7 @@ import com.fjhx.base.BaseEntity;
 import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.entity.logistics.LogisticsInfo;
 import com.fjhx.entity.purchase.Purchase;
+import com.fjhx.entity.purchase.PurchaseBack;
 import com.fjhx.entity.quality.QualityDetails;
 import com.fjhx.entity.quality.QualityInfo;
 import com.fjhx.entity.supplier.Supplier;
@@ -15,6 +16,7 @@ import com.fjhx.mapper.purchase.PurchaseMapper;
 import com.fjhx.params.apply.ApplyPurchaseVo;
 import com.fjhx.service.apply.ApplyPurchaseService;
 import com.fjhx.service.logistics.LogisticsInfoService;
+import com.fjhx.service.purchase.PurchaseBackService;
 import com.fjhx.service.purchase.PurchaseService;
 import com.fjhx.service.quality.QualityDetailsService;
 import com.fjhx.service.quality.QualityInfoService;
@@ -56,6 +58,8 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     QualityInfoService qualityInfoService;
     @Autowired
     QualityDetailsService qualityDetailsService;
+    @Autowired
+    PurchaseBackService purchaseBackService;
 
     /**
      * 待采购列表
@@ -155,7 +159,6 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
                     for (ApplyPurchaseVo applyPurchaseVo : applyPurchases) {
                         applyPurchaseVo.setQualityQuantity(BigDecimal.ZERO);
                         applyPurchaseVo.setDisqualificationQuantity(BigDecimal.ZERO);
-                        applyPurchaseVo.setBackQuantity(BigDecimal.ZERO);
                         Long goodsId = applyPurchaseVo.getGoodsId();
                         List<QualityDetails> qualityDetailsList1 = qualityDetailsMap.get(goodsId);
                         if (ObjectUtil.isNotEmpty(qualityDetailsList1)) {
@@ -172,6 +175,22 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
                 }
             }
         }
+
+        //获取退货信息
+        List<PurchaseBack> PurchaseBackList = purchaseBackService.list(q -> q.eq(PurchaseBack::getPurchaseId, id).isNotNull(PurchaseBack::getApplyId));
+        Map<Long, List<PurchaseBack>> purchaseBackMap = PurchaseBackList.stream().collect(Collectors.groupingBy(PurchaseBack::getApplyId));
+        for (ApplyPurchaseVo applyPurchaseVo : applyPurchases) {
+            applyPurchaseVo.setBackQuantity(BigDecimal.ZERO);
+            //退货数量求和
+            List<PurchaseBack> purchaseBacks = purchaseBackMap.get(applyPurchaseVo.getId());
+            if (ObjectUtil.isNotEmpty(purchaseBacks)) {
+                BigDecimal purchaseBackQuantity = purchaseBacks.stream()
+                        .map(PurchaseBack::getQuantity)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+                purchaseBackQuantity = purchaseBackQuantity.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : purchaseBackQuantity;
+                applyPurchaseVo.setBackQuantity(purchaseBackQuantity);
+            }
+        }
         purchase.setGoodsList(applyPurchases);
         return purchase;
     }