lyhzzz 2 years ago
parent
commit
c7fa3ec6e1

+ 0 - 1
src/main/java/com/fdkankan/sale/service/IPriceListService.java

@@ -32,5 +32,4 @@ public interface IPriceListService extends IService<PriceList> {
 
     void delNoCm(String repairId);
 
-    HashMap<String, BigDecimal> getAmountByRepairIds(List<String> repairIds);
 }

+ 0 - 17
src/main/java/com/fdkankan/sale/service/impl/PriceListServiceImpl.java

@@ -46,23 +46,6 @@ public class PriceListServiceImpl extends ServiceImpl<IPriceListMapper, PriceLis
         return amount;
     }
 
-    @Override
-    public HashMap<String, BigDecimal> getAmountByRepairIds(List<String> repairIds) {
-        HashMap<String, BigDecimal> map = new HashMap<>();
-        List<PriceList> byRepairId = this.getByRepairIdsAndStatus(repairIds,1);
-        for (PriceList priceList : byRepairId) {
-            map.putIfAbsent(priceList.getRepairId(), BigDecimal.ZERO);
-            BigDecimal amount = map.get(priceList.getRepairId());
-            if(priceList.getDiscount() == 0){
-                amount = amount.add(priceList.getPrice().multiply(new BigDecimal(priceList.getCount())));
-            }
-            if(priceList.getDiscount() == 1){
-                amount = amount.add(priceList.getPriceDiscount().multiply(new BigDecimal(priceList.getCount())));
-            }
-            map.put(priceList.getRepairId(),amount);
-        }
-        return map;
-    }
 
     @Override
     public BigDecimal getRobAmountByRepairId(String repairId) {

+ 16 - 2
src/main/java/com/fdkankan/sale/service/impl/RepairCustomerService.java

@@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -50,9 +51,22 @@ public class RepairCustomerService {
                 wrapper.in(Repair::getRepairId,repairIds);
                 wrapper.orderByDesc(Repair::getCreateTime);
                 List<Repair> repairList = repairService.list(wrapper);
-                HashMap<String,BigDecimal> amountMap = priceListService.getAmountByRepairIds(repairIds);
+
                 for (Repair repair : repairList) {
-                    repair.setPayAmount(amountMap.get(repair.getRepairId()));
+                    List<PriceList> priceLists = new ArrayList<>();
+                    if(repair.getCancelStatus() == 1){
+                        priceLists = priceListService.getCheckAmountByRepairId(repair.getRepairId());
+                    }
+                    if(repair.getCancelStatus() == 0){
+                        priceLists =  priceListService.getByRepairId(repair.getRepairId());
+                    }
+                    BigDecimal payAmount = BigDecimal.ZERO;
+
+                    for (PriceList priceList : priceLists) {
+                        BigDecimal price = priceList.getDiscount() == 1 ? priceList.getPriceDiscount() : priceList.getPrice();
+                        payAmount = payAmount.add(price);
+                    }
+                    repair.setPayAmount(payAmount);
                 }
                 return repairList;
             }