huangzhiguo 1 år sedan
förälder
incheckning
ceaa8771c2

+ 2 - 0
src/main/java/com/caimei/modules/order/dao/CmDiscernReceiptDao.java

@@ -79,6 +79,8 @@ public interface CmDiscernReceiptDao extends CrudDao<CmDiscernReceipt> {
     Double findOrderReceipt(@Param("orderID") Integer orderID);
     Double findShoOrderIDReceipt(@Param("shopOrderID") Integer orderID);
 
+    Double findShopReceipt(@Param("orderID") Integer orderID, @Param("shopOrderID") Integer shopOrderId);
+
     List<CmMainReceiptExport> gathering(@Param("orderID") Integer orderID);
 
     List<CmReturnedPurchase> exportRefund(CmDiscernReceipt cmDiscernReceipt);

+ 7 - 2
src/main/java/com/caimei/modules/order/service/CmDiscernReceiptService.java

@@ -166,8 +166,13 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
         for (CmReceiptOrderRelation relation : relations) {
             if (null != relation.getShopOrderId()) {
                 receiptOrderInfoVo = cmDiscernReceiptDao.getOrderInfoByShopOrderID(relation.getShopOrderId().toString());
-                BigDecimal add = MathUtil.add(receiptOrderInfoVo.getReceiptAmount(), cmDiscernReceiptService.findShoOrderIDReceipt(relation.getShopOrderId()));
-                receiptOrderInfoVo.setReceiptAmount(add.toString());
+                // 新版本以子订单为主
+                Double receipt = cmDiscernReceiptService.findShoOrderIDReceipt(relation.getShopOrderId());
+                if (null == receipt || 0d == receipt) {
+                    // 老数据保存为母订单号
+                    receipt = cmDiscernReceiptDao.findShopReceipt(Integer.parseInt(relation.getOrderID()), relation.getShopOrderId());
+                }
+                receiptOrderInfoVo.setReceiptAmount(receipt.toString());
                 List<CmReceiptOrderRelation> amountByOrderId = cmDiscernReceiptDao.getPaidAmountByOrderId(relation.getShopOrderId());
                 // 子订单应付金额
                 needAmount += Double.parseDouble(receiptOrderInfoVo.getShopOrderAmount());

+ 18 - 0
src/main/resources/mappings/modules/order/CmDiscernReceiptMapper.xml

@@ -1143,6 +1143,24 @@
           and cdr.delFlag = '0' and cdr.receiptStatus = '3' and cdr.payWay = '2'
 	</select>
 
+    <select id="findShopReceipt" resultType="java.lang.Double">
+        SELECT SUM(associateAmount) FROM (
+             SELECT
+                 SUM(associateAmount) AS associateAmount
+             FROM cm_receipt_order_relation cror
+                      LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
+             WHERE relationType = 2 AND orderId = 18753
+               AND cror.delFlag = '0' AND cror.relationType = '2' AND cdr.delFlag = '0'
+             UNION
+             SELECT
+                 SUM(associateAmount) AS associateAmount
+             FROM cm_receipt_order_relation cror
+                      LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
+             WHERE relationType = 1 AND orderId = 20389
+               AND cror.delFlag = '0' AND cror.relationType = '2' AND cdr.delFlag = '0'
+         ) AS d
+    </select>
+
     <select id="gathering" resultType="com.caimei.modules.order.entity.CmMainReceiptExport">
 		SELECT
 			d.receiptDate,d.payType