Browse Source

Merge remote-tracking branch 'origin/developer' into developerL

# Conflicts:
#	src/main/java/com/caimei/modules/order/service/NewOrderService.java
kaick 1 year ago
parent
commit
36cc2b7b56
22 changed files with 972 additions and 438 deletions
  1. 8 0
      src/main/java/com/caimei/modules/order/dao/CmDiscernReceiptDao.java
  2. 45 0
      src/main/java/com/caimei/modules/order/entity/NewShopOrder.java
  3. 9 0
      src/main/java/com/caimei/modules/order/entity/ReceiptDetailVo.java
  4. 65 0
      src/main/java/com/caimei/modules/order/entity/ReceiptOrderInfoVo.java
  5. 165 75
      src/main/java/com/caimei/modules/order/service/CmDiscernReceiptService.java
  6. 201 45
      src/main/java/com/caimei/modules/order/service/NewOrderService.java
  7. 14 14
      src/main/java/com/caimei/modules/order/web/NewOrderController.java
  8. 1 1
      src/main/java/com/caimei/modules/user/dao/NewCmShopDao.java
  9. 9 0
      src/main/java/com/caimei/modules/user/entity/NewCmShop.java
  10. 1 2
      src/main/java/com/caimei/modules/user/service/NewCmShopService.java
  11. 68 27
      src/main/resources/mappings/modules/order/CmDiscernReceiptMapper.xml
  12. 4 0
      src/main/resources/mappings/modules/order/CmReceiptOrderRelationMapper.xml
  13. 1 1
      src/main/resources/mappings/modules/order/ShopOrderMapper.xml
  14. 1 0
      src/main/resources/mappings/modules/user/CmSpMapper.xml
  15. 4 0
      src/main/resources/mappings/modules/user/NewCmShopMapper.xml
  16. 1 1
      src/main/resources/mappings/modules/weisha/CmMallOrganizeMapper.xml
  17. 252 214
      src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptForm.jsp
  18. 3 2
      src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptList.jsp
  19. 3 3
      src/main/webapp/WEB-INF/views/modules/order/newOrderList.jsp
  20. 41 4
      src/main/webapp/WEB-INF/views/modules/order/orderDetail.jsp
  21. 67 49
      src/main/webapp/WEB-INF/views/modules/product-new/productEdit.jsp
  22. 9 0
      src/main/webapp/WEB-INF/views/modules/user/newCmShopSetForm.jsp

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

