Browse Source

付款单待付显示bugfix

zhijiezhao 2 years ago
parent
commit
8664ecc47b

+ 1 - 1
src/main/java/com/caimei/modules/order/dao/NewShopOrderDao.java

@@ -91,5 +91,5 @@ public interface NewShopOrderDao extends CrudDao<NewShopOrder> {
     List<NewShopOrder> findListByShopOrderId(Integer onlineShopOrderId);
 
     //查询子订单是 线上 还是 线上
-    Integer payWay(Integer shopOrderID);
+    List<Integer> payWay(Integer shopOrderID);
 }

+ 79 - 71
src/main/java/com/caimei/modules/order/service/CmPayShopService.java

@@ -275,19 +275,23 @@ public class CmPayShopService extends CrudService<CmPayShopDao, CmPayShop> {
                 //主订单总佣金
                 Double income = newShopOrderDao.findIncome(so.getOrderID());
                 so.setIncome(income);
-               //若成本下降太多导致部分收款的钱,已经大于成本重新计算佣金
-                if("0".equals(newOrder.getOnlinePayFlag()) && so.getShopReceiptStatus()==2){
-                    double mum= so.getProductAmount();
+                //若成本下降太多导致部分收款的钱,已经大于成本重新计算佣金
+                if ("0".equals(newOrder.getOnlinePayFlag()) && so.getShopReceiptStatus() == 2) {
+                    double mum = so.getProductAmount();
                     System.out.println(so.getReceiptTotalFee());
                     System.out.println(so.getShouldPayShopAmount());
                     BigDecimal getShouldPayShopAmount = MathUtil.sub(so.getShouldPayShopAmount(), so.getDifferencePrice());
-                    if(so.getReceiptTotalFee()>Double.valueOf(getShouldPayShopAmount.toString())){
+                    if (so.getReceiptTotalFee() > Double.valueOf(getShouldPayShopAmount.toString())) {
                         //子订单佣金
 
-                        mum-= so.getShopOtherFee()+Double.valueOf(getShouldPayShopAmount.toString());
+                        mum -= so.getShopOtherFee() + Double.valueOf(getShouldPayShopAmount.toString());
                         so.setBrokerage(mum);
-                    }else { so.setBrokerage(null);}
-                }else { so.setBrokerage(null);}
+                    } else {
+                        so.setBrokerage(null);
+                    }
+                } else {
+                    so.setBrokerage(null);
+                }
                 //要是不大于成本默认显示
 
             }
@@ -321,8 +325,15 @@ public class CmPayShopService extends CrudService<CmPayShopDao, CmPayShop> {
                     collect = records.stream().collect(Collectors.summingDouble(CmRefundShopRecord::getRefundAmount));
                 }
                 so.setRefundAmount(collect);
+                so.setWaitPayShop((so.getShouldPayShopAmount() == null ? 0D : so.getShouldPayShopAmount()) - (so.getPayedShopAmount() == null ? 0D : so.getPayedShopAmount()));
                 if ("1".equals(cmPayShopRecord.getStatus())) {
-                    so.setWaitPayShop(so.getShouldPayShopAmount() - (so.getPayedShopAmount() == null ? 0D : (so.getPayedShopAmount() - collect)));
+                    if (so.getDifferenceType() != null && so.getDifferenceType() == 1) {
+                        BigDecimal waitPayShop = MathUtil.add(so.getWaitPayShop(), so.getDifferencePrice());
+                        so.setWaitPayShop(waitPayShop.doubleValue());
+                    } else if (so.getDifferenceType() != null && so.getDifferenceType() == 2) {
+                        BigDecimal waitPayShop = MathUtil.sub(so.getWaitPayShop(), so.getDifferencePrice());
+                        so.setWaitPayShop(waitPayShop.doubleValue());
+                    }
                 } else {
                     so.setWaitPayShop(cmPayShopRecord.getPayAmount());
                 }
@@ -955,7 +966,7 @@ public class CmPayShopService extends CrudService<CmPayShopDao, CmPayShop> {
             payShopDifference.setRebateAmount(BigDecimal.valueOf(rebateAmount));
             payShopDifference.setType(shopOrder.getDifferenceType());
             payShopDifference.setDifferencePrice(shopOrder.getDifferencePrice());
-            payShopDifference.setShopReceiptStatus( shopOrder.getShopReceiptStatus());
+            payShopDifference.setShopReceiptStatus(shopOrder.getShopReceiptStatus());
         }
         payShopDifference.setWaitPayShop(waitPayShop);
         return payShopDifference;
@@ -1039,75 +1050,72 @@ public class CmPayShopService extends CrudService<CmPayShopDao, CmPayShop> {
 
         //待付供应商金额
         BigDecimal waitPayShop = MathUtil.sub(shopOrder.getShouldPayShopAmount(), shopOrder.getPayedShopAmount());
-       Integer payWay= newShopOrderDao.payWay(shopOrderId);
-       if(payWay==1 && shopOrder.getShopReceiptStatus()==2) {
-           if (payShopDifference.getType() == 2 && MathUtil.compare(differencePrice, waitPayShop) > 0) {
-               //多付且差价大于待付金额,会发生供应商退款操作
-               BigDecimal waitRefund = MathUtil.sub(differencePrice, waitPayShop);
-               String refundWay = payShopDifference.getRefundWay();
-               BigDecimal refundAmount = payShopDifference.getRefundAmount();
-               BigDecimal refundBalanceAmount = payShopDifference.getRefundBalanceAmount();
-               if (refundWay.equals("1")) {
-                   //线下退
-                   refundBalanceAmount = BigDecimal.ZERO;
-               } else if (refundWay.equals("2")) {
-                   //欠款账簿
-                   refundAmount = BigDecimal.ZERO;
-               } else {
-                   //两种方式都有
-                   refundWay = "3";
-               }
-               logger.info("待付waitRefund>>>" + waitRefund + ">>>refundAmount金额>>>" + refundAmount + ">>>refundBalanceAmount金额>>>" + refundBalanceAmount);
-               if (MathUtil.compare(waitRefund, MathUtil.add(refundAmount, refundBalanceAmount)) == 0) {
-                   CmRefundShop refundShop = new CmRefundShop();
-                   refundShop.setShopID(shopOrder.getShopID().toString());
-                   refundShop.setOperator(currentUser.getId());
-                   refundShop.setOperatTime(time);
-                   refundShop.setRefundWay(refundWay);
-                   refundShop.setRefundAmount(refundAmount.doubleValue());
-                   refundShop.setRefundBalanceAmount(refundBalanceAmount.doubleValue());
-                   refundShop.setRefundType(payShopDifference.getRefundType().toString());
-                   refundShop.setRemark(payShopDifference.getRemark());
-                   refundShop.setDelFlag("0");
-                   cmRefundShopDao.insert(refundShop);
+//       List<Integer> payWay= newShopOrderDao.payWay(shopOrderId);
+//       if(payWay==1 && shopOrder.getShopReceiptStatus()==2) {
+        if (payShopDifference.getType() == 2 && MathUtil.compare(differencePrice, waitPayShop) > 0) {
+            //多付且差价大于待付金额,会发生供应商退款操作
+            BigDecimal waitRefund = MathUtil.sub(differencePrice, waitPayShop);
+            String refundWay = payShopDifference.getRefundWay();
+            BigDecimal refundAmount = payShopDifference.getRefundAmount();
+            BigDecimal refundBalanceAmount = payShopDifference.getRefundBalanceAmount();
+            if (refundWay.equals("1")) {
+                //线下退
+                refundBalanceAmount = BigDecimal.ZERO;
+            } else if (refundWay.equals("2")) {
+                //欠款账簿
+                refundAmount = BigDecimal.ZERO;
+            } else {
+                //两种方式都有
+                refundWay = "3";
+            }
+            logger.info("待付waitRefund>>>" + waitRefund + ">>>refundAmount金额>>>" + refundAmount + ">>>refundBalanceAmount金额>>>" + refundBalanceAmount);
+            if (MathUtil.compare(waitRefund, MathUtil.add(refundAmount, refundBalanceAmount)) == 0) {
+                CmRefundShop refundShop = new CmRefundShop();
+                refundShop.setShopID(shopOrder.getShopID().toString());
+                refundShop.setOperator(currentUser.getId());
+                refundShop.setOperatTime(time);
+                refundShop.setRefundWay(refundWay);
+                refundShop.setRefundAmount(refundAmount.doubleValue());
+                refundShop.setRefundBalanceAmount(refundBalanceAmount.doubleValue());
+                refundShop.setRefundType(payShopDifference.getRefundType().toString());
+                refundShop.setRemark(payShopDifference.getRemark());
+                refundShop.setDelFlag("0");
+                cmRefundShopDao.insert(refundShop);
 
-                   CmRefundShopRecord record = new CmRefundShopRecord();
-                   record.setShopID(String.valueOf(shopOrder.getShopID()));
-                   record.setShopOrderID(shopOrder.getShopOrderID().toString());
-                   record.setShopOrderNo(shopOrder.getShopOrderNo());
-                   record.setRefundType("5");
-                   record.setRefundAmount(waitRefund.doubleValue());
-                   record.setRefundTime(time);
-                   record.setRefundShopID(refundShop.getId());
-                   record.setDelFlag("0");
-                   cmRefundShopRecordDao.insert(record);
-                   payShopDifference.setRefundShopId(Integer.valueOf(refundShop.getId()));
+                CmRefundShopRecord record = new CmRefundShopRecord();
+                record.setShopID(String.valueOf(shopOrder.getShopID()));
+                record.setShopOrderID(shopOrder.getShopOrderID().toString());
+                record.setShopOrderNo(shopOrder.getShopOrderNo());
+                record.setRefundType("5");
+                record.setRefundAmount(waitRefund.doubleValue());
+                record.setRefundTime(time);
+                record.setRefundShopID(refundShop.getId());
+                record.setDelFlag("0");
+                cmRefundShopRecordDao.insert(record);
+                payShopDifference.setRefundShopId(Integer.valueOf(refundShop.getId()));
 
-                   //修改付供应商状态
-                   newShopOrderDao.updatePayStatus(shopOrder.getShopOrderID(), "3");
-                   List<NewShopOrder> shopOrders = newShopOrderDao.findListByOrderID(shopOrder.getOrderID());
-                   AtomicBoolean isPayStatus = new AtomicBoolean(true);
-                   shopOrders.forEach(s -> {
-                       if (!"3".equals(s.getPayStatus())) {
-                           isPayStatus.set(false);
-                       }
-                   });
-                   if (isPayStatus.get()) {
-                       newOrderDao.updatePayStatus("3", shopOrder.getOrderID());
-                   }
-               } else {
-                   throw new Exception("退款金额异常");
-               }
-           }
-       }
+                //修改付供应商状态
+                newShopOrderDao.updatePayStatus(shopOrder.getShopOrderID(), "3");
+                List<NewShopOrder> shopOrders = newShopOrderDao.findListByOrderID(shopOrder.getOrderID());
+                AtomicBoolean isPayStatus = new AtomicBoolean(true);
+                shopOrders.forEach(s -> {
+                    if (!"3".equals(s.getPayStatus())) {
+                        isPayStatus.set(false);
+                    }
+                });
+                if (isPayStatus.get()) {
+                    newOrderDao.updatePayStatus("3", shopOrder.getOrderID());
+                }
+            } else {
+                throw new Exception("退款金额异常");
+            }
+        }
+//       }
         payShopDifference.setModifyUserId(Integer.parseInt(UserUtils.getUser().getId()));
         cmPayShopRecordDao.insertDifference(payShopDifference);
         if (!("3".equals(shopOrder.getPayStatus()) && 1 == payShopDifference.getType())) {
             newShopOrderDao.updateByDifferencePrice(payShopDifference.getType(), differencePrice, shopOrderId);
         }
-
-
-
     }
 
     public ChangePayShopOther shopOtherApplyEdit(Integer payShopId) {

+ 1 - 1
src/main/java/com/caimei/modules/order/service/NewShopOrderService.java

@@ -694,7 +694,7 @@ public class NewShopOrderService extends CrudService<NewShopOrderDao, NewShopOrd
         return newShopOrderDao.findSettleRecord(shopOrderID);
     }
 
-    public Integer payWay(Integer shoprderID){
+    public List<Integer> payWay(Integer shoprderID){
         return newShopOrderDao.payWay(shoprderID);
     }
 }