@@ -18,6 +18,8 @@ import java.util.Map;
 @MyBatisDao
 @MyBatisDao
 public interface CmDiscernReceiptDao extends CrudDao<CmDiscernReceipt> {
 public interface CmDiscernReceiptDao extends CrudDao<CmDiscernReceipt> {
 
 
+    List<Map<String, Object>> getShopOrderIDStr(@Param("id") String id);
+
     List<Map<String, Object>> getOrderIDStr(@Param("id") String id);
     List<Map<String, Object>> getOrderIDStr(@Param("id") String id);
 
 
     ReceiptDetailVo getInfos(@Param("receiptID") String receiptID);
     ReceiptDetailVo getInfos(@Param("receiptID") String receiptID);
@@ -50,8 +52,14 @@ public interface CmDiscernReceiptDao extends CrudDao<CmDiscernReceipt> {
 
 
     CmDiscernReceipt findSmoothoutInfo(@Param("orderID") String orderID);
     CmDiscernReceipt findSmoothoutInfo(@Param("orderID") String orderID);
 
 
+    CmDiscernReceipt findSmoothoutshopInfo(@Param("shopOrderId") Integer shopOrderId);
+
+    List<CmReceiptOrderRelation> getPaidAmountByOrderId(@Param("shopOrderId") Integer shopOrderId);
+
     double getAssociateAmount(@Param("orderID") String orderID);
     double getAssociateAmount(@Param("orderID") String orderID);
 
 
+    double getShopAssociateAmount(@Param("shopOrderId") String shopOrderId);
+
     double getReturnBalanceAmount(@Param("receiptId") String receiptId);
     double getReturnBalanceAmount(@Param("receiptId") String receiptId);
 
 
     List<CmMainReceiptExport> exportOnlyBalancePay(CmDiscernReceipt cmDiscernReceipt);
     List<CmMainReceiptExport> exportOnlyBalancePay(CmDiscernReceipt cmDiscernReceipt);

+ 45 - 0
src/main/java/com/caimei/modules/order/entity/NewShopOrder.java

@@ -65,6 +65,11 @@ public class NewShopOrder extends DataEntity<NewShopOrder> {
     private Integer canRefundBeans;//    int(11) comment '可以退还的采美豆个数',
     private Integer canRefundBeans;//    int(11) comment '可以退还的采美豆个数',
     private Integer orderDeliveryID;//   int(1) comment '运费订单ID',
     private Integer orderDeliveryID;//   int(1) comment '运费订单ID',
     private Double freePostageFee;//    decimal(10,2) comment '订单包邮时本该支付的运费',
     private Double freePostageFee;//    decimal(10,2) comment '订单包邮时本该支付的运费',
+    private String associationType;//订单关联方式: 1手动 2自动
+    private String confirmType;    // 收款确认类型(1 小额抹平确认,2 大额抹平确认,3 大额退款余额,4 确认关联)
+    private boolean receiptOrderFlag;// 判断订单中抹平的订单是否是和多个订单一起支付的,
+    private Double orderReceivedAmount;//订单已收金额(此收款只计算线上线下收款记录payableAmount表金额)
+    private Double returnBalanceAmount;// 退款余额金额
 
 
 
 
 
 
@@ -620,6 +625,46 @@ public class NewShopOrder extends DataEntity<NewShopOrder> {
         this.freePostageFee = freePostageFee;
         this.freePostageFee = freePostageFee;
     }
     }
 
 
+    public String getAssociationType() {
+        return associationType;
+    }
+
+    public void setAssociationType(String associationType) {
+        this.associationType = associationType;
+    }
+
+    public String getConfirmType() {
+        return confirmType;
+    }
+
+    public void setConfirmType(String confirmType) {
+        this.confirmType = confirmType;
+    }
+
+    public boolean isReceiptOrderFlag() {
+        return receiptOrderFlag;
+    }
+
+    public void setReceiptOrderFlag(boolean receiptOrderFlag) {
+        this.receiptOrderFlag = receiptOrderFlag;
+    }
+
+    public Double getOrderReceivedAmount() {
+        return orderReceivedAmount;
+    }
+
+    public void setOrderReceivedAmount(Double orderReceivedAmount) {
+        this.orderReceivedAmount = orderReceivedAmount;
+    }
+
+    public Double getReturnBalanceAmount() {
+        return returnBalanceAmount;
+    }
+
+    public void setReturnBalanceAmount(Double returnBalanceAmount) {
+        this.returnBalanceAmount = returnBalanceAmount;
+    }
+
     public Integer getFreePostageTicketID() {
     public Integer getFreePostageTicketID() {
         return freePostageTicketID;
         return freePostageTicketID;
     }
     }

+ 9 - 0
src/main/java/com/caimei/modules/order/entity/ReceiptDetailVo.java

@@ -26,6 +26,7 @@ public class ReceiptDetailVo {
     private String confirmType;// 确认订单类型:1小额抹平确认,2大额抹平确认,3大额退款余额,4确认关联
     private String confirmType;// 确认订单类型:1小额抹平确认,2大额抹平确认,3大额退款余额,4确认关联
     private String smsContent;     //短信内容
     private String smsContent;     //短信内容
     private String cancelReason;//撤销原因
     private String cancelReason;//撤销原因
+    private Double needAmount;  // 子订单应该总金额
     /**
     /**
      * 返佣关联备注
      * 返佣关联备注
      */
      */
@@ -60,6 +61,14 @@ public class ReceiptDetailVo {
         this.vipInfo = vipInfo;
         this.vipInfo = vipInfo;
     }
     }
 
 
+    public Double getNeedAmount() {
+        return needAmount;
+    }
+
+    public void setNeedAmount(Double needAmount) {
+        this.needAmount = needAmount;
+    }
+
     public String getRebateRemarks() {
     public String getRebateRemarks() {
         return rebateRemarks;
         return rebateRemarks;
     }
     }

+ 65 - 0
src/main/java/com/caimei/modules/order/entity/ReceiptOrderInfoVo.java

@@ -33,6 +33,15 @@ public class ReceiptOrderInfoVo {
     private Double payedShopAmount;     //已付供应商金额
     private Double payedShopAmount;     //已付供应商金额
     private Double refundsAmount;       //已退款供应商金额
     private Double refundsAmount;       //已退款供应商金额
 
 
+    private Integer identifying; // 查询标识
+
+
+    private String associationType;//订单关联方式: 1手动 2自动
+    private String confirmType;    // 收款确认类型(1 小额抹平确认,2 大额抹平确认,3 大额退款余额,4 确认关联)
+    private Double restAmount;      // 待付金额
+    private Double orderReceivedAmount;//订单已收金额(此收款只计算线上线下收款记录payableAmount表金额)
+    private Double returnBalanceAmount;// 退款余额金额
+    private Double accountAmount;//     decimal(20,2) comment '余额支付时使用的金额',
 
 
     public String getOrganizeID() {
     public String getOrganizeID() {
         return organizeID;
         return organizeID;
@@ -217,4 +226,60 @@ public class ReceiptOrderInfoVo {
     public void setShopOrderInfos(List<NewShopOrder> shopOrderInfos) {
     public void setShopOrderInfos(List<NewShopOrder> shopOrderInfos) {
         this.shopOrderInfos = shopOrderInfos;
         this.shopOrderInfos = shopOrderInfos;
     }
     }
+
+    public Integer getIdentifying() {
+        return identifying;
+    }
+
+    public void setIdentifying(Integer identifying) {
+        this.identifying = identifying;
+    }
+
+    public String getAssociationType() {
+        return associationType;
+    }
+
+    public void setAssociationType(String associationType) {
+        this.associationType = associationType;
+    }
+
+    public String getConfirmType() {
+        return confirmType;
+    }
+
+    public void setConfirmType(String confirmType) {
+        this.confirmType = confirmType;
+    }
+
+    public Double getRestAmount() {
+        return restAmount;
+    }
+
+    public void setRestAmount(Double restAmount) {
+        this.restAmount = restAmount;
+    }
+
+    public Double getOrderReceivedAmount() {
+        return orderReceivedAmount;
+    }
+
+    public void setOrderReceivedAmount(Double orderReceivedAmount) {
+        this.orderReceivedAmount = orderReceivedAmount;
+    }
+
+    public Double getReturnBalanceAmount() {
+        return returnBalanceAmount;
+    }
+
+    public void setReturnBalanceAmount(Double returnBalanceAmount) {
+        this.returnBalanceAmount = returnBalanceAmount;
+    }
+
+    public Double getAccountAmount() {
+        return accountAmount;
+    }
+
+    public void setAccountAmount(Double accountAmount) {
+        this.accountAmount = accountAmount;
+    }
 }
 }

+ 165 - 75
src/main/java/com/caimei/modules/order/service/CmDiscernReceiptService.java

@@ -21,6 +21,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
@@ -76,7 +78,21 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
             String type = "";
             String type = "";
             String no = "";
             String no = "";
             if ("1".equals(bean.getReceiptType()) || "3".equals(bean.getReceiptType()) || "5".equals(bean.getReceiptType())) {
             if ("1".equals(bean.getReceiptType()) || "3".equals(bean.getReceiptType()) || "5".equals(bean.getReceiptType())) {
-                List<Map<String, Object>> orderIDs = cmDiscernReceiptDao.getOrderIDStr(bean.getId());
+                List<Map<String, Object>> orderIDs = cmDiscernReceiptDao.getShopOrderIDStr(bean.getId());
+                boolean flag = false;
+                boolean mapFlag = false;
+                if (orderIDs == null || orderIDs.size()<=0) {
+                    flag = true;
+                }
+                for (Map<String, Object> m : orderIDs){
+                    mapFlag = ObjectUtils.isEmpty(m);
+                }
+                if (!mapFlag && orderIDs != null && orderIDs.size()>0 && null == orderIDs.get(0).get("shopOrderId")) {
+                    flag = true;
+                }
+                if (flag) {
+                    orderIDs = cmDiscernReceiptDao.getOrderIDStr(bean.getId());
+                }
                 for (Map<String, Object> map : orderIDs) {
                 for (Map<String, Object> map : orderIDs) {
                     if (!ObjectUtils.isEmpty(map)) {
                     if (!ObjectUtils.isEmpty(map)) {
                         if ("".equals(type)) {
                         if ("".equals(type)) {
@@ -99,9 +115,11 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
                             type += ("<br>" + (map.get("orderType").toString().equals("0") ? "协销" : "自主"));
                             type += ("<br>" + (map.get("orderType").toString().equals("0") ? "协销" : "自主"));
                         }
                         }
                         if ("".equals(no)) {
                         if ("".equals(no)) {
-                            no += "<a href='/a/order/detail?id=" + map.get("orderID") + "'>" + map.get("orderNo") + "</a>";
+                            // no += "<a href='/a/order/detail?id=" + map.get("orderID") + "'>" + map.get("shopOrderNo") + "</a>";
+                            no += "<a href='/a/order/detail?id=" + map.get("orderID") + "&shopOrderID=" + map.get("shopOrderId") + "'>" + "子订单" + map.get("shopOrderNo") + "("+map.get("shopOrderId")+")" + "</a>";
                         } else {
                         } else {
-                            no += ("<br><a href='/a/order/detail?id=" + map.get("orderID") + "'>" + map.get("orderNo")) + "</a>";
+                            // no += ("<br><a href='/a/order/detail?id=" + map.get("orderID") + "'>" + map.get("shopOrderNo")) + "</a>";
+                            no += ("<br><a href='/a/order/detail?id=" + map.get("orderID") + "&shopOrderID=" + map.get("shopOrderId") + "'>" + "子订单" + map.get("shopOrderNo") + "("+map.get("shopOrderId")+")") + "</a>";
                         }
                         }
                     }
                     }
                 }
                 }
@@ -143,80 +161,152 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
 //        vo.setReceiptOrderFlag(receiptOrderFlag);//设置一款多单状态
 //        vo.setReceiptOrderFlag(receiptOrderFlag);//设置一款多单状态
         List<ReceiptOrderInfoVo> orderInfos = new ArrayList<>(); //一个收款可能会关联了一个或多个订单
         List<ReceiptOrderInfoVo> orderInfos = new ArrayList<>(); //一个收款可能会关联了一个或多个订单
         ReceiptOrderInfoVo receiptOrderInfoVo = null;
         ReceiptOrderInfoVo receiptOrderInfoVo = null;
-        if(null!=cmDiscernReceipt.getShopOrderId()){
-            receiptOrderInfoVo=cmDiscernReceiptDao.getOrderInfoByShopOrderID(cmDiscernReceipt.getShopOrderId().toString());
-            BigDecimal add = MathUtil.add(receiptOrderInfoVo.getReceiptAmount(),cmDiscernReceiptService.findShoOrderIDReceipt(cmDiscernReceipt.getShopOrderId()));
-            receiptOrderInfoVo.setReceiptAmount(add.toString());
-            orderInfos.add(receiptOrderInfoVo);
+        double needAmount = 0d;
+        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());
+                List<CmReceiptOrderRelation> amountByOrderId = cmDiscernReceiptDao.getPaidAmountByOrderId(relation.getShopOrderId());
+                // 子订单应付金额
+                needAmount += Double.parseDouble(receiptOrderInfoVo.getShopOrderAmount());
+                // 收款金额
+                for (CmReceiptOrderRelation receiptOrderRelation : amountByOrderId) {
+                    if (!receiptOrderRelation.getReceiptID().equals(cmDiscernReceipt.getId())) {
+                        needAmount -= Double.parseDouble(receiptOrderRelation.getAssociateAmount());
+                    }
+                }
+                orderInfos.add(receiptOrderInfoVo);
+                //是否抹平支付过(抹平最多只允许存在一次)
+                CmDiscernReceipt cmDiscernReceiptInfo = cmDiscernReceiptDao.findSmoothoutshopInfo(Integer.parseInt(receiptOrderInfoVo.getShopOrderID()));
+                if (null != cmDiscernReceiptInfo) {
+                    receiptOrderInfoVo.setAssociationType(cmDiscernReceiptInfo.getAssociationType());
+                    String confirmType = cmDiscernReceiptInfo.getConfirmType();
+                    receiptOrderInfoVo.setConfirmType(confirmType);
+
+                    // 是否是一比款收了多个订单
+                    if (StringUtils.equals(confirmType, "1") || StringUtils.equals(confirmType, "2") || StringUtils.equals(confirmType, "3")) {
+                        List<CmReceiptOrderRelation> byReceiptList = cmReceiptOrderRelationService.findByReceiptID(cmDiscernReceiptInfo.getId());
+                        if (CollectionUtils.isNotEmpty(byReceiptList) && byReceiptList.size() > 1) {
+                            receiptOrderInfoVo.setReceiptOrderFlag(true);
+                        }
+                    }
+                    if (StringUtils.equals(cmDiscernReceiptInfo.getConfirmType(), "1") || StringUtils.equals(cmDiscernReceiptInfo.getConfirmType(), "2") || StringUtils.equals(cmDiscernReceiptInfo.getConfirmType(), "3")) {
+                        receiptOrderInfoVo.setRestAmount(0d);
+                    }
+                }
+                // 订单已收款才会出现抹平或者多收退余额,(已收再退款或者撤销退款订单即使存在抹平也需要当未抹平重新计算付款)
+                String receiptStatus = receiptOrderInfoVo.getReceiptStatus();
+                if (StringUtils.equals("3", receiptStatus)) {
+                    if (null != cmDiscernReceiptInfo) {
+                        String confirmType = cmDiscernReceiptInfo.getConfirmType();
+                        receiptOrderInfoVo.setConfirmType(confirmType);
+                        double associateAmount = cmDiscernReceiptDao.getShopAssociateAmount(String.valueOf(receiptOrderInfoVo.getShopOrderID()));
+                        receiptOrderInfoVo.setOrderReceivedAmount(associateAmount + receiptOrderInfoVo.getAccountAmount());
+                        //大额退余额
+                        if (StringUtils.equals("3", confirmType)) {
+                            String shopReceiptId = cmDiscernReceiptInfo.getId();
+                            double returnBalanceAmount = cmDiscernReceiptDao.getReturnBalanceAmount(shopReceiptId);
+                            receiptOrderInfoVo.setReturnBalanceAmount(returnBalanceAmount);
+                        }
+                    }
+                }
+                if (null != receiptOrderInfoVo) {
+                    receiptOrderInfoVo.setRelationType("1");
+                    if ("5".equals(vo.getReceiptType())) {
+                        //供应商退款,已退金额
+                        List<CmRefundShopRecord> records = cmRefundShopRecordDao.getRefundedRecords(receiptOrderInfoVo.getShopOrderID());
+                        if (records != null && records.size() > 0) {
+                            Double collect = records.stream().mapToDouble(CmRefundShopRecord::getRefundAmount).sum();
+                            receiptOrderInfoVo.setRefundsAmount(collect);
+                        } else {
+                            receiptOrderInfoVo.setRefundsAmount(0d);
+                        }
+                    }
+                }
+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                String oldDateString = "2023-06-29";
+                try {
+                    Date oldDate = dateFormat.parse(oldDateString);
+                    if (oldDate.after(dateFormat.parse(relation.getReceiptDate()))) {
+                        receiptOrderInfoVo.setIdentifying(2);
+                    } else {
+                        receiptOrderInfoVo.setIdentifying(1);
+                    }
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+                List<ReceiptRecordVo> receiptRecordByOrderID = cmDiscernReceiptDao.findReceiptRecordByOrderID(receiptOrderInfoVo);
+                // 暂时不启用抹平明细
+                if (CollectionUtils.isNotEmpty(receiptRecordByOrderID)) {
+                    for (ReceiptRecordVo v : receiptRecordByOrderID) {
+                        if (StringUtils.equals("3", v.getConfirmType())) {
+                            String id = v.getReceiptID();
+                            double returnBalanceAmount = cmDiscernReceiptDao.getReturnBalanceAmount(id);
+                            v.setReturnBalanceAmount(returnBalanceAmount);
+                        }
+                        //统计当前已收
+                        double associateAmount = cmDiscernReceiptDao.getShopAssociateAmount(String.valueOf(receiptOrderInfoVo.getShopOrderID()));
+                        v.setOrderReceivedAmount(associateAmount);
+                    }
+                }
+                //一个订单又包含了多个收款记录
+                receiptOrderInfoVo.setReceiptRecordVo(receiptRecordByOrderID);
+            }
         }
         }
-
-//        for (CmReceiptOrderRelation relation : relations) {
-//            ReceiptOrderInfoVo roi = null; //这是通过订单列表上的一条收款记录对应的多个订单中的一个订单
-//            if ("1".equals(relation.getRelationType())) { // relation.orderID 指的是子订单id
-//                roi = cmDiscernReceiptDao.getOrderInfoByShopOrderID(relation.getOrderID());
-//                if (null != roi) {
-//                    roi.setRelationType("1");
-//                    if ("5".equals(vo.getReceiptType())) {
-//                        //供应商退款,已退金额
-//                        List<CmRefundShopRecord> records = cmRefundShopRecordDao.getRefundedRecords(roi.getShopOrderID());
-//                        if (records != null && records.size() > 0) {
-//                            Double collect = records.stream().mapToDouble(CmRefundShopRecord::getRefundAmount).sum();
-//                            roi.setRefundsAmount(collect);
-//                        } else {
-//                            roi.setRefundsAmount(0d);
-//                        }
-//                        //查询收款供应商退款金额
-//                        /*BigDecimal shopRefundAmount = cmRefundShopRecordDao.findShopRefund(Integer.valueOf(roi.getShopOrderID()));
+        vo.setNeedAmount(needAmount);
+        /*for (CmReceiptOrderRelation relation : relations) {
+            ReceiptOrderInfoVo roi = null; //这是通过订单列表上的一条收款记录对应的多个订单中的一个订单
+            if ("1".equals(relation.getRelationType())) { // relation.orderID 指的是子订单id
+                roi = cmDiscernReceiptDao.getOrderInfoByShopOrderID(relation.getShopOrderId().toString());
+                if (null != roi) {
+                    roi.setRelationType("1");
+                    if ("5".equals(vo.getReceiptType())) {
+                        //供应商退款,已退金额
+                        List<CmRefundShopRecord> records = cmRefundShopRecordDao.getRefundedRecords(roi.getShopOrderID());
+                        if (records != null && records.size() > 0) {
+                            Double collect = records.stream().mapToDouble(CmRefundShopRecord::getRefundAmount).sum();
+                            roi.setRefundsAmount(collect);
+                        } else {
+                            roi.setRefundsAmount(0d);
+                        }
+                        //查询收款供应商退款金额
+//                        BigDecimal shopRefundAmount = cmRefundShopRecordDao.findShopRefund(Integer.valueOf(roi.getShopOrderID()));
 //                        BigDecimal refundsAmount = MathUtil.add(roi.getRefundsAmount(), shopRefundAmount);
 //                        BigDecimal refundsAmount = MathUtil.add(roi.getRefundsAmount(), shopRefundAmount);
-//                        roi.setRefundsAmount(refundsAmount.doubleValue());*/
-//                    }
-//                }
-//            }
-//            if ("2".equals(relation.getRelationType())) { // relation.orderID 指的是主订单id
-//                roi = cmDiscernReceiptDao.getOrderInfoByOrderID(relation.getOrderID());
-//                if (null != roi) {
-//                    roi.setRelationType("2");
-//                    if (0 == roi.getOnlinePayFlag()) {
-//                        // 可以线上支付,查询子订单信息
-//                        List<NewShopOrder> shopOrderInfos = cmDiscernReceiptDao.getShopOrderInfos(null, relation.getOrderID());
-//                        roi.setShopOrderInfos(shopOrderInfos);
-//                    }
-//                }
-//            }
-//            if (null != roi) {
-//                List<ReceiptRecordVo> receiptRecordByOrderID = cmDiscernReceiptDao.findReceiptRecordByOrderID(roi);
-//                //                暂时不启用抹平明细
-//                if (CollectionUtils.isNotEmpty(receiptRecordByOrderID)) {
-//                    for (ReceiptRecordVo v : receiptRecordByOrderID) {
-//                        if (StringUtils.equals("3", v.getConfirmType())) {
-//                            String id = v.getReceiptID();
-//                            double returnBalanceAmount = cmDiscernReceiptDao.getReturnBalanceAmount(id);
-//                            v.setReturnBalanceAmount(returnBalanceAmount);
-//                        }
-//                        //统计当前已收
-//                        double associateAmount = cmDiscernReceiptDao.getAssociateAmount(String.valueOf(roi.getOrderID()));
-//                        v.setOrderReceivedAmount(associateAmount);
-//                    }
-//                }
-//                //一个订单又包含了多个收款记录
-//                roi.setReceiptRecordVo(receiptRecordByOrderID);
-//                orderInfos.add(roi);
-//            }
-//        }
-//        if ("6".equals(vo.getReceiptType())) {
-//            // 3超级会员款
-//            ReceiptVipInfoVo receiptVipInfo = cmDiscernReceiptDao.getReceiptVipInfo(vo.getReceiptID());
-//            vo.setVipInfo(receiptVipInfo);
-//        }
-//        if ("7".equals(vo.getReceiptType())) {
-//            // 二手商品上架费
-//
-//        }
-//        if ("8".equals(vo.getReceiptType())) {
-//            //优惠券购买费
-//            ReceipCouponInfoVo couponInfo = cmDiscernReceiptDao.getCouponInfo(vo.getReceiptID());
-//            vo.setCouponInfo(couponInfo);
-//        }
+//                        roi.setRefundsAmount(refundsAmount.doubleValue());
+                    }
+                }
+            }
+            if ("2".equals(relation.getRelationType())) { // relation.orderID 指的是主订单id
+                roi = cmDiscernReceiptDao.getOrderInfoByOrderID(relation.getOrderID());
+                if (null != roi) {
+                    roi.setRelationType("2");
+                    if (0 == roi.getOnlinePayFlag()) {
+                        // 可以线上支付,查询子订单信息
+                        List<NewShopOrder> shopOrderInfos = cmDiscernReceiptDao.getShopOrderInfos(null, relation.getOrderID());
+                        roi.setShopOrderInfos(shopOrderInfos);
+                    }
+                }
+            }
+            if (null != roi) {
+
+                orderInfos.add(roi);
+            }
+        }*/
+        /*if ("6".equals(vo.getReceiptType())) {
+            // 3超级会员款
+            ReceiptVipInfoVo receiptVipInfo = cmDiscernReceiptDao.getReceiptVipInfo(vo.getReceiptID());
+            vo.setVipInfo(receiptVipInfo);
+        }
+        if ("7".equals(vo.getReceiptType())) {
+            // 二手商品上架费
+
+        }
+        if ("8".equals(vo.getReceiptType())) {
+            //优惠券购买费
+            ReceipCouponInfoVo couponInfo = cmDiscernReceiptDao.getCouponInfo(vo.getReceiptID());
+            vo.setCouponInfo(couponInfo);
+        }*/
         vo.setOrderInfos(orderInfos);
         vo.setOrderInfos(orderInfos);
         return vo;
         return vo;
     }
     }

+ 201 - 45
src/main/java/com/caimei/modules/order/service/NewOrderService.java

@@ -79,7 +79,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
     @Resource
     @Resource
     private NewShopOrderDao newShopOrderDao;
     private NewShopOrderDao newShopOrderDao;
     @Resource
     @Resource
-    private NewShopOrderService newShopOrderService;
+    private NewOrderService newOrderService;
     @Resource
     @Resource
     private NewCmClubDao newCmClubDao;
     private NewCmClubDao newCmClubDao;
     @Resource
     @Resource
@@ -133,7 +133,17 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
 
 
 
 
     public List<CmOrderPaymentVoucherVo> findVoucherVoOrderID( Integer shopOrderId){
     public List<CmOrderPaymentVoucherVo> findVoucherVoOrderID( Integer shopOrderId){
-        return newOrderDao.findVoucherVoOrderID(shopOrderId);
+        List<CmOrderPaymentVoucherVo> voucherVo = newOrderDao.findVoucherVoOrderID(shopOrderId);
+        if (null != voucherVo &&voucherVo.size() > 0) {
+            for(CmOrderPaymentVoucherVo vou : voucherVo) {
+                if (vou.getRemarks().length() > 100) {
+                    String start = vou.getRemarks().substring(0, 100);
+                    String end = vou.getRemarks().substring(100, vou.getRemarks().length());
+                    vou.setRemarks(start + "<br>" + end);
+                }
+            }
+        }
+        return voucherVo;
     }
     }
 
 
     @Transactional(readOnly = false)
     @Transactional(readOnly = false)
@@ -1302,28 +1312,171 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
             BigDecimal payTotalFee=new BigDecimal(0);
             BigDecimal payTotalFee=new BigDecimal(0);
             if (CollectionUtils.isNotEmpty(shopOrders)) {
             if (CollectionUtils.isNotEmpty(shopOrders)) {
                 for (NewShopOrder shopOrder : shopOrders) {
                 for (NewShopOrder shopOrder : shopOrders) {
-                    //累加子订单总金额
-                    payTotalFee = MathUtil.add(payTotalFee, shopOrder.getRealPay() != null ? shopOrder.getRealPay() : shopOrder.getNeedPayAmount());
-                    //子订单初始化
-                    newShopOrderService.initCmShopOrder(shopOrder);
-                    shopOrder.getNewOrderProducts().forEach(orderProduct->{
-                        //是否二手订单
+                     payTotalFee = MathUtil.add(payTotalFee,shopOrder.getRealPay() != null ? shopOrder.getRealPay() : shopOrder.getNeedPayAmount());
+
+                    BigDecimal add = MathUtil.add(shopOrder.getReceiptAmount(),cmDiscernReceiptService.findShoOrderIDReceipt(shopOrder.getShopOrderID()));
+                    shopOrder.setReceiptAmount(add.doubleValue());
+                    BigDecimal sub = MathUtil.sub((shopOrder.getRealPay() != null ? shopOrder.getRealPay() : shopOrder.getNeedPayAmount()).doubleValue()
+                            , shopOrder.getReceiptAmount().doubleValue());
+                    shopOrder.setRestAmount(sub.doubleValue());
+
+                    if (1 == shopOrder.getStatus()) {
+                        if ("1".equals(shopOrder.getReceiptStatus()) && "1".equals(shopOrder.getSendOutStatus())) {
+                            shopOrder.setStatus(11);
+                        } else if ("1".equals(shopOrder.getReceiptStatus()) && "2".equals(shopOrder.getSendOutStatus())) {
+                            shopOrder.setStatus(12);
+                        } else if ("1".equals(shopOrder.getReceiptStatus()) && "3".equals(shopOrder.getSendOutStatus())) {
+                            shopOrder.setStatus(13);
+                        } else if ("2".equals(shopOrder.getReceiptStatus()) && "1".equals(shopOrder.getSendOutStatus())) {
+                            shopOrder.setStatus(21);
+                        } else if ("2".equals(shopOrder.getReceiptStatus()) && "2".equals(shopOrder.getSendOutStatus())) {
+                            shopOrder.setStatus(22);
+                        } else if ("2".equals(shopOrder.getReceiptStatus()) && "3".equals(shopOrder.getSendOutStatus())) {
+                            shopOrder.setStatus(23);
+                        } else if ("3".equals(shopOrder.getReceiptStatus()) && "1".equals(shopOrder.getSendOutStatus())) {
+                            shopOrder.setStatus(31);
+                        } else if ("3".equals(shopOrder.getReceiptStatus()) && "2".equals(shopOrder.getSendOutStatus())) {
+                            shopOrder.setStatus(32);
+                        } else if ("3".equals(shopOrder.getReceiptStatus()) && "3".equals(shopOrder.getSendOutStatus())) {
+                            shopOrder.setStatus(33);
+                        }
+                    }
+                    //拼接运费
+                    Double ColdChina = Double.valueOf(700);
+                    String shopPostFlag = shopOrder.getShopPostFlag()!=null?shopOrder.getShopPostFlag():"-2";
+                    String PostageInfo = null;
+                    if (null != shopOrder.getIsColdChina() && shopOrder.getIsColdChina() == 1) {
+                        if ("2" == shopOrder.getShopPostFlag()) {
+                            // 到付
+                            PostageInfo = "¥" + ColdChina + "(" + (shopOrder.getIsColdChina() == 1 ? "冷链费: ¥" + ColdChina + "," : "") + "其他: 到付)";
+                        } else if ("0" == shopOrder.getShopPostFlag()) {
+                            // 包邮
+                            PostageInfo = "¥" + ColdChina + "(" + (shopOrder.getIsColdChina() == 1 ? "冷链费: ¥" + ColdChina + "," : "") + "其他: 包邮)";
+                        } else {
+                            // 有运费
+                            PostageInfo = "¥" + MathUtil.add(shopOrder.getShopPostFee(), ColdChina) + "(" + (shopOrder.getIsColdChina() == 1 ? "冷链费: ¥" + ColdChina + "," : "") + "其他: ¥" + shopOrder.getShopPostFee() + ")";
+                        }
+                    } else {
+                        PostageInfo = shopPostFlag.equals("2") ? "到付" : shopPostFlag.equals("0") ? "包邮" : "¥" + shopOrder.getShopPostFee();
+                    }
+
+                    //支付凭证
+                    List<CmOrderPaymentVoucherVo> voucherVo = newOrderService.findVoucherVoOrderID(shopOrder.getShopOrderID() );
+                    shopOrder.setPostageInfo(PostageInfo);
+                    shopOrder.setVoucherVo(voucherVo);
+                    List<String> code = newShopOrderDao.findCommercialCode(shopOrder.getOrderID());
+                    for (String str : code) {
+                        if ("E1807059160".equals(str)) {
+                            shopOrder.setCommercialCode("E1807059160");
+                        }
+                    }
+                    List<NewOrderProduct> pList = newOrderProductDao.findListByShopOrderID(shopOrder.getShopOrderID());
+                    pList.forEach(orderProduct -> {
                         if ("2".equals(orderProduct.getProductCategory())) {
                         if ("2".equals(orderProduct.getProductCategory())) {
                             newOrder.setSecondHandOrderFlag("1");
                             newOrder.setSecondHandOrderFlag("1");
                         }
                         }
+                        if (orderProduct.getLadderPriceFlag() == 1) {
+                            // 查询订单商品阶梯价格
+                            List<OrderProductLadderPrice> ladderPriceList = newOrderProductDao.findladderPriceList(orderProduct.getOrderProductID());
+                            if (null != ladderPriceList && ladderPriceList.size() > 0) {
+                                IntStream.range(0, ladderPriceList.size()).forEach(i -> {
+                                    if (i == ladderPriceList.size() - 1) {
+                                        ladderPriceList.get(i).setBuyNumRangeShow("≥" + ladderPriceList.get(i).getBuyNum());
+                                    } else {
+                                        String buyNumRangeShow = ladderPriceList.get(i).getBuyNum() + "~" + (ladderPriceList.get(i + 1).getBuyNum() - 1);
+                                        ladderPriceList.get(i).setBuyNumRangeShow(buyNumRangeShow);
+                                    }
+                                });
+                                orderProduct.setOrderProductLadderPriceList(ladderPriceList);
+                            }
+                        }
                         //充值定金商品
                         //充值定金商品
                         if (6060 == orderProduct.getProductID()) {
                         if (6060 == orderProduct.getProductID()) {
                             newOrder.setRechargeGoods(1);
                             newOrder.setRechargeGoods(1);
                         }
                         }
+                        // 设置超级会员税费优惠
+                        if (null != orderProduct.getSvipPriceFlag() && orderProduct.getSvipPriceFlag() == 1 && "0".equals(orderProduct.getIncludedTax()) && ("1".equals(orderProduct.getInvoiceType()) || "2".equals(orderProduct.getInvoiceType()))) {
+                            orderProduct.setSvipTaxReduction(orderProduct.getSvipReduction() - (orderProduct.getPrice() - orderProduct.getDiscountPrice()));
+                        } else {
+                            orderProduct.setSvipTaxReduction(0d);
+                        }
+                        // sku信息
+                        List<CmSku> skuList = productDao.findSkuList(orderProduct.getProductID());
+                        orderProduct.setSkuList(skuList);
+                    });
+                    list.addAll(pList);
+                    shopOrder.setNewOrderProducts(pList);
+                    if (pList.stream().anyMatch(p -> p.getProductID().intValue() == 999))
+                        shopOrder.setPostFeeCos("1");
+                    pList.stream().forEach(item -> {
+                        if (NewOrderStatus.hasReturn(newOrder.getStatus())) {
+                            Integer returningNum = newOrderProductDao.getReturningNum(item.getOrderProductID());
+                            Integer returnedNum = newOrderProductDao.getReturnedNum(item.getOrderProductID());
+                            item.setReturningNum(returningNum);
+                            item.setReturnedNum(returnedNum);
+                        }
+                        /**确认收货信息*/
+                        if (NewOrderStatus.hasReceived(newOrder.getStatus())) {
+                            Integer receivedNum = newOrderProductDao.getReceivedNum(item.getOrderProductID());
+                            item.setReceivedNum(receivedNum);
+                        }
+                        String domain = SysConfig.getStringConfig("crm.server.domain");
+                        item.setProductImage(AppUtils.getProductImageURL(item.getProductImage(), AppKeys.ORIGINAL_PICTURE, domain));
+                        if (item != null && item.getOrderPromotionsId() != null && item.getOrderPromotionsId() > 0) {
+                            item.setProductPromotion(cmPromotionDao.findOrderPromotions(item.getOrderPromotionsId()));
+                        }
                     });
                     });
-                    //订单商品信息
-                    list.addAll(shopOrder.getNewOrderProducts());
+                    Double payed = cmPayShopRecordDao.sumByShopOrderID(shopOrder.getShopOrderID());
+                    shopOrder.setPayed(payed);
+                    //查询是否存在店铺促销活动
+                    CmPromotion shopPromotion = null;
+                    if (shopOrder.getOrderPromotionsId() != null && shopOrder.getOrderPromotionsId() > 0) {
+                        shopPromotion = cmPromotionDao.findOrderPromotions(shopOrder.getOrderPromotionsId());
+                        shopOrder.setShopPromotion(shopPromotion);
+                    }
+                    CmSecondHandDetail cmSecondHandDetail = cmSecondHandDetailDao.selectContactDockingPeople(shopOrder.getShopOrderNo());
+                    if (null != cmSecondHandDetail) {
+                        shopOrder.setContactName(cmSecondHandDetail.getContactName());
+                        shopOrder.setDockingPeopleName(cmSecondHandDetail.getDockingPeopleName());
+                    }
+                    //是否抹平支付过(抹平最多只允许存在一次)
+                    CmDiscernReceipt cmDiscernReceipt = cmDiscernReceiptDao.findSmoothoutshopInfo(shopOrder.getShopOrderID());
+                    if (null != cmDiscernReceipt) {
+                        shopOrder.setAssociationType(cmDiscernReceipt.getAssociationType());
+                        String confirmType = cmDiscernReceipt.getConfirmType();
+                        shopOrder.setConfirmType(confirmType);
+
+                        // 是否是一比款收了多个订单
+                        if (StringUtils.equals(confirmType, "1") || StringUtils.equals(confirmType, "2") || StringUtils.equals(confirmType, "3")) {
+                            List<CmReceiptOrderRelation> byReceiptList = cmReceiptOrderRelationService.findByReceiptID(cmDiscernReceipt.getId());
+                            if (CollectionUtils.isNotEmpty(byReceiptList) && byReceiptList.size() > 1) {
+                                shopOrder.setReceiptOrderFlag(true);
+                            }
+                        }
+                        if (StringUtils.equals(cmDiscernReceipt.getConfirmType(), "1") || StringUtils.equals(cmDiscernReceipt.getConfirmType(), "2") || StringUtils.equals(cmDiscernReceipt.getConfirmType(), "3")) {
+                            shopOrder.setRestAmount(0d);
+                        }
+                    }
+                    // 订单已收款才会出现抹平或者多收退余额,(已收再退款或者撤销退款订单即使存在抹平也需要当未抹平重新计算付款)
+                    String receiptStatus = shopOrder.getReceiptStatus();
+                    if (StringUtils.equals("3", receiptStatus)) {
+                        if (null != cmDiscernReceipt) {
+                            String confirmType = cmDiscernReceipt.getConfirmType();
+                            shopOrder.setConfirmType(confirmType);
+                            double associateAmount = cmDiscernReceiptDao.getShopAssociateAmount(String.valueOf(shopOrder.getShopOrderID()));
+                            shopOrder.setOrderReceivedAmount(associateAmount + shopOrder.getAccountAmount());
+                            //大额退余额
+                            if (StringUtils.equals("3", confirmType)) {
+                                String shopReceiptId = cmDiscernReceipt.getId();
+                                double returnBalanceAmount = cmDiscernReceiptDao.getReturnBalanceAmount(shopReceiptId);
+                                shopOrder.setReturnBalanceAmount(returnBalanceAmount);
+                            }
+                        }
+                    }
                 }
                 }
                 newOrder.setNewShopOrders(shopOrders);
                 newOrder.setNewShopOrders(shopOrders);
             }
             }
-            //主订单总金额
             newOrder.setPayTotalFee(payTotalFee.doubleValue());
             newOrder.setPayTotalFee(payTotalFee.doubleValue());
-
             if (CollectionUtils.isNotEmpty(list)) {
             if (CollectionUtils.isNotEmpty(list)) {
                 newOrder.setOrderProduct(list);
                 newOrder.setOrderProduct(list);
                 double freight = 0D;
                 double freight = 0D;
@@ -1470,38 +1623,36 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
     @Transactional(readOnly = false)
     @Transactional(readOnly = false)
     public void confirmOrder(Integer orderID, Integer shopOrderID) {
     public void confirmOrder(Integer orderID, Integer shopOrderID) {
         NewOrder order = get(orderID.toString());
         NewOrder order = get(orderID.toString());
-        List<NewShopOrder> newShopOrders=order.getNewShopOrders();
-
-        if (newShopOrders.stream().filter(newShopOrder -> newShopOrder.getStatus().equals(0)).collect(Collectors.toList()).size()==1) {
-            order.setConfirmFlag("1");//确认订单标识 后台确认 1
+        order.setConfirmFlag("1");//确认订单标识 后台确认 1
+        if (order.getNewShopOrders().stream().filter(newShopOrder -> newShopOrder.getStatus().equals(0)).collect(Collectors.toList()).size()==1) {
             order.setStatus("11");//订单状态变成 ==> 待收款待付款 11
             order.setStatus("11");//订单状态变成 ==> 待收款待付款 11
         }
         }
-        if(null!=shopOrderID){
-            //过滤子订单
-            newShopOrders = newShopOrders.stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(shopOrderID)).collect(Collectors.toList());
-            order.setNewShopOrders(newShopOrders);
-        }
-        newShopOrders.get(0).setStatus(1);//已确认
+        //过滤子订单
+        List<NewShopOrder> newShopOrders = order.getNewShopOrders().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(shopOrderID)).collect(Collectors.toList());
+        order.setNewShopOrders(newShopOrders);
 
 
-        //修改订单状态(余额抵扣)
-        if (order.getPayableAmount() != null) {
-            if (order.getPayableAmount() == 0 && order.getBalancePayFee() != null && order.getBalancePayFee() > 0) {
-                order.setStatus(NewOrderStatus.YISHOU_DAIFA.getCode());
-                order.setReceiptStatus("3");
-            } else if (order.getPayableAmount() != 0 && order.getBalancePayFee() != null && order.getBalancePayFee() > 0) {
-                order.setStatus(NewOrderStatus.BUSHOU_DAIFA.getCode());
-                order.setReceiptStatus("2");
-            }
-        }
+        order.getNewShopOrders().get(0).setStatus(1);//已确认
+
+
+//        //修改订单状态(余额抵扣)
+//        if (order.getPayableAmount() != null) {
+//            if (order.getPayableAmount() == 0 && order.getBalancePayFee() != null && order.getBalancePayFee() > 0) {
+//                order.setStatus(NewOrderStatus.YISHOU_DAIFA.getCode());
+//                order.setReceiptStatus("3");
+//            } else if (order.getPayableAmount() != 0 && order.getBalancePayFee() != null && order.getBalancePayFee() > 0) {
+//                order.setStatus(NewOrderStatus.BUSHOU_DAIFA.getCode());
+//                order.setReceiptStatus("2");
+//            }
+//        }
 
 
         //        order.getBalancePayFee()
         //        order.getBalancePayFee()
-        Double balancePayFee = newShopOrders.get(0).getAccountAmount();
+        Double balancePayFee = order.getNewShopOrders().get(0).getAccountAmount();
         //修改子订单状态(余额抵扣)
         //修改子订单状态(余额抵扣)
-        if (newShopOrders.get(0).getUseBalanceFlag() !=null&&newShopOrders.get(0).getUseBalanceFlag() == 1) {
-            if ( balancePayFee != null && balancePayFee ==newShopOrders.get(0).getRealPay()) {
-                newShopOrders.get(0).setReceiptStatus("3");
-            } else if ( balancePayFee != null && balancePayFee <newShopOrders.get(0).getRealPay()) {
-                newShopOrders.get(0).setReceiptStatus("2");
+        if (order.getNewShopOrders().get(0).getUseBalanceFlag() !=null&&order.getNewShopOrders().get(0).getUseBalanceFlag() == 1) {
+            if ( balancePayFee != null && balancePayFee ==order.getNewShopOrders().get(0).getRealPay()) {
+                order.getNewShopOrders().get(0).setReceiptStatus("3");
+            } else if ( balancePayFee != null && balancePayFee <order.getNewShopOrders().get(0).getRealPay()) {
+                order.getNewShopOrders().get(0).setReceiptStatus("2");
           }
           }
         }
         }
         Date date = new Date();
         Date date = new Date();
@@ -1509,13 +1660,15 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
         String curDateStr = sdf.format(date);
         String curDateStr = sdf.format(date);
         order.setConfirmTime(curDateStr);
         order.setConfirmTime(curDateStr);
 
 
+//        if (order.getBalancePayFee() != null && order.getBalancePayFee() > 0) {
         if (balancePayFee != null && balancePayFee > 0) {
         if (balancePayFee != null && balancePayFee > 0) {
             //已付金额
             //已付金额
-            double v = balancePayFee + newShopOrders.get(0).getReceiptAmount();
-            newShopOrders.get(0).setReceiptAmount(v);
-            saveDiscernReceipt(balancePayFee, orderID);
+            double v = balancePayFee + order.getNewShopOrders().get(0).getReceiptAmount();
+            order.getNewShopOrders().get(0).setReceiptAmount(v);
+            saveDiscernReceipt(balancePayFee, orderID, shopOrderID);
             //针对商品productId:6898,做兑换券操作(couponId:15)
             //针对商品productId:6898,做兑换券操作(couponId:15)
-            if ("3".equals(newShopOrders.get(0).getReceiptStatus())) {
+//            if ("3".equals(order.getReceiptStatus())) {
+            if ("3".equals(order.getNewShopOrders().get(0).getReceiptStatus())) {
 //                List<NewOrderProduct> orderProducts = newOrderProductDao.findListByOrderID(orderID);
 //                List<NewOrderProduct> orderProducts = newOrderProductDao.findListByOrderID(orderID);
                 List<NewOrderProduct> orderProducts = newShopOrders.get(0).getNewOrderProducts();
                 List<NewOrderProduct> orderProducts = newShopOrders.get(0).getNewOrderProducts();
                 for (NewOrderProduct orderProduct : orderProducts) {
                 for (NewOrderProduct orderProduct : orderProducts) {
@@ -1541,7 +1694,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
             }
             }
         }
         }
         newOrderDao.update(order);
         newOrderDao.update(order);
-        newShopOrderDao.update(newShopOrders.get(0));
+        newShopOrderDao.update(order.getNewShopOrders().get(0));
     }
     }
 
 
     /**
     /**
@@ -1549,7 +1702,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
      *
      *
      * @param balancePayFee 余额抵扣金额
      * @param balancePayFee 余额抵扣金额
      */
      */
-    private void saveDiscernReceipt(Double balancePayFee, Integer orderId) {
+    private void saveDiscernReceipt(Double balancePayFee, Integer orderId, Integer shopOrderId) {
         String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
         String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
         //保存余额到收款记录
         //保存余额到收款记录
         CmDiscernReceipt discernReceipt = new CmDiscernReceipt();
         CmDiscernReceipt discernReceipt = new CmDiscernReceipt();
@@ -1567,6 +1720,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
         CmReceiptOrderRelation relation = new CmReceiptOrderRelation();
         CmReceiptOrderRelation relation = new CmReceiptOrderRelation();
         relation.setReceiptID(discernReceipt.getId());
         relation.setReceiptID(discernReceipt.getId());
         relation.setOrderID(orderId.toString());
         relation.setOrderID(orderId.toString());
+        relation.setShopOrderId(shopOrderId);
         relation.setAssociateAmount(balancePayFee.toString());
         relation.setAssociateAmount(balancePayFee.toString());
         relation.setRelationType("2");
         relation.setRelationType("2");
         relation.setDelFlag("0");
         relation.setDelFlag("0");
@@ -2585,7 +2739,9 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
             //修改账户余额
             //修改账户余额
             user.setUserMoney(MathUtil.sub(user.getUserMoney(), balancePayFee).doubleValue());
             user.setUserMoney(MathUtil.sub(user.getUserMoney(), balancePayFee).doubleValue());
             //保存收款记录
             //保存收款记录
-            saveDiscernReceipt(balancePayFee.doubleValue(), orderID);
+            // todo 订单改版,收款记录需添加子订单id,退款以及其余子订单金额计算使用子订单Id
+            // todo 版本 暂时启用,后续启用余额抵扣,加入子订单Id
+            // saveDiscernReceipt(balancePayFee.doubleValue(), orderID);
             user.setAbleUserMoney(MathUtil.sub(user.getAbleUserMoney(), balancePayFee).doubleValue());
             user.setAbleUserMoney(MathUtil.sub(user.getAbleUserMoney(), balancePayFee).doubleValue());
             cmUserDao.updateMoney(user);
             cmUserDao.updateMoney(user);
             //保存余额收支记录
             //保存余额收支记录

+ 14 - 14
src/main/java/com/caimei/modules/order/web/NewOrderController.java

@@ -1262,20 +1262,6 @@ public class NewOrderController extends BaseController {
                 }
                 }
             }
             }
         }
         }
-        // 判断订单关闭环境
-        if (StringUtils.isNotBlank(order.getCloseReason())) {
-            if (order.getCloseReason().contains("超时")) {
-                order.setCloseReason("超时关闭");
-            } else if (order.getCloseReason().contains("后台手动关闭")) {
-                order.setCloseReason("后台手动关闭");
-            } else if (order.getCloseReason().contains("用户主动取消订单")) {
-                order.setCloseReason("客户主动关闭");
-            } else if (order.getCloseReason().contains("协销帮用户取消订单")) {
-                order.setCloseReason("协销关闭");
-            } else {
-                order.setCloseReason("未知");
-            }
-        }
         // 订单已收款才会出现抹平或者多收退余额,(已收再退款或者撤销退款订单即使存在抹平也需要当未抹平重新计算付款)
         // 订单已收款才会出现抹平或者多收退余额,(已收再退款或者撤销退款订单即使存在抹平也需要当未抹平重新计算付款)
         String receiptStatus = order.getReceiptStatus();
         String receiptStatus = order.getReceiptStatus();
         if (StringUtils.equals("3", receiptStatus)) {
         if (StringUtils.equals("3", receiptStatus)) {
@@ -1292,6 +1278,20 @@ public class NewOrderController extends BaseController {
                 }
                 }
             }
             }
         }
         }
+        // 判断订单关闭环境
+        if (StringUtils.isNotBlank(order.getCloseReason())) {
+            if (order.getCloseReason().contains("超时")) {
+                order.setCloseReason("超时关闭");
+            } else if (order.getCloseReason().contains("后台手动关闭")) {
+                order.setCloseReason("后台手动关闭");
+            } else if (order.getCloseReason().contains("用户主动取消订单")) {
+                order.setCloseReason("客户主动关闭");
+            } else if (order.getCloseReason().contains("协销帮用户取消订单")) {
+                order.setCloseReason("协销关闭");
+            } else {
+                order.setCloseReason("未知");
+            }
+        }
         //一个子订单只有一个商品时,不可拆分
         //一个子订单只有一个商品时,不可拆分
         int count = 0;
         int count = 0;
         for (NewShopOrder newShopOrder : order.getNewShopOrders()) {
         for (NewShopOrder newShopOrder : order.getNewShopOrders()) {

+ 1 - 1
src/main/java/com/caimei/modules/user/dao/NewCmShopDao.java

@@ -70,5 +70,5 @@ public interface NewCmShopDao extends CrudDao<NewCmShop> {
      * @param shop 供应商信息
      * @param shop 供应商信息
      * @return 结果
      * @return 结果
      */
      */
-    public int updateShop(NewCmShop shop);
+    int updateShop(NewCmShop shop);
 }
 }

+ 9 - 0
src/main/java/com/caimei/modules/user/entity/NewCmShop.java

@@ -83,6 +83,7 @@ public class NewCmShop extends DataEntity<NewCmShop> {
     private Integer shopType;//供应商类别 0未审核的二手供应商,普通1,新品供应商2,二手供应商3
     private Integer shopType;//供应商类别 0未审核的二手供应商,普通1,新品供应商2,二手供应商3
     private String cardNumber; //收款卡号
     private String cardNumber; //收款卡号
     private Integer chargeSupport;//线上支付手续费:默认1采美承担,2供应商承担
     private Integer chargeSupport;//线上支付手续费:默认1采美承担,2供应商承担
+    private Integer AccountOwnership; // 账号归属 0采美 1 供应商
     /**
     /**
      * 非持久化字段
      * 非持久化字段
      **/
      **/
@@ -1063,4 +1064,12 @@ public class NewCmShop extends DataEntity<NewCmShop> {
     public void setChargeSupport(Integer chargeSupport) {
     public void setChargeSupport(Integer chargeSupport) {
         this.chargeSupport = chargeSupport;
         this.chargeSupport = chargeSupport;
     }
     }
+
+    public Integer getAccountOwnership() {
+        return AccountOwnership;
+    }
+
+    public void setAccountOwnership(Integer accountOwnership) {
+        AccountOwnership = accountOwnership;
+    }
 }
 }

+ 1 - 2
src/main/java/com/caimei/modules/user/service/NewCmShopService.java

@@ -393,8 +393,7 @@ public class NewCmShopService extends CrudService<NewCmShopDao, NewCmShop> {
      * @return 结果
      * @return 结果
      */
      */
     @Transactional
     @Transactional
-    public int updateShop(NewCmShop shop)
-    {
+    public int updateShop(NewCmShop shop) {
         return newCmShopDao.updateShop(shop);
         return newCmShopDao.updateShop(shop);
     }
     }
 
 

+ 68 - 27
src/main/resources/mappings/modules/order/CmDiscernReceiptMapper.xml

@@ -55,6 +55,13 @@
         and cror.delFlag = 0 and cdr.receiptStatus in (3) and payWay != '3';
         and cror.delFlag = 0 and cdr.receiptStatus in (3) and payWay != '3';
     </select>
     </select>
 
 
+    <select id="getShopAssociateAmount" resultType="double">
+        select IFNULL(sum(cdr.receiptAmount),0) From cm_receipt_order_relation cror
+                                                         LEFT JOIN cm_discern_receipt cdr on cdr.id = cror.receiptID
+        where cror.shopOrderId =  #{shopOrderId}   and cror.relationType = '2' and cdr.delFlag = 0
+          and cror.delFlag = 0 and cdr.receiptStatus in (3) and payWay != '3';
+    </select>
+
 
 
     <select id="getReturnBalanceAmount" resultType="double">
     <select id="getReturnBalanceAmount" resultType="double">
         select  IFNULL(sum(amount),0) from cm_user_balance_record where balanceType = 2 and  receiptId = #{receiptId} and delFlag = 0;
         select  IFNULL(sum(amount),0) from cm_user_balance_record where balanceType = 2 and  receiptId = #{receiptId} and delFlag = 0;
@@ -805,28 +812,45 @@
 		WHERE id = #{id}
 		WHERE id = #{id}
 	</delete>
 	</delete>
 
 
-    <select id="getOrderIDStr" parameterType="string" resultType="map">
-		-- 	relationType值为1是为子订单ID,为2时为主订单ID)
-		select
-		(case when cror.relationType = '1'
-		then concat('子订单',cso.shopOrderNo,'(', cso.shopOrderID,')')
-		else concat(cou.orderNo,'(', cou.orderID,')')
-		end)  AS orderNo,
-		(CASE WHEN cror.relationType = '1'
-		THEN co.orderID
-		ELSE cou.orderID
-		END) AS orderID ,
-		(case when cror.relationType = '1'
-		then (select b.orderType from cm_shop_order b where cso.shopOrderID =  b.shopOrderID)
-		else (select  c.orderType from cm_order c where cou.orderID = c.orderID)
-		end) AS orderType
-		from cm_receipt_order_relation cror
-        left join cm_shop_order cso on cror.orderID = cso.shopOrderID
-		left join cm_order co on cso.orderID = co.orderID
-		LEFT JOIN cm_order cou ON cror.orderID = cou.orderID
-		where cror.receiptID = #{id} and cror.delFlag = '0'
+    <select id="getShopOrderIDStr" parameterType="string" resultType="map">
+        SELECT
+            cso.shopOrderId,
+            cso.shopOrderNo,
+            cso.orderId AS orderID,
+            (case when cror.relationType = '1'
+                      then (select b.orderType from cm_shop_order b where cso.shopOrderID =  b.shopOrderID)
+                  else (select  c.orderType from cm_order c where cso.orderID = c.orderID)
+                end) AS orderType
+        FROM cm_receipt_order_relation cror
+                 LEFT JOIN cm_shop_order cso ON cror.shopOrderId = cso.shopOrderID
+                 LEFT JOIN cm_order co ON cso.orderID = co.orderID
+                 LEFT JOIN cm_order cou ON cror.orderID = cou.orderID
+        WHERE cror.receiptID = #{id} AND cror.delFlag = '0'
 	</select>
 	</select>
 
 
+    <select id="getOrderIDStr" parameterType="string" resultType="map">
+        -- 	relationType值为1是为子订单ID,为2时为主订单ID)
+        select
+            cso.shopOrderId,
+            cso.shopOrderNo,
+            (case when cror.relationType = '1'
+                      then concat('子订单',cso.shopOrderNo,'(', cso.shopOrderID,')')
+                  else concat(cou.orderNo,'(', cou.orderID,')')
+                end)  AS orderNo,
+            (CASE WHEN cror.relationType = '1'
+                      THEN co.orderID
+                  ELSE cou.orderID
+                END) AS orderID ,
+            (case when cror.relationType = '1'
+                      then (select b.orderType from cm_shop_order b where cso.shopOrderID =  b.shopOrderID)
+                  else (select  c.orderType from cm_order c where cou.orderID = c.orderID)
+                end) AS orderType
+        from cm_receipt_order_relation cror
+                 left join cm_shop_order cso on cror.orderID = cso.shopOrderID
+                 left join cm_order co on cso.orderID = co.orderID
+                 LEFT JOIN cm_order cou ON cror.orderID = cou.orderID
+        where cror.receiptID = #{id} and cror.delFlag = '0'
+    </select>
     <select id="getInfos" parameterType="CmDiscernReceipt" resultType="com.caimei.modules.order.entity.ReceiptDetailVo">
     <select id="getInfos" parameterType="CmDiscernReceipt" resultType="com.caimei.modules.order.entity.ReceiptDetailVo">
 		select
 		select
 	    cdr.id AS receiptID,
 	    cdr.id AS receiptID,
@@ -860,6 +884,7 @@
 			co.payableAmount AS payableAmount,
 			co.payableAmount AS payableAmount,
 		    co.onlinePayFlag,
 		    co.onlinePayFlag,
             cso.receiptAmount AS receiptAmount,
             cso.receiptAmount AS receiptAmount,
+            cso.accountAmount AS accountAmount,
 -- 			(select
 -- 			(select
 -- 			 sum(o.needPayAmount)
 -- 			 sum(o.needPayAmount)
 -- 			 from  cm_receipt_order_relation cror
 -- 			 from  cm_receipt_order_relation cror
@@ -942,13 +967,18 @@
         join cm_discern_receipt cdr on cdr.id = cror.receiptID
         join cm_discern_receipt cdr on cdr.id = cror.receiptID
         join cm_offline_collection cof on cdr.payType = cof.type
         join cm_offline_collection cof on cdr.payType = cof.type
         where cror.delFlag = '0' and cdr.delFlag = '0'
         where cror.delFlag = '0' and cdr.delFlag = '0'
-        <if test="relationType == 1">
-            and cror.orderID in (select shopOrderID from cm_shop_order where orderID = #{orderID}) and cror.relationType
-            = '1'
-        </if>
-        <if test="relationType == 2">
-            and cror.orderID = #{orderID} and cror.relationType = '2'
-        </if>
+          <if test="identifying == 2">
+            <if test="relationType == 1">
+                and cror.orderID in (select shopOrderID from cm_shop_order where orderID = #{orderID}) and cror.relationType
+                = '1'
+            </if>
+            <if test="relationType == 2">
+                and cror.orderID = #{orderID} and cror.relationType = '2'
+            </if>
+          </if>
+          <if test="identifying == 1">
+              and cror.shopOrderId = #{shopOrderID} and cror.relationType = 2
+          </if>
     </select>
     </select>
 
 
     <select id="findOrderIDs" resultType="string">
     <select id="findOrderIDs" resultType="string">
@@ -1083,6 +1113,17 @@
       and  cror.orderID = #{orderID} LIMIT 1;
       and  cror.orderID = #{orderID} LIMIT 1;
 	</select>
 	</select>
 
 
+    <select id="findSmoothoutshopInfo" resultType="com.caimei.modules.order.entity.CmDiscernReceipt">
+        select * from cm_discern_receipt cdr
+                          LEFT JOIN cm_receipt_order_relation cror on cror.receiptID = cdr.id
+        where cdr.receiptType = 1 and cror.relationType = 2 and cror.delFlag = 0
+          and cdr.delFlag = 0 and cdr.confirmType in (1,2,3) and cdr.receiptStatus = '3'
+          and  cror.shopOrderId = #{shopOrderId} LIMIT 1;
+    </select>
+
+    <select id="getPaidAmountByOrderId" resultType="com.caimei.modules.order.entity.CmReceiptOrderRelation">
+        SELECT receiptID, associateAmount FROM cm_receipt_order_relation WHERE shopOrderId = #{shopOrderId}
+    </select>
 
 
     <select id="findOrderReceipt" resultType="double">
     <select id="findOrderReceipt" resultType="double">
 		select sum(associateAmount) from cm_receipt_order_relation cror
 		select sum(associateAmount) from cm_receipt_order_relation cror

+ 4 - 0
src/main/resources/mappings/modules/order/CmReceiptOrderRelationMapper.xml

@@ -8,6 +8,7 @@
 		a.receiptID AS "receiptID",
 		a.receiptID AS "receiptID",
 		a.associateAmount AS "associateAmount",
 		a.associateAmount AS "associateAmount",
 		a.orderID AS "orderID",
 		a.orderID AS "orderID",
+        a.shopOrderId as "shopOrderId",
 		a.delFlag AS "delFlag"
 		a.delFlag AS "delFlag"
     </sql>
     </sql>
 
 
@@ -55,11 +56,13 @@
                                               receiptID,
                                               receiptID,
                                               associateAmount,
                                               associateAmount,
                                               orderID,
                                               orderID,
+                                              shopOrderId,
                                               delFlag)
                                               delFlag)
         VALUES (#{relationType},
         VALUES (#{relationType},
                 #{receiptID},
                 #{receiptID},
                 #{associateAmount},
                 #{associateAmount},
                 #{orderID},
                 #{orderID},
+                #{shopOrderId},
                 #{delFlag})
                 #{delFlag})
     </insert>
     </insert>
 
 
@@ -82,6 +85,7 @@
     <select id="findByReceiptID" resultType="CmReceiptOrderRelation">
     <select id="findByReceiptID" resultType="CmReceiptOrderRelation">
         select
         select
         <include refid="cmReceiptOrderRelationColumns"/>,
         <include refid="cmReceiptOrderRelationColumns"/>,
+        b.receiptDate,
         b.newReceiptType
         b.newReceiptType
         from cm_receipt_order_relation a
         from cm_receipt_order_relation a
         left join cm_discern_receipt b on a.receiptID = b.id
         left join cm_discern_receipt b on a.receiptID = b.id

+ 1 - 1
src/main/resources/mappings/modules/order/ShopOrderMapper.xml

@@ -28,7 +28,7 @@
 			a.refundStatus AS  refundStatus,
 			a.refundStatus AS  refundStatus,
 			a.needPayAmount AS  needPayAmount,
 			a.needPayAmount AS  needPayAmount,
             a.splitCode,
             a.splitCode,
-            a.realPay AS realPay,
+            ifnull(a.realPay, a.needPayAmount) AS realPay,
             a.eachDiscount AS eachDiscount,
             a.eachDiscount AS eachDiscount,
             ifnull(a.receiptAmount,0) AS receiptAmount,
             ifnull(a.receiptAmount,0) AS receiptAmount,
             (ifnull(a.realPay,0) - ifnull(a.receiptAmount,0)) as restAmount,
             (ifnull(a.realPay,0) - ifnull(a.receiptAmount,0)) as restAmount,

+ 1 - 0
src/main/resources/mappings/modules/user/CmSpMapper.xml

@@ -125,6 +125,7 @@
 	<update id="update">
 	<update id="update">
 		UPDATE serviceprovider SET
 		UPDATE serviceprovider SET
 		userID = #{userID},
 		userID = #{userID},
+		organizeID = 0,
 		name = #{name},
 		name = #{name},
 		contractPhone = #{contractPhone},
 		contractPhone = #{contractPhone},
 		contractMobile = #{contractMobile},
 		contractMobile = #{contractMobile},

+ 4 - 0
src/main/resources/mappings/modules/user/NewCmShopMapper.xml

@@ -54,6 +54,7 @@
 		a.rebateAmount AS "rebateAmount",
 		a.rebateAmount AS "rebateAmount",
 		a.bankAccountName AS "bankAccountName",
 		a.bankAccountName AS "bankAccountName",
 		a.bankName AS "bankName",
 		a.bankName AS "bankName",
+        a.AccountOwnership as AccountOwnership,
 		a.socialCreditCode AS "socialCreditCode",
 		a.socialCreditCode AS "socialCreditCode",
 		u.email,
 		u.email,
 		u.source AS "source",
 		u.source AS "source",
@@ -646,6 +647,9 @@
 <!--            <if test="banOfDeposit != null and banOfDeposit != ''">banOfDeposit = #{banOfDeposit},</if>-->
 <!--            <if test="banOfDeposit != null and banOfDeposit != ''">banOfDeposit = #{banOfDeposit},</if>-->
 <!--            <if test="accountName != null and accountName != ''">accountName = #{accountName},</if>-->
 <!--            <if test="accountName != null and accountName != ''">accountName = #{accountName},</if>-->
             <if test="chargeSupport != null and chargeSupport != ''">chargeSupport = #{chargeSupport},</if>
             <if test="chargeSupport != null and chargeSupport != ''">chargeSupport = #{chargeSupport},</if>
+            <if test="AccountOwnership != null">
+                AccountOwnership = #{AccountOwnership}
+            </if>
         </trim>
         </trim>
         where shopID = #{shopID}
         where shopID = #{shopID}
     </update>
     </update>

+ 1 - 1
src/main/resources/mappings/modules/weisha/CmMallOrganizeMapper.xml

@@ -208,7 +208,7 @@
 	<delete id="updateService">
 	<delete id="updateService">
 		update serviceprovider
 		update serviceprovider
 		set openid = NULL,
 		set openid = NULL,
-		    unionId = NULL
+            unionId = NULL
 		where serviceProviderID = #{serviceProviderId}
 		where serviceProviderID = #{serviceProviderId}
 	</delete>
 	</delete>
 	<update id="updateClub">
 	<update id="updateClub">

+ 252 - 214
src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptForm.jsp

@@ -205,6 +205,32 @@
                 </c:if>
                 </c:if>
             </span>
             </span>
             <span><label>收款金额:</label>${vo.receiptAmount}</span>
             <span><label>收款金额:</label>${vo.receiptAmount}</span>
+            <span>
+                <c:if test="${vo.confirmType eq 1 || vo.confirmType eq  2 || vo.confirmType eq 3}">
+                    <label>抹平明细:</label>
+                    <c:if test="${vo.confirmType eq 1}">
+                            <font color="red">(少收抹平:
+                                ¥<fmt:formatNumber
+                                        value="${vo.needAmount - vo.receiptAmount}"
+                                        pattern="#0.00"/>)
+                            </font>
+                    </c:if>
+                    <c:if test="${vo.confirmType eq 2}">
+                            <font color="red">(多收抹平:
+                                ¥<fmt:formatNumber
+                                        value="${vo.receiptAmount - vo.needAmount}"
+                                        pattern="#0.00"/>)
+                            </font>
+                    </c:if>
+                    <c:if test="${vo.confirmType eq 3}">
+                            <font color="red">(多收退余额&nbsp;&nbsp;:
+                                ¥<fmt:formatNumber
+                                        value="${vo.receiptAmount - vo.needAmount}"
+                                        pattern="#0.00"/>)
+                            </font>
+                    </c:if>
+                </c:if>
+            </span>
             <span><label>收款时间:</label>${vo.receiptDate}</span>
             <span><label>收款时间:</label>${vo.receiptDate}</span>
             <span><label>收款状态:</label>
             <span><label>收款状态:</label>
                 <c:if test="${vo.payWay ne 3}">
                 <c:if test="${vo.payWay ne 3}">
@@ -256,124 +282,47 @@
             </div>
             </div>
         </c:if>
         </c:if>
     </div>
     </div>
-<%--    <c:if test="${not empty op.shopOrderNo}">--%>
-<%--        <h5>关联订单</h5>--%>
-<%--        <div class="receipt-order-form">--%>
-<%--            <div class="receipt-order-row2">--%>
-<%--                        <span class="font-blue"><label>子订单编号:</label>--%>
-<%--                               <a href="${ctx}/order/detail?id=${op.orderID}">${op.shopOrderNo}(${op.shopOrderId})</a></span>--%>
-<%--                <span><label>订单金额:</label>¥<fmt:formatNumber--%>
-<%--                        value="${op.productAmount}"--%>
-<%--                        pattern="#0.00"/></span>--%>
-<%--                <span>--%>
-<%--                         <span><label>供应商:</label>${op.shopName}</span>--%>
-<%--                    </span>--%>
-<%--                        <hr style="margin: 10px;"/>--%>
-<%--            </div>--%>
-
-<%--            <div class="receipt-order-row3">--%>
-
-<%--                         <span class="font-blue"><label>订单编号:</label><a--%>
-<%--                                 href="${ctx}/order/detail?id=${op.orderID}">${op.orderNo}(${op.orderID})</a></span>--%>
-
-<%--                <span><label>订单金额:</label>¥<fmt:formatNumber--%>
-<%--                        value="${op.productAmount}"--%>
-<%--                        pattern="#0.00"/></span>--%>
-
-<%--                <span><label>应收金额:</label>¥<fmt:formatNumber value="${op.needPayAmount}"--%>
-<%--                                                             pattern="#0.00"/></span>--%>
-<%--                <span>--%>
-<%--                            <label>已收金额:</label>¥<fmt:formatNumber--%>
-<%--                        value="${empty op.receiptAmount ? 0 : op.receiptAmount}"--%>
-<%--                        pattern="#0.00"/>--%>
-<%--                            </span>--%>
-<%--                <span><label>机构名称:</label>${op.jgName}</span>--%>
-<%--            </div>--%>
-
-<%--            <label>订单类型:</label><c:if test="${op.orderType eq 0}">普通订单</c:if>--%>
-<%--            <c:if test="${op.orderType eq 1}">协销订单</c:if>--%>
-
-<%--            <span><label>下单日期:</label>${cmDiscernReceipt.confirmDate}</span>--%>
-
-<%--        </div>--%>
-<%--        <c:if test="${not empty orderInfo.receiptRecordVo}">--%>
-<%--            <div class="receipt-order-form">--%>
-<%--                <div class="receipt-order-row4">--%>
-<%--                    <div><h5><label>订单收款记录:</label></h5></div>--%>
-<%--                    <c:forEach items="${orderInfo.receiptRecordVo}" var="receiptRecord" varStatus="index">--%>
-<%--                        <div class="row4-wrapper">--%>
-<%--                            <span class="row4-order-no">${index.index + 1}、</span>--%>
-<%--                            <span class="row4-time">${receiptRecord.receiptTime}</span>--%>
-<%--                            <c:if test="${receiptRecord.payWay == 1}">--%>
-<%--                                &lt;%&ndash;线上收款&ndash;%&gt;--%>
-<%--                                <span>线上&nbsp;${receiptRecord.bankNameType}</span>--%>
-<%--                                <span>${receiptRecord.receiptAmount}</span>--%>
-<%--                                <span><label>交易号:</label>${receiptRecord.mbOrderId}</span>--%>
-<%--                            </c:if>--%>
-<%--                            <c:if test="${receiptRecord.payWay == 2}">--%>
-<%--                                <span>线下&nbsp;${receiptRecord.bankNameType}</span>--%>
-<%--                                <span>${receiptRecord.receiptAmount}</span>--%>
-<%--                                <c:if test="${not empty receiptRecord.confirmUserPermissionID}">--%>
-<%--                                    <span>${receiptRecord.confirmUserName}确认(${receiptRecord.confirmDate})</span>--%>
-<%--                                </c:if>--%>
-<%--                                <c:if test="${not empty receiptRecord.reviewUserPermissionID}">--%>
-<%--                                    <span>--%>
-<%--                                        <c:if test="${receiptRecord.receiptStatus eq 4}">--%>
-<%--                                            ${receiptRecord.reviewUserName}审核不通过(${receiptRecord.reviewDate})--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.receiptStatus ne 4}">--%>
-<%--                                            ${receiptRecord.reviewUserName}审核通过(${receiptRecord.reviewDate})--%>
-<%--                                        </c:if>--%>
-<%--                                    </span>--%>
-<%--                                </c:if>--%>
-<%--                            </c:if>--%>
-<%--                            <c:if test="${receiptRecord.payWay == 3}">--%>
-<%--                                &lt;%&ndash;余额抵扣&ndash;%&gt;--%>
-<%--                                <span><a--%>
-<%--                                        href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"--%>
-<%--                                        style="text-decoration: underline">${fns:getPayTypeStr(receiptRecord.payType)}</a></span>--%>
-<%--                                <span><a--%>
-<%--                                        href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"--%>
-<%--                                        style="text-decoration: underline">${receiptRecord.receiptAmount}</a></span>--%>
-<%--                            </c:if>--%>
-<%--                            <span>--%>
-<%--    &lt;%&ndash;                        一款多单的时候直接显示再订单上即可,无需收款记录显示&ndash;%&gt;--%>
-<%--                                <c:if test="${!vo.receiptOrderFlag}">--%>
-<%--                                    <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">--%>
-<%--                                        <label>抹平明细:</label>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 1}">--%>
-<%--                                                <font color="red">(少收抹平:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${orderInfo.payableAmount - (empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount)}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 2}">--%>
-<%--                                                <font color="red">(多收抹平:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${(empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount) - orderInfo.payableAmount}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 3}">--%>
-<%--                                                <font color="red">(多收退余额${receiptRecord.associationType eq 2 ? "(自动)" : ""}:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${(empty receiptRecord.returnBalanceAmount ? 0 : receiptRecord.returnBalanceAmount)}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                    </c:if>--%>
-<%--                                </c:if>--%>
-<%--                                </span>--%>
-<%--                            <span>--%>
-<%--                                    ${receiptRecord.receiptAmount}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${vo.confirmer} 确认 ${vo.confirmTime}--%>
-<%--                                </span>--%>
-<%--                        </div>--%>
-<%--                    </c:forEach>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--        </c:if>--%>
-<%--    </c:if>--%>
+<%--    <c:if test="${not empty op.shopOrderNo}">
+        <h5>关联订单</h5>
+        <div class="receipt-order-form">
+            <div class="receipt-order-row2">
+                        <span class="font-blue"><label>子订单编号:</label>
+                               <a href="${ctx}/order/detail?id=${op.orderID}">${op.shopOrderNo}(${op.shopOrderId})</a></span>
+                <span><label>订单金额:</label>¥<fmt:formatNumber
+                        value="${op.productAmount}"
+                        pattern="#0.00"/></span>
+                <span>
+                         <span><label>供应商:</label>${op.shopName}</span>
+                    </span>
+                        <hr style="margin: 10px;"/>
+            </div>
+
+            <div class="receipt-order-row3">
+
+                         <span class="font-blue"><label>订单编号:</label><a
+                                 href="${ctx}/order/detail?id=${op.orderID}">${op.orderNo}(${op.orderID})</a></span>
+
+                <span><label>订单金额:</label>¥<fmt:formatNumber
+                        value="${op.productAmount}"
+                        pattern="#0.00"/></span>
+
+                <span><label>应收金额:</label>¥<fmt:formatNumber value="${op.needPayAmount}"
+                                                             pattern="#0.00"/></span>
+                <span>
+                            <label>已收金额:</label>¥<fmt:formatNumber
+                        value="${empty op.receiptAmount ? 0 : op.receiptAmount}"
+                        pattern="#0.00"/>
+                            </span>
+                <span><label>机构名称:</label>${op.jgName}</span>
+            </div>
+
+            <label>订单类型:</label><c:if test="${op.orderType eq 0}">普通订单</c:if>
+            <c:if test="${op.orderType eq 1}">协销订单</c:if>
+
+            <span><label>下单日期:</label>${cmDiscernReceipt.confirmDate}</span>
+
+        </div>--%>
+
 
 
 
 
     <c:if test="${vo.receiptType != 2 and vo.receiptType != 6 and vo.receiptType != 7 and vo.receiptType != 8}">
     <c:if test="${vo.receiptType != 2 and vo.receiptType != 6 and vo.receiptType != 7 and vo.receiptType != 8}">
@@ -408,7 +357,7 @@
 <%--                                value="${orderInfo.orderAmount}"--%>
 <%--                                value="${orderInfo.orderAmount}"--%>
 <%--                                pattern="#0.00"/></span>--%>
 <%--                                pattern="#0.00"/></span>--%>
                         <span>
                         <span>
-                            <span><label>子订单应收金额:</label>¥<fmt:formatNumber value="${orderInfo.shouldPayShopAmount}"
+                            <span><label>子订单应收金额:</label>¥<fmt:formatNumber value="${orderInfo.shopOrderAmount}"
                                                                          pattern="#0.00"/></span>
                                                                          pattern="#0.00"/></span>
                             <span>
                             <span>
                             <label>子订单已收金额:</label>¥<fmt:formatNumber
                             <label>子订单已收金额:</label>¥<fmt:formatNumber
@@ -422,40 +371,40 @@
                                                varStatus="index">
                                                varStatus="index">
                                         <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">
                                         <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">
                                             <label>抹平明细:</label>
                                             <label>抹平明细:</label>
-                                            <c:if test="${receiptRecord.confirmType eq 1}">
-                                                <c:if test="${vo.receiptOrderFlag}">
+                                            <c:if test="${orderInfo.confirmType eq 1}">
+                                                <c:if test="${orderInfo.receiptOrderFlag}">
                                                     <font color="red">(一款多单:少收抹平金额未知)</font>
                                                     <font color="red">(一款多单:少收抹平金额未知)</font>
                                                 </c:if>
                                                 </c:if>
-                                                <c:if test="${!vo.receiptOrderFlag}">
-                                                    <font color="red">(少收抹平:
+                                                <c:if test="${!orderInfo.receiptOrderFlag}">
+                                                <font color="red">(少收抹平:
                                                     ¥<fmt:formatNumber
                                                     ¥<fmt:formatNumber
-                                                                value="${orderInfo.payableAmount - (empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount)}"
-                                                                pattern="#0.00"/>)
-                                                    </font>
+                                                            value="${orderInfo.shopOrderAmount - (empty orderInfo.orderReceivedAmount ? 0 : orderInfo.orderReceivedAmount)}"
+                                                            pattern="#0.00"/>)
+                                                </font>
                                                 </c:if>
                                                 </c:if>
                                             </c:if>
                                             </c:if>
-                                            <c:if test="${receiptRecord.confirmType eq 2}">
-                                                <c:if test="${vo.receiptOrderFlag}">
+                                            <c:if test="${orderInfo.confirmType eq 2}">
+                                                <c:if test="${orderInfo.receiptOrderFlag}">
                                                     <font color="red">(一款多单:多收抹平金额未知)</font>
                                                     <font color="red">(一款多单:多收抹平金额未知)</font>
                                                 </c:if>
                                                 </c:if>
-                                                <c:if test="${!vo.receiptOrderFlag}">
-                                                    <font color="red">(多收抹平:
+                                                <c:if test="${!orderInfo.receiptOrderFlag}">
+                                                <font color="red">(多收抹平:
                                                     ¥<fmt:formatNumber
                                                     ¥<fmt:formatNumber
-                                                                value="${(empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount) - orderInfo.payableAmount}"
-                                                                pattern="#0.00"/>)
-                                                    </font>
+                                                            value="${(empty orderInfo.receiptAmount ? 0 : orderInfo.orderReceivedAmount) - orderInfo.shopOrderAmount}"
+                                                            pattern="#0.00"/>)
+                                                </font>
                                                 </c:if>
                                                 </c:if>
                                             </c:if>
                                             </c:if>
-                                            <c:if test="${receiptRecord.confirmType eq 3}">
-                                                <c:if test="${vo.receiptOrderFlag}">
+                                            <c:if test="${orderInfo.confirmType eq 3}">
+                                                <c:if test="${orderInfo.receiptOrderFlag}">
                                                     <font color="red">(一款多单:多收退余额)</font>
                                                     <font color="red">(一款多单:多收退余额)</font>
                                                 </c:if>
                                                 </c:if>
-                                                <c:if test="${!vo.receiptOrderFlag}">
-                                                    <font color="red">(多收退余额${receiptRecord.associationType eq 2 ? "(自动)" : ""}:
+                                                <c:if test="${!orderInfo.receiptOrderFlag}">
+                                                <font color="red">(多收退余额&nbsp;&nbsp;${orderInfo.associationType eq 2 ? "(自动)" : ""}:
                                                     ¥<fmt:formatNumber
                                                     ¥<fmt:formatNumber
-                                                                value="${(empty receiptRecord.returnBalanceAmount ? 0 : receiptRecord.returnBalanceAmount)}"
-                                                                pattern="#0.00"/>)
-                                                    </font>
+                                                            value="${(empty orderInfo.returnBalanceAmount ? 0 : orderInfo.returnBalanceAmount)}"
+                                                            pattern="#0.00"/>)
+                                                </font>
                                                 </c:if>
                                                 </c:if>
                                             </c:if>
                                             </c:if>
                                         </c:if>
                                         </c:if>
@@ -499,80 +448,169 @@
                             <span>子订单收款状态:${fns:getDictLabel(shopOrder.shopReceiptStatus,'receiptStatus' ,'' )}</span>
                             <span>子订单收款状态:${fns:getDictLabel(shopOrder.shopReceiptStatus,'receiptStatus' ,'' )}</span>
                         </c:forEach>
                         </c:forEach>
                     </div>
                     </div>
-<%--                    <div class="receipt-order-row4">--%>
-<%--                        <div><h5><label>订单收款记录:</label></h5></div>--%>
-<%--                        <c:forEach items="${orderInfo.receiptRecordVo}" var="receiptRecord" varStatus="index">--%>
-<%--                            <div class="row4-wrapper">--%>
-<%--                                <span class="row4-order-no">${index.index + 1}、</span>--%>
-<%--                                <span class="row4-time">${receiptRecord.receiptTime}</span>--%>
-<%--                                <c:if test="${receiptRecord.payWay == 1}">--%>
-<%--                                    &lt;%&ndash;线上收款&ndash;%&gt;--%>
-<%--                                    <span>线上&nbsp;${receiptRecord.bankNameType}</span>--%>
-<%--                                    <span>${receiptRecord.receiptAmount}</span>--%>
-<%--                                    <span><label>交易号:</label>${receiptRecord.mbOrderId}</span>--%>
-<%--                                </c:if>--%>
-<%--                                <c:if test="${receiptRecord.payWay == 2}">--%>
-<%--                                    <span>线下&nbsp;${receiptRecord.bankNameType}</span>--%>
-<%--                                    <span>${receiptRecord.receiptAmount}</span>--%>
-<%--                                    <c:if test="${not empty receiptRecord.confirmUserPermissionID}">--%>
-<%--                                        <span>${receiptRecord.confirmUserName}确认(${receiptRecord.confirmDate})</span>--%>
-<%--                                    </c:if>--%>
-<%--                                    <c:if test="${not empty receiptRecord.reviewUserPermissionID}">--%>
-<%--                                    <span>--%>
-<%--                                        <c:if test="${receiptRecord.receiptStatus eq 4}">--%>
-<%--                                            ${receiptRecord.reviewUserName}审核不通过(${receiptRecord.reviewDate})--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.receiptStatus ne 4}">--%>
-<%--                                            ${receiptRecord.reviewUserName}审核通过(${receiptRecord.reviewDate})--%>
-<%--                                        </c:if>--%>
-<%--                                    </span>--%>
-<%--                                    </c:if>--%>
-<%--                                </c:if>--%>
-<%--                                <c:if test="${receiptRecord.payWay == 3}">--%>
-<%--                                    &lt;%&ndash;余额抵扣&ndash;%&gt;--%>
-<%--                                    <span><a--%>
-<%--                                            href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"--%>
-<%--                                            style="text-decoration: underline">${fns:getPayTypeStr(receiptRecord.payType)}</a></span>--%>
-<%--                                    <span><a--%>
-<%--                                            href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"--%>
-<%--                                            style="text-decoration: underline">${receiptRecord.receiptAmount}</a></span>--%>
-<%--                                </c:if>--%>
-<%--                                <span>--%>
-<%--    &lt;%&ndash;                        一款多单的时候直接显示再订单上即可,无需收款记录显示&ndash;%&gt;--%>
-<%--                                <c:if test="${!vo.receiptOrderFlag}">--%>
-<%--                                    <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">--%>
-<%--                                        <label>抹平明细:</label>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 1}">--%>
-<%--                                                <font color="red">(少收抹平:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${orderInfo.payableAmount - (empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount)}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 2}">--%>
-<%--                                                <font color="red">(多收抹平:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${(empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount) - orderInfo.payableAmount}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 3}">--%>
-<%--                                                <font color="red">(多收退余额${receiptRecord.associationType eq 2 ? "(自动)" : ""}:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${(empty receiptRecord.returnBalanceAmount ? 0 : receiptRecord.returnBalanceAmount)}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                    </c:if>--%>
-<%--                                </c:if>--%>
-<%--                                </span>--%>
-<%--&lt;%&ndash;                                <span>&ndash;%&gt;--%>
-<%--&lt;%&ndash;                                    ${receiptRecord.receiptAmount}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${vo.confirmer} 确认 ${vo.confirmTime}&ndash;%&gt;--%>
-<%--&lt;%&ndash;                                </span>&ndash;%&gt;--%>
-<%--                            </div>--%>
-<%--                        </c:forEach>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
+                    <c:if test="${not empty orderInfo.receiptRecordVo}">
+                        <div class="receipt-order-form">
+                            <div class="receipt-order-row4">
+                                <div><h5><label>订单收款记录:</label></h5></div>
+                                <c:forEach items="${orderInfo.receiptRecordVo}" var="receiptRecord" varStatus="index">
+                                    <div class="row4-wrapper">
+                                        <span class="row4-order-no">${index.index + 1}、</span>
+                                        <span class="row4-time">${receiptRecord.receiptTime}</span>
+                                        <c:if test="${receiptRecord.payWay == 1}">
+                                            <%--线上收款--%>
+                                            <span>线上&nbsp;${receiptRecord.bankNameType}</span>
+                                            <span>${receiptRecord.receiptAmount}</span>
+                                            <span><label>交易号:</label>${receiptRecord.mbOrderId}</span>
+                                        </c:if>
+                                        <c:if test="${receiptRecord.payWay == 2}">
+                                            <span>线下&nbsp;${receiptRecord.bankNameType}</span>
+                                            <span>${receiptRecord.receiptAmount}</span>
+                                            <c:if test="${not empty receiptRecord.confirmUserPermissionID}">
+                                                <span>${receiptRecord.confirmUserName}确认(${receiptRecord.confirmDate})</span>
+                                            </c:if>
+                                            <c:if test="${not empty receiptRecord.reviewUserPermissionID}">
+                                                    <span>
+                                                        <c:if test="${receiptRecord.receiptStatus eq 4}">
+                                                            ${receiptRecord.reviewUserName}审核不通过(${receiptRecord.reviewDate})
+                                                        </c:if>
+                                                        <c:if test="${receiptRecord.receiptStatus ne 4}">
+                                                            ${receiptRecord.reviewUserName}审核通过(${receiptRecord.reviewDate})
+                                                        </c:if>
+                                                    </span>
+                                            </c:if>
+                                        </c:if>
+                                        <c:if test="${receiptRecord.payWay == 3}">
+                                            <%--余额抵扣--%>
+                                            <span><a
+                                                    href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"
+                                                    style="text-decoration: underline">${fns:getPayTypeStr(receiptRecord.payType)}</a></span>
+                                            <span><a
+                                                    href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"
+                                                    style="text-decoration: underline">${receiptRecord.receiptAmount}</a></span>
+                                        </c:if>
+                                        <span>
+                    <%--                        一款多单的时候直接显示再订单上即可,无需收款记录显示--%>
+                                                <%--<c:if test="${!vo.receiptOrderFlag}">
+                                                    <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">
+                                                        <label>抹平明细:</label>
+                                                        <c:if test="${order.confirmType eq 1}">
+                                                            <c:if test="${order.receiptOrderFlag}">
+                                                                <font color="red">(一款多单:少收抹平金额未知)</font>
+                                                            </c:if>
+                                                            <c:if test="${!order.receiptOrderFlag}">
+                                                                <font color="red">(少收抹平:
+                                                                    ¥<fmt:formatNumber
+                                                                            value="${order.payableAmount - (empty order.orderReceivedAmount ? 0 : order.orderReceivedAmount)}"
+                                                                            pattern="#0.00"/>)
+                                                                </font>
+                                                            </c:if>
+                                                        </c:if>
+                                                        <c:if test="${order.confirmType eq 2}">
+                                                            <c:if test="${order.receiptOrderFlag}">
+                                                                <font color="red">(一款多单:多收抹平金额未知)</font>
+                                                            </c:if>
+                                                            <c:if test="${!order.receiptOrderFlag}">
+                                                                <font color="red">(多收抹平:
+                                                                    ¥<fmt:formatNumber
+                                                                            value="${(empty order.orderReceivedAmount ? 0 : order.orderReceivedAmount) - order.payableAmount}"
+                                                                            pattern="#0.00"/>)
+                                                                </font>
+                                                            </c:if>
+                                                        </c:if>
+                                                        <c:if test="${order.confirmType eq 3}">
+                                                            <c:if test="${order.receiptOrderFlag}">
+                                                                <font color="red">(一款多单:多收退余额)</font>
+                                                            </c:if>
+                                                            <c:if test="${!order.receiptOrderFlag}">
+                                                                <font color="red">(多收退余额&nbsp;&nbsp;${order.associationType eq 2 ? "(自动)" : ""}:
+                                                                    ¥<fmt:formatNumber
+                                                                            value="${(empty order.returnBalanceAmount ? 0 : order.returnBalanceAmount)}"
+                                                                            pattern="#0.00"/>)
+                                                                </font>
+                                                            </c:if>
+                                                        </c:if>
+                                                    </c:if>
+                                                </c:if>--%>
+                                            </span>
+                                    </div>
+                                </c:forEach>
+                            </div>
+                        </div>
+                    </c:if>
+                    <%--<div class="receipt-order-row4">
+                        <div><h5><label>订单收款记录:</label></h5></div>
+                        <c:forEach items="${orderInfo.receiptRecordVo}" var="receiptRecord" varStatus="index">
+                            <div class="row4-wrapper">
+                                <span class="row4-order-no">${index.index + 1}、</span>
+                                <span class="row4-time">${receiptRecord.receiptTime}</span>
+                                <c:if test="${receiptRecord.payWay == 1}">
+                                    &lt;%&ndash;线上收款&ndash;%&gt;
+                                    <span>线上&nbsp;${receiptRecord.bankNameType}</span>
+                                    <span>${receiptRecord.receiptAmount}</span>
+                                    <span><label>交易号:</label>${receiptRecord.mbOrderId}</span>
+                                </c:if>
+                                <c:if test="${receiptRecord.payWay == 2}">
+                                    <span>线下&nbsp;${receiptRecord.bankNameType}</span>
+                                    <span>${receiptRecord.receiptAmount}</span>
+                                    <c:if test="${not empty receiptRecord.confirmUserPermissionID}">
+                                        <span>${receiptRecord.confirmUserName}确认(${receiptRecord.confirmDate})</span>
+                                    </c:if>
+                                    <c:if test="${not empty receiptRecord.reviewUserPermissionID}">
+                                    <span>
+                                        <c:if test="${receiptRecord.receiptStatus eq 4}">
+                                            ${receiptRecord.reviewUserName}审核不通过(${receiptRecord.reviewDate})
+                                        </c:if>
+                                        <c:if test="${receiptRecord.receiptStatus ne 4}">
+                                            ${receiptRecord.reviewUserName}审核通过(${receiptRecord.reviewDate})
+                                        </c:if>
+                                    </span>
+                                    </c:if>
+                                </c:if>
+                                <c:if test="${receiptRecord.payWay == 3}">
+                                    &lt;%&ndash;余额抵扣&ndash;%&gt;
+                                    <span><a
+                                            href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"
+                                            style="text-decoration: underline">${fns:getPayTypeStr(receiptRecord.payType)}</a></span>
+                                    <span><a
+                                            href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"
+                                            style="text-decoration: underline">${receiptRecord.receiptAmount}</a></span>
+                                </c:if>
+                                <span>
+    &lt;%&ndash;                        一款多单的时候直接显示再订单上即可,无需收款记录显示&ndash;%&gt;
+                                <c:if test="${!vo.receiptOrderFlag}">
+                                    <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">
+                                        <label>抹平明细:</label>
+                                        <c:if test="${receiptRecord.confirmType eq 1}">
+                                                <font color="red">(少收抹平:
+                                                    ¥<fmt:formatNumber
+                                                            value="${orderInfo.payableAmount - (empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount)}"
+                                                            pattern="#0.00"/>元)
+                                                </font>
+                                        </c:if>
+                                        <c:if test="${receiptRecord.confirmType eq 2}">
+                                                <font color="red">(多收抹平:
+                                                    ¥<fmt:formatNumber
+                                                            value="${(empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount) - orderInfo.payableAmount}"
+                                                            pattern="#0.00"/>元)
+                                                </font>
+                                        </c:if>
+                                        <c:if test="${receiptRecord.confirmType eq 3}">
+                                                <font color="red">(多收退余额${receiptRecord.associationType eq 2 ? "(自动)" : ""}:
+                                                    ¥<fmt:formatNumber
+                                                            value="${(empty receiptRecord.returnBalanceAmount ? 0 : receiptRecord.returnBalanceAmount)}"
+                                                            pattern="#0.00"/>元)
+                                                </font>
+                                        </c:if>
+                                    </c:if>
+                                </c:if>
+                                </span>
+&lt;%&ndash;                                <span>&ndash;%&gt;
+&lt;%&ndash;                                    ${receiptRecord.receiptAmount}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${vo.confirmer} 确认 ${vo.confirmTime}&ndash;%&gt;
+&lt;%&ndash;                                </span>&ndash;%&gt;
+                            </div>
+                        </c:forEach>
+                    </div>
+                </div>--%>
                 <br>
                 <br>
             </c:forEach>
             </c:forEach>
         </div>
         </div>

+ 3 - 2
src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptList.jsp

@@ -339,10 +339,11 @@
 <%--                <c:if test="${cmDiscernReceipt.receiptType != 6}">${cmDiscernReceipt.orders}</c:if>--%>
 <%--                <c:if test="${cmDiscernReceipt.receiptType != 6}">${cmDiscernReceipt.orders}</c:if>--%>
 <%--                <c:if test="${cmDiscernReceipt.receiptType == 6}">-----</c:if>--%>
 <%--                <c:if test="${cmDiscernReceipt.receiptType == 6}">-----</c:if>--%>
 <%--                <c:if test="${cmDiscernReceipt.receiptType == 7}">-----</c:if>--%>
 <%--                <c:if test="${cmDiscernReceipt.receiptType == 7}">-----</c:if>--%>
-                <c:if test="${cmDiscernReceipt.shopOrderId == null}">-----</c:if>
+                    ${cmDiscernReceipt.orders}
+                <%--<c:if test="${cmDiscernReceipt.shopOrderId == null}">-----</c:if>
                 <c:if test="${cmDiscernReceipt.shopOrderId != null}">
                 <c:if test="${cmDiscernReceipt.shopOrderId != null}">
                     <a href="${ctx}/order/detail?id=${cmDiscernReceipt.orderID}&shopOrderID=${cmDiscernReceipt.shopOrderId}">子订单${cmDiscernReceipt.shopOrderNo}(${cmDiscernReceipt.shopOrderId})</a>
                     <a href="${ctx}/order/detail?id=${cmDiscernReceipt.orderID}&shopOrderID=${cmDiscernReceipt.shopOrderId}">子订单${cmDiscernReceipt.shopOrderNo}(${cmDiscernReceipt.shopOrderId})</a>
-                </c:if>
+                </c:if>--%>
             </td>
             </td>
             <shiro:hasPermission name="order:cmDiscernReceipt:edit">
             <shiro:hasPermission name="order:cmDiscernReceipt:edit">
                 <td>
                 <td>

+ 3 - 3
src/main/webapp/WEB-INF/views/modules/order/newOrderList.jsp

@@ -309,8 +309,8 @@
                     <font color="green">已收款</font>
                     <font color="green">已收款</font>
                 </c:if>
                 </c:if>
                 <br>
                 <br>
-                    <%--抹平明细--%>
-                <c:if test="${order.confirmType eq 1}">
+                    <%--抹平明细 主订单不在展示抹平 由子订单展示--%>
+                <%--<c:if test="${order.confirmType eq 1}">
                     <c:if test="${order.receiptOrderFlag}">
                     <c:if test="${order.receiptOrderFlag}">
                         一款多单:少收抹平金额未知
                         一款多单:少收抹平金额未知
                     </c:if>
                     </c:if>
@@ -345,7 +345,7 @@
                                     pattern="#0.00"/>
                                     pattern="#0.00"/>
                         </font>
                         </font>
                     </c:if>
                     </c:if>
-                </c:if>
+                </c:if>--%>
             </li>
             </li>
             <li>
             <li>
                 <c:if test="${order.payStatus == 1}">
                 <c:if test="${order.payStatus == 1}">

+ 41 - 4
src/main/webapp/WEB-INF/views/modules/order/orderDetail.jsp

@@ -447,8 +447,8 @@
                 <c:if test="${order.receiptStatus == 3}">
                 <c:if test="${order.receiptStatus == 3}">
                     <font color="green">已收款</font>
                     <font color="green">已收款</font>
                 </c:if>
                 </c:if>
-                    <%--抹平明细--%>
-                <c:if test="${order.confirmType eq 1}">
+                    <%--抹平明细 主订单不显示抹平,关联子订单--%>
+                <%--<c:if test="${order.confirmType eq 1}">
                     <c:if test="${order.receiptOrderFlag}">
                     <c:if test="${order.receiptOrderFlag}">
                         <font color="red">(一款多单:少收抹平金额未知)</font>
                         <font color="red">(一款多单:少收抹平金额未知)</font>
                     </c:if>
                     </c:if>
@@ -483,7 +483,7 @@
                                     pattern="#0.00"/>)
                                     pattern="#0.00"/>)
                         </font>
                         </font>
                     </c:if>
                     </c:if>
-                </c:if>
+                </c:if>--%>
             </td>
             </td>
             <td>发货状态:
             <td>发货状态:
                 <c:if test="${order.sendOutStatus == 1}">
                 <c:if test="${order.sendOutStatus == 1}">
@@ -918,7 +918,7 @@
                             </c:if>
                             </c:if>
 
 
                         </span>
                         </span>
-        <span>收款状态:
+                        <span>收款状态:
                             <c:if test="${shopOrder.shopReceiptStatus == 1}">
                             <c:if test="${shopOrder.shopReceiptStatus == 1}">
                                 <font color="red">待收款</font>
                                 <font color="red">待收款</font>
                             </c:if>
                             </c:if>
@@ -928,6 +928,43 @@
                             <c:if test="${shopOrder.shopReceiptStatus == 3}">
                             <c:if test="${shopOrder.shopReceiptStatus == 3}">
                                 <font color="green">已收款</font>
                                 <font color="green">已收款</font>
                             </c:if>
                             </c:if>
+                            <%--抹平明细--%>
+                            <c:if test="${shopOrder.confirmType eq 1}">
+                                <c:if test="${shopOrder.receiptOrderFlag}">
+                                    <font color="red">(一款多单:少收抹平金额未知)</font>
+                                </c:if>
+                                <c:if test="${!shopOrder.receiptOrderFlag}">
+                                    <font color="red">(少收抹平:
+                                        ¥<fmt:formatNumber
+                                                value="${shopOrder.needPayAmount - (empty shopOrder.orderReceivedAmount ? 0 : shopOrder.orderReceivedAmount)}"
+                                                pattern="#0.00"/>)
+                                    </font>
+                                </c:if>
+                            </c:if>
+                            <c:if test="${shopOrder.confirmType eq 2}">
+                                <c:if test="${shopOrder.receiptOrderFlag}">
+                                    <font color="red">(一款多单:多收抹平金额未知)</font>
+                                </c:if>
+                                <c:if test="${!shopOrder.receiptOrderFlag}">
+                                    <font color="red">(多收抹平:
+                                        ¥<fmt:formatNumber
+                                                value="${(empty shopOrder.receiptAmount ? 0 : shopOrder.orderReceivedAmount) - shopOrder.payableAmount}"
+                                                pattern="#0.00"/>)
+                                    </font>
+                                </c:if>
+                            </c:if>
+                            <c:if test="${shopOrder.confirmType eq 3}">
+                                <c:if test="${shopOrder.receiptOrderFlag}">
+                                    <font color="red">(一款多单:多收退余额)</font>
+                                </c:if>
+                                <c:if test="${!shopOrder.receiptOrderFlag}">
+                                    <font color="red">(多收退余额&nbsp;&nbsp;${shopOrder.associationType eq 2 ? "(自动)" : ""}:
+                                        ¥<fmt:formatNumber
+                                                value="${(empty shopOrder.returnBalanceAmount ? 0 : shopOrder.returnBalanceAmount)}"
+                                                pattern="#0.00"/>)
+                                    </font>
+                                </c:if>
+                            </c:if>
                         </span>
                         </span>
 
 
         <span>发货状态:
         <span>发货状态:

+ 67 - 49
src/main/webapp/WEB-INF/views/modules/product-new/productEdit.jsp

@@ -8,6 +8,12 @@
     <meta name="decorator" content="default"/>
     <meta name="decorator" content="default"/>
     <link type="text/css" rel="stylesheet" href="${ctxStatic}/bootstrap-select/css/bootstrap-select.css"></link>
     <link type="text/css" rel="stylesheet" href="${ctxStatic}/bootstrap-select/css/bootstrap-select.css"></link>
     <style>
     <style>
+        .sku-item-li{
+            width: 100%;
+            height: auto;
+            float: left;
+            margin-bottom: 5px;
+        }
         .sku {
         .sku {
             display: flex;
             display: flex;
             align-items: center;
             align-items: center;
@@ -16,10 +22,16 @@
             padding: 10px;
             padding: 10px;
             white-space: nowrap;
             white-space: nowrap;
             margin-top: 10px;
             margin-top: 10px;
-            width: 1200px;
+            width: 1000px;
+        }
+        .sku-item-delete{
+            width: 40%;
+            height: auto;
+            float: left;
+            margin-left: 10px;
         }
         }
-
         .sku .sku-item {
         .sku .sku-item {
+            float: left;
             margin-right: 12px;
             margin-right: 12px;
             padding: 4px 0;
             padding: 4px 0;
         }
         }
@@ -857,54 +869,60 @@
         <input type="hidden" name="skuId">
         <input type="hidden" name="skuId">
         <input type="hidden" name="organizeId">
         <input type="hidden" name="organizeId">
         <input type="hidden" name="mallProductId">
         <input type="hidden" name="mallProductId">
-        <div class="sku-item sku-unit">
-            <span class="red">*</span>包装规格:
-            <input name="unit" type="text" maxlength="15" style="width: 40px" class="short required"/>
-        </div>
-        <div class="sku-item sku-normalPrice">
-            <span class="red">*</span>市场价:
-            <input style="width: 60px" name="normalPrice" type="number" maxlength="10"
-                   class="short input-small required"/>元
-        </div>
-        <div class="sku-item sku-stock">
-            <span>库存:</span>
-            <input name="stock" style="width: 50px" type="number" maxlength="11" class="short required"/>
-        </div>
-        <div class="sku-item sku-costCheckFlag">
-            <span class="red">*</span>成本:
-            <label><input type="radio" name="costCheckFlag" value="1" checked/>固定成本</label>
-            <b class="line">|</b>
-            <label><input type="radio" name="costCheckFlag" value="2"/>比例成本</label>
-        </div>
-        <div class="sku-item sku-costPrice">
-            <span class="red">*</span>
-            <span class="costFlagText">成本价</span>:
-            <input style="width: 60px" name="costPrice" type="number" maxlength="11" class="short"/> 元
-        </div>
-        <div class="sku-item sku-shopPercent" style="display: none;">
-            <span class="red">*</span>佣金比例:
-            供应商:<input style="width: 50px" name="shopPercent" type="number" maxlength="11" class="short"/>%
-            集团:<input style="width: 50px" name="organizePercent" type="number" maxlength="11" class="short"/>%
-            采美:<input style="width: 50px" name="cmPercent" type="number" maxlength="11" class="short"/>%
-        </div>
-        <div class="sku-item sku-price">
-            <span class="red">*</span>机构价:
-            <input name="price" type="number" id="price" maxlength="11" style="width: 70px"
-                   class="short computedPrice required"
-                   onkeyup="computedPriceLevel(this.value)"/>
+        <div class="sku-item-li">
+            <div class="sku-item sku-unit">
+                <span class="red">*</span>包装规格:
+                <input name="unit" type="text" maxlength="15" style="width: 40px" class="short required"/>
+            </div>
+            <div class="sku-item sku-normalPrice">
+                <span class="red">*</span>市场价:
+                <input style="width: 60px" name="normalPrice" type="number" maxlength="10"
+                       class="short input-small required"/>元
+            </div>
+            <div class="sku-item sku-price">
+                <span class="red">*</span>机构价:
+                <input name="price" type="number" id="price" maxlength="11" style="width: 70px"
+                       class="short computedPrice required"
+                       onkeyup="computedPriceLevel(this.value)"/>
+            </div>
+            <div class="sku-item sku-stock">
+                <span>库存:</span>
+                <input name="stock" style="width: 50px" type="number" maxlength="11" class="short required"/>
+            </div>
+            <div class="sku-item sku-minBuyNumber">
+                <span class="red">*</span>起订量:
+                <input style="width: 40px" type="number" name="minBuyNumber" maxlength="11" class="short  required"/>
+            </div>
         </div>
         </div>
-        <div class="sku-item sku-ladderPriceFlag">
-            <span class="red">*</span>商品展示价格:
-            <label> <input type="radio" name="ladderPriceFlag" value="0" checked/> 不使用阶梯价格
-            </label>
-            <b class="line">|</b>
-            <label> <input type="radio" name="ladderPriceFlag" value="1"/>使用阶梯价格</label>
+        <div class="sku-item-li">
+            <div class="sku-item sku-costCheckFlag">
+                <span class="red">*</span>成本:
+                <label><input type="radio" name="costCheckFlag" value="1" checked/>固定成本</label>
+                <b class="line">|</b>
+                <label><input type="radio" name="costCheckFlag" value="2"/>比例成本</label>
+            </div>
+            <div class="sku-item sku-costPrice">
+                <span class="red">*</span>
+                <span class="costFlagText">成本价</span>:
+                <input style="width: 60px" name="costPrice" type="number" maxlength="11" class="short"/> 元
+            </div>
+            <div class="sku-item sku-shopPercent" style="display: none;">
+                <span class="red">*</span>佣金比例:
+                供应商:<input style="width: 50px" name="shopPercent" type="number" maxlength="11" class="short"/>%
+                集团:<input style="width: 50px" name="organizePercent" type="number" maxlength="11" class="short"/>%
+                采美:<input style="width: 50px" name="cmPercent" type="number" maxlength="11" class="short"/>%
+            </div>
         </div>
         </div>
-        <div class="sku-item sku-minBuyNumber">
-            <span class="red">*</span>起订量:
-            <input style="width: 40px" type="number" name="minBuyNumber" maxlength="11" class="short  required"/>
+        <div class="sku-item-li sku-item-delete">
+            <div class="sku-item sku-ladderPriceFlag">
+                <span class="red">*</span>商品展示价格:
+                <label> <input type="radio" name="ladderPriceFlag" value="0" checked/> 不使用阶梯价格
+                </label>
+                <b class="line">|</b>
+                <label> <input type="radio" name="ladderPriceFlag" value="1"/>使用阶梯价格</label>
+            </div>
         </div>
         </div>
-        <div><span><button class="deleteSku" onclick="deleteDiv(this)">删除SKU</button></span></div>
+        <div class="sku-item-delete"><span><button class="deleteSku" onclick="deleteDiv(this)">删除SKU</button></span></div>
         <div class="ladderPriceBox" style="display: none;">
         <div class="ladderPriceBox" style="display: none;">
             <div class="ladderPrice">
             <div class="ladderPrice">
                 起订量:
                 起订量:
@@ -2006,7 +2024,7 @@
         }
         }
         var product = {
         var product = {
             skuIndex: ++skuIndex-1,
             skuIndex: ++skuIndex-1,
-            costCheckFlag: '2',
+            costCheckFlag: '1',
             ladderPriceFlag: '0'
             ladderPriceFlag: '0'
         }
         }
         setSkuPrototypeValues(current, product, 0);
         setSkuPrototypeValues(current, product, 0);
@@ -2024,7 +2042,7 @@
         }
         }
         var product = {
         var product = {
             skuIndex: ++skuIndex-1,
             skuIndex: ++skuIndex-1,
-            costCheckFlag: '2',
+            costCheckFlag: '1',
             ladderPriceFlag: '0'
             ladderPriceFlag: '0'
         }
         }
         setSkuPrototypeValues(current, product, 4);
         setSkuPrototypeValues(current, product, 4);

+ 9 - 0
src/main/webapp/WEB-INF/views/modules/user/newCmShopSetForm.jsp

@@ -34,6 +34,15 @@
 	<form:form id="inputForm" modelAttribute="newCmShop" action="${ctx}/user/newCmShop/updateShop" method="post" class="form-horizontal">
 	<form:form id="inputForm" modelAttribute="newCmShop" action="${ctx}/user/newCmShop/updateShop" method="post" class="form-horizontal">
 		<form:hidden path="shopID"/>
 		<form:hidden path="shopID"/>
 		<sys:message content="${message}"/>
 		<sys:message content="${message}"/>
+		<div class="control-group">
+			<label class="control-label"><font color="red">*</font>账号归属:</label>
+			<div class="controls">
+				<form:select path="AccountOwnership" placeholder="请选择" class="input-xlarge required">
+					<form:option value="0" label="采美" />
+					<form:option value="1" label="供应商" />
+				</form:select>
+			</div>
+		</div>
 		<div class="control-group">
 		<div class="control-group">
 			<label class="control-label"><font color="red">*</font>开户行:</label>
 			<label class="control-label"><font color="red">*</font>开户行:</label>
 			<div class="controls">
 			<div class="controls">