Quellcode durchsuchen

一个客诉对应多个订单

wangxiaoming vor 7 Jahren
Ursprung
Commit
7d5b42529f
27 geänderte Dateien mit 1222 neuen und 390 gelöschten Zeilen
  1. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ClosedFitting.java
  2. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ClosedProdcue.java
  3. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java
  4. 51 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/RelationOrder.java
  5. 20 2
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java
  6. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SendFitting.java
  7. 10 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SendProdcue.java
  8. 3 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java
  9. 57 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/RelationOrderService.java
  10. 188 59
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  11. 80 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/RelationOrderServiceImpl.java
  12. 57 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/RelationOrderMapper.java
  13. 3 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/closedFittingMapper.xml
  14. 7 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/closedProdcueMapper.xml
  15. 109 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/relationOrderMapper.xml
  16. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  17. 3 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/sendFittingMapper.xml
  18. 3 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/sendProdcueMapper.xml
  19. 82 32
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  20. 34 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AppComplaintQuestionInfoController.java
  21. 2 0
      watero-rst-web/src/main/resources/watero-rst-orm.xml
  22. 25 21
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  23. 56 29
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_detail.ftl
  24. 25 4
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl
  25. 140 82
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_customer.ftl
  26. 21 0
      watero-rst-web/src/main/webapp/common/js/common/common.js
  27. 200 153
      watero-rst-web/src/main/webapp/common/js/customer/customer.js

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ClosedFitting.java

@@ -18,6 +18,8 @@ public class ClosedFitting  implements Serializable {
 
     private String closedFittingsName;     //配件名称
 
+    private String closedProductName;       //产品名称
+
     private String closedFittingsBar;     //配件sku
 
     public Integer getClosedFittingType() {
@@ -83,4 +85,12 @@ public class ClosedFitting  implements Serializable {
     public void setClosedFittingNumber(Integer closedFittingNumber) {
         this.closedFittingNumber = closedFittingNumber;
     }
+
+    public String getClosedProductName() {
+        return closedProductName;
+    }
+
+    public void setClosedProductName(String closedProductName) {
+        this.closedProductName = closedProductName;
+    }
 }

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ClosedProdcue.java

@@ -20,6 +20,8 @@ public class ClosedProdcue  implements Serializable {
 
     private String closedProductName; //产品名称
 
+    private String closedColorName; //颜色名称
+
     private String closedProdcueMachineNo;      //机器编码
 
     private Integer productType;        //商品类型
@@ -113,4 +115,12 @@ public class ClosedProdcue  implements Serializable {
     public void setClosedProdcueMachineNo(String closedProdcueMachineNo) {
         this.closedProdcueMachineNo = closedProdcueMachineNo;
     }
+
+    public String getClosedColorName() {
+        return closedColorName;
+    }
+
+    public void setClosedColorName(String closedColorName) {
+        this.closedColorName = closedColorName;
+    }
 }

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java

@@ -100,6 +100,8 @@ public class CustomerCommon implements Serializable {
     @DateTimeFormat(pattern="yyyy-MM-dd")
     private Date relationBackReceiptDate;
 
+    private List<RelationOrder> relationOrderList = new ArrayList<>();
+
     public String getSalesOrderId() {
         return salesOrderId;
     }
@@ -427,4 +429,12 @@ public class CustomerCommon implements Serializable {
     public void setRelationBackReceiptDate(Date relationBackReceiptDate) {
         this.relationBackReceiptDate = relationBackReceiptDate;
     }
+
+    public List<RelationOrder> getRelationOrderList() {
+        return relationOrderList;
+    }
+
+    public void setRelationOrderList(List<RelationOrder> relationOrderList) {
+        this.relationOrderList = relationOrderList;
+    }
 }

+ 51 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/RelationOrder.java

@@ -0,0 +1,51 @@
+package com.iamberry.rst.core.cm;
+
+import  java.io.Serializable;
+/**
+ *  类
+ * @author Administrator
+ * @Date 2018-04-16
+ */
+public class RelationOrder  implements  Serializable{
+    private static final long serialVersionUID = 115605283759231004L;
+    //
+    private Integer relationOrderId;
+    //处理方式类型 3:换新4:维修5:补发6:退货7:无理由退货
+    private Integer relationType;
+    //处理方式id
+    private Integer relationId;
+    //订单号'
+    private Integer salesId;
+
+    public Integer getRelationOrderId(){
+        return relationOrderId;
+    }
+
+    public void setRelationOrderId(Integer  relationOrderId){
+        this.relationOrderId=relationOrderId;
+    }
+
+    public Integer getRelationType(){
+        return relationType;
+    }
+
+    public void setRelationType(Integer  relationType){
+        this.relationType=relationType;
+    }
+
+    public Integer getRelationId(){
+        return relationId;
+    }
+
+    public void setRelationId(Integer  relationId){
+        this.relationId=relationId;
+    }
+
+    public Integer getSalesId(){
+        return salesId;
+    }
+
+    public void setSalesId(Integer  salesId){
+        this.salesId=salesId;
+    }
+}

+ 20 - 2
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java

@@ -49,7 +49,7 @@ public class SalesOrder implements Serializable {
     private Integer salesCompanyId;         //销售公司id
     private Integer salesType;              //订单类型
     private String salesDealCode;           //交易号
-    private Integer salesOrderStatus;       //订单状态 订单状态:1:正常 2:换货 3:退货
+    private Integer salesOrderStatus;       //订单状态 订单状态:1:正常 2:换货 3:退货  4:维修  5:补发
     private Integer salesShippingStatus;    //发货状态
     private Integer salesPayStatus;         //付款状态
     private Integer salesProcessStatus;     //单据状态
@@ -57,7 +57,6 @@ public class SalesOrder implements Serializable {
     private Integer salesIsLocked;          //是否锁定
     private Integer salesIsSeparate;        //是否缺货
 
-
     private String companyName;             //销售公司名称
     private String storeName;               //店铺名称
 
@@ -80,6 +79,9 @@ public class SalesOrder implements Serializable {
     private Integer itemNum;            //产品数量
     private String itemColorBar;        //产品69码
 
+    private String[] salesIds;        //传入mybatis的订单编号
+    private String ids;        //前台传过来的订单编号
+
     public String getItemProductName() {
         return itemProductName;
     }
@@ -463,4 +465,20 @@ public class SalesOrder implements Serializable {
     public void setOrderNoteRemark(String orderNoteRemark) {
         this.orderNoteRemark = orderNoteRemark;
     }
+
+    public String[] getSalesIds() {
+        return salesIds;
+    }
+
+    public void setSalesIds(String[] salesIds) {
+        this.salesIds = salesIds;
+    }
+
+    public String getIds() {
+        return ids;
+    }
+
+    public void setIds(String ids) {
+        this.ids = ids;
+    }
 }

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SendFitting.java

@@ -20,6 +20,8 @@ public class SendFitting  implements Serializable {
 
     private String sendFittingsBar; //配件sku
 
+    private String sendProductName;         //商品名称
+
     public String getSendFittingsName() {
         return sendFittingsName;
     }
@@ -83,4 +85,12 @@ public class SendFitting  implements Serializable {
     public void setSendFittingNumber(Integer sendFittingNumber) {
         this.sendFittingNumber = sendFittingNumber;
     }
+
+    public String getSendProductName() {
+        return sendProductName;
+    }
+
+    public void setSendProductName(String sendProductName) {
+        this.sendProductName = sendProductName;
+    }
 }

+ 10 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SendProdcue.java

@@ -21,11 +21,12 @@ public class SendProdcue  implements Serializable {
 
     private String sendProduceName; //产品名称
 
+    private String sendColorName;    //颜色名称
+
     private Integer productType;        //商品类型
     private String productNumber;       //产品型号
     private ProductColor productColor;      //颜色
 
-
     public String getSendProduceName() {
         return sendProduceName;
     }
@@ -105,4 +106,12 @@ public class SendProdcue  implements Serializable {
     public void setProductColor(ProductColor productColor) {
         this.productColor = productColor;
     }
+
+    public String getSendColorName() {
+        return sendColorName;
+    }
+
+    public void setSendColorName(String sendColorName) {
+        this.sendColorName = sendColorName;
+    }
 }

+ 3 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java

@@ -153,4 +153,7 @@ public interface CustomerService {
      * @return
      */
     List<CustomerInfo> listOnCustomer(CustomerInfo customerInfo);
+
+    /*添加订单*/
+    Integer addOrder(SalesOrder salesOrder);
 }

+ 57 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/RelationOrderService.java

@@ -0,0 +1,57 @@
+package com.iamberry.rst.faces.cm;
+
+import com.iamberry.rst.core.cm.RelationOrder;
+
+import java.util.List;
+
+/**
+ *
+ * @author Administrator
+ * @Date 2018-04-16
+ */
+public interface RelationOrderService {
+    /**
+     * 获取集合
+     * @param  relationOrder
+     * @return List
+     */
+    List<RelationOrder> getRelationOrderList(RelationOrder  relationOrder);
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  relationOrder
+     */
+    RelationOrder  getRelationOrderById(Integer  id);
+    /**
+     * 增加数据
+     * @param  relationOrder
+     * @return Integer
+     */
+    Integer  save(RelationOrder  relationOrder);
+    /**
+     * 修改数据
+     * @param  relationOrder
+     * @return Integer
+     */
+    Integer  update(RelationOrder  relationOrder);
+    /**
+     * 删除数据
+     * @param  id
+     * @return Integer
+     */
+    Integer  delete(Integer  id);
+
+    /**
+     * 删除数据 by relationId
+     * @param  relationId
+     * @return Integer
+     */
+    Integer  deleteByRelationId(Integer  relationId);
+
+    /**
+     * 增加数据 <集合>
+     * @param  relationOrderList
+     * @return Integer
+     */
+    Integer  saveList(List<RelationOrder>  relationOrderList);
+}

+ 188 - 59
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -6,6 +6,7 @@ import com.iamberry.rst.core.order.*;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.cm.CustomerCommonService;
 import com.iamberry.rst.faces.cm.CustomerService;
+import com.iamberry.rst.faces.cm.RelationOrderService;
 import com.iamberry.rst.faces.order.EfastOrderService;
 import com.iamberry.rst.service.address.mapper.AddressMapper;
 import com.iamberry.rst.service.cm.mapper.*;
@@ -76,6 +77,9 @@ public class CustomerServiceImpl implements CustomerService {
     private StoreInfoMapper storeInfoMapper;
     @Autowired
     private CustomerCommonService customerCommonService;
+    @Autowired
+    private RelationOrderService relationOrderService;
+
 
     @Override
     public CustomerInfo getCustomerInfo(Integer customerId) {
@@ -87,6 +91,8 @@ public class CustomerServiceImpl implements CustomerService {
     public Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder){
         Integer isNeedSelectOrder = customerInfo.getIsNeedSelectOrder();
 
+        List<SalesOrder> orderList = new ArrayList<>();
+
         //添加客诉基本信息
         Integer flag = 0;
         flag = customerInfoMapper.insert(customerInfo);
@@ -129,8 +135,13 @@ public class CustomerServiceImpl implements CustomerService {
                 ){
 
             if(isNeedSelectOrder == 1){
-                salesOrder = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
-                logger.info("-----------添加客诉-查询订单--------------");
+                SalesOrder so = new SalesOrder();
+                if(salesOrder.getIds()!= null && salesOrder.getIds().indexOf("_") > -1){
+                    String[] salesIds = salesOrder.getIds().split("_");
+                    so.setSalesIds(salesIds);
+                    orderList = salesOrderMapper.listSalesOrder(so);
+                    logger.info("-----------添加客诉-查询订单--------------");
+                }
             }
 
             CustomerCommon customerCommon = customerInfo.getCustomerCommon();
@@ -138,7 +149,6 @@ public class CustomerServiceImpl implements CustomerService {
             customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
             customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
             customerCommon.setRelationState(1); //状态  默认使用中
-            customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
             customerCommon.setTransactionNumber(customerInfo.getTransactionNumber());   //外部交易号
 
             // TODO: 2018/3/27 是否转账邮费,默认为不需要转账 : 0
@@ -166,10 +176,10 @@ public class CustomerServiceImpl implements CustomerService {
 //                    }else{
 //                        throw new RuntimeException("换新创建Efast订单失败");
 //                    }
-                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
-                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
-                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
-                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
+                    //complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
+                    //customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
+                    //complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
+                    //customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
                 case 4: //维修
 //                    customerService.chargebackEfastOrder(customerCommon,salesOrder,2);    //原订单生成退单
@@ -180,10 +190,10 @@ public class CustomerServiceImpl implements CustomerService {
 //                    }else{
 //                        throw new RuntimeException("维修创建Efast订单失败");
 //                    }
-                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
-                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
-                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
-                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
+                    //complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
+                    //customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
+                    //complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
+                    //customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
                 case 5: //补发  不用创建仓储签收任务
 //                    map = customerService.sendEfastOrder(customerCommon,salesOrder);  //补发需要向Efast推送一条发货的订单
@@ -196,63 +206,96 @@ public class CustomerServiceImpl implements CustomerService {
                     break;
                 case 6: //退货
 
-//                    customerService.chargebackEfastOrder(customerCommon,salesOrder,3);    //原订单生成退单
+//                   customerService.chargebackEfastOrder(customerCommon,salesOrder,3);    //原订单生成退单
 
-                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
-                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
-                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
-                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
+                    //complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
+                    //customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
+                    //complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
+                    //customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
                 case 7: //无理由退货
 
-//                    customerService.chargebackEfastOrder(customerCommon,salesOrder,3);    //原订单生成退单
+//                   customerService.chargebackEfastOrder(customerCommon,salesOrder,3);    //原订单生成退单
 
-                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
-                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
-                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
-                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
+                    //complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
+                    //customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
+                    //complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
+                    //customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
             }
             logger.info("-----------添加客诉-创建仓储/品检成功--------------");
             customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储id
 
+
+
+
             /*将公共的对象 转换换新/维修/退款等*/
             Object object = CustomerCommonUtil.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
 
             Integer relationId = 0;
+            Integer orderStatus = 1;
             switch (customerInfo.getCustomerIsSolve()) {  //处理结果: 1:已解决  2:未解决 3:换新  4:维修 5:补发 6:退货 7:无理由退货
                 case 3: //换新
                     Renewed renewed = (Renewed) object;
                     flag = renewedMapper.insert(renewed);
                     relationId = renewed.getRenewedId();
+                    orderStatus = 2;
                     break;
                 case 4: //维修
                     Repair repair = (Repair) object;
                     flag = repairMapper.insert(repair);
                     relationId = repair.getRepairId();
+                    orderStatus = 4;
                     break;
                 case 5: //补发
                     Reissue reissue = (Reissue) object;
                     flag = reissueMapper.insert(reissue);
                     relationId = reissue.getReissueId();
+                    orderStatus = 5;
                     break;
                 case 6: //退货
                     BackGoods backGoods = (BackGoods) object;
                     flag = backGoodsMapper.insert(backGoods);
                     relationId = backGoods.getBackGoodsId();
+                    orderStatus = 3;
                     break;
                 case 7: //无理由退货
                     NoreasonBack noreasonBack = (NoreasonBack) object;
                     flag = noreasonBackMapper.insert(noreasonBack);
                     relationId = noreasonBack.getNoreasonBackId();
+                    orderStatus = 3;
                     break;
             }
             if (flag < 1) {
                 throw new RuntimeException("添加客诉处理结果失败");
             }
             logger.info("-----------添加客诉-添加换新/维修/补发/退货/无理由退货信息成功--------------");
-            customerCommon.setRelationId(relationId);
 
+            /*添加客诉-添加处理与订单关联表*/
+            List<RelationOrder> relationOrderList = new ArrayList<>();
+            for (SalesOrder sor : orderList) {
+                RelationOrder ro = new RelationOrder();
+                ro.setRelationType(customerInfo.getCustomerIsSolve());
+                ro.setRelationId(relationId);
+                ro.setSalesId(sor.getSalesId());
+                relationOrderList.add(ro);
+            }
+            flag = relationOrderService.saveList(relationOrderList);
+            if(flag < 1){
+                throw new RuntimeException("添加客诉,关联订单失败");
+            }
+            for (SalesOrder sor : orderList) {
+                SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
+                newOrder.setSalesId(sor.getSalesId());
+                newOrder.setSalesOrderStatus(orderStatus);
+                flag = salesOrderMapper.updateSalesOrder(newOrder);
+                if(flag < 1){
+                    throw new RuntimeException("添加客诉,修改订单失败");
+                }
+            }
+            logger.info("-----------添加客诉-添加处理与订单关联表--------------");
+
+            customerCommon.setRelationId(relationId);
             CustomerCommonUtil.setProduceOrFitting(customerInfo.getCustomerIsSolve(),customerCommon);
 
             if(customerCommon.getClosedFittings()!=null && customerCommon.getClosedFittings().size() > 0){
@@ -287,6 +330,8 @@ public class CustomerServiceImpl implements CustomerService {
         //删除旧的售后数据
         customerService.deleteCustomerAfterSales(customerInfo);
 
+        List<SalesOrder> orderList = new ArrayList<>();
+
         //修改客诉基本信息
         Integer flag = 0;
         flag = customerInfoMapper.updateCustomerInfo(customerInfo);
@@ -325,10 +370,15 @@ public class CustomerServiceImpl implements CustomerService {
                 ){
 
             if(isNeedSelectOrder == 1){
-                salesOrder = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
+                SalesOrder so = new SalesOrder();
+                if(salesOrder.getIds()!= null && salesOrder.getIds().indexOf("_") > -1){
+                    String[] salesIds = salesOrder.getIds().split("_");
+                    so.setSalesIds(salesIds);
+                    orderList = salesOrderMapper.listSalesOrder(so);
+                    logger.info("-----------添加客诉-查询订单--------------");
+                }
             }
 
-            logger.info("-----------修改客诉-查询订单--------------");
             CustomerCommon customerCommon = customerInfo.getCustomerCommon();
             if(ccList.size() > 0){
                 cc = ccList.get(0);
@@ -379,10 +429,10 @@ public class CustomerServiceImpl implements CustomerService {
 //                    }else{
 //                        throw new RuntimeException("换新创建Efast订单失败");
 //                    }
-                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
-                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
-                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
-                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
+//                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
+//                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
+//                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
+//                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
                 case 4: //维修
 //                    customerService.chargebackEfastOrder(customerCommon,salesOrder,2);    //原订单生成退单
@@ -393,10 +443,10 @@ public class CustomerServiceImpl implements CustomerService {
 //                    }else{
 //                        throw new RuntimeException("维修创建Efast订单失败");
 //                    }
-                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
-                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
-                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
-                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
+//                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
+//                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
+//                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
+//                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
                 case 5: //补发  不用创建仓储签收任务
 //                    map = customerService.sendEfastOrder(customerCommon,salesOrder);  //补发需要向Efast推送一条发货的订单
@@ -408,20 +458,19 @@ public class CustomerServiceImpl implements CustomerService {
 //                    }
                     break;
                 case 6: //退货
-
 //                    customerService.chargebackEfastOrder(customerCommon,salesOrder,3);    //原订单生成退单
 
-                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
-                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
-                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
-                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
+//                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
+//                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
+//                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
+//                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
                 case 7: //无理由退货
 //                    customerService.chargebackEfastOrder(customerCommon,salesOrder,3);    //原订单生成退单
-                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
-                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
-                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
-                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
+//                    complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
+//                    customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
+//                    complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
+//                    customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
             }
             logger.info("-----------修改客诉-创建仓储/品检成功--------------");
@@ -429,45 +478,75 @@ public class CustomerServiceImpl implements CustomerService {
 
             Object object = CustomerCommonUtil.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
             Integer relationId = 0;
+            Integer orderStatus = 1;
             switch (customerInfo.getCustomerIsSolve()) {  //处理结果: 1:已解决  2:未解决 3:换新  4:维修 5:补发 6:退货 7:无理由退货
                 case 3: //换新
                     Renewed renewed = (Renewed) object;
                     flag = renewedMapper.insert(renewed);
                     relationId = renewed.getRenewedId();
+                    orderStatus = 2;
                     break;
                 case 4: //维修
                     Repair repair = (Repair) object;
                     flag = repairMapper.insert(repair);
                     relationId = repair.getRepairId();
+                    orderStatus = 4;
                     break;
                 case 5: //补发
                     Reissue reissue = (Reissue) object;
                     flag = reissueMapper.insert(reissue);
                     relationId = reissue.getReissueId();
+                    orderStatus = 5;
                     break;
                 case 6: //退货
                     BackGoods backGoods = (BackGoods) object;
                     flag = backGoodsMapper.insert(backGoods);
                     relationId = backGoods.getBackGoodsId();
+                    orderStatus = 3;
                     break;
                 case 7: //无理由退货
                     NoreasonBack noreasonBack = (NoreasonBack) object;
                     flag = noreasonBackMapper.insert(noreasonBack);
                     relationId = noreasonBack.getNoreasonBackId();
+                    orderStatus = 3;
                     break;
             }
             if (flag < 1) {
                 throw new RuntimeException("添加客诉处理结果失败");
             }
             logger.info("-----------修改客诉-添加换新/维修/补发/退货/无理由退货信息成功--------------");
-            customerCommon.setRelationId(relationId);
 
+              /*添加客诉-添加处理与订单关联表*/
+            List<RelationOrder> relationOrderList = new ArrayList<>();
+            for (SalesOrder sor : orderList) {
+                RelationOrder ro = new RelationOrder();
+                ro.setRelationType(customerInfo.getCustomerIsSolve());
+                ro.setRelationId(relationId);
+                ro.setSalesId(sor.getSalesId());
+                relationOrderList.add(ro);
+            }
+            flag = relationOrderService.saveList(relationOrderList);
+            if(flag < 1){
+                throw new RuntimeException("添加客诉,关联订单失败");
+            }
+            for (SalesOrder sor : orderList) {
+                SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
+                newOrder.setSalesId(sor.getSalesId());
+                newOrder.setSalesOrderStatus(orderStatus);
+                flag = salesOrderMapper.updateSalesOrder(newOrder);
+                if(flag < 1){
+                    throw new RuntimeException("添加客诉,修改订单状态失败");
+                }
+            }
+            logger.info("-----------添加客诉-添加处理与订单关联表--------------");
+
+            customerCommon.setRelationId(relationId);
             if(customerCommon.getIsNeedSelectOrder() == 1){
                 CustomerCommonUtil.setProduceOrFitting(customerInfo.getCustomerIsSolve(),customerCommon);
                 if(customerCommon.getClosedFittings()!=null && customerCommon.getClosedFittings().size() > 0){
                     closedFittingMapper.insert(customerCommon.getClosedFittings());
                 }
-                if(customerCommon.getClosedProdcues() != null && customerCommon.getClosedProdcues().size()>0){
+                if(customerCommon.getClosedProdcues() != null && customerCommon.getClosedProdcues().size() > 0){
                     closedProdcueMapper.insert(customerCommon.getClosedProdcues());
                 }
                 if(customerCommon.getSendProdcues() != null && customerCommon.getSendProdcues().size() > 0){
@@ -517,6 +596,7 @@ public class CustomerServiceImpl implements CustomerService {
             /*  初始化产品类型,名称,配件名称 */
             /*customerService.setName(customerCommon);*/
         }
+        Integer relationId = 0;
         switch (oldIsSolve){
             case 3:
                 //删除换新数据
@@ -524,9 +604,10 @@ public class CustomerServiceImpl implements CustomerService {
                 renewed.setCustomerId(customer.getCustomerId());
                 //查询换新数据id
                 renewed = renewedMapper.getRenewedInfo(renewed);
+                relationId = renewed.getRenewedId();
                 if(customer.getCustomerIsSolve() < 3){ //从维修换货补发修改为已解决或未解决时,原订单生成退单
                     //salesOrder = salesOrderMapper.getSalesOrderById(renewed.getOrderId());    //salesOrder.getSalesId()  全场最佳,就你戏多
-                    customerCommon.setOrderId(renewed.getOrderId()); //订单id
+                    //customerCommon.setOrderId(renewed.getOrderId()); //订单id
                     SendProdcue record = new SendProdcue();
                     record.setRelationId(renewed.getRenewedId());
                     customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
@@ -550,9 +631,10 @@ public class CustomerServiceImpl implements CustomerService {
                 repair.setCustomerId(customer.getCustomerId());
                 //查询维修数据id
                 repair = repairMapper.getRepairInfo(repair);
+                relationId = repair.getRepairId();
                 if(customer.getCustomerIsSolve() < 3) { //从维修换货补发修改为已解决或未解决时,原订单生成退单
                     //salesOrder = salesOrderMapper.getSalesOrderById(repair.getOrderId());
-                    customerCommon.setOrderId(repair.getOrderId()); //订单id
+                    //customerCommon.setOrderId(repair.getOrderId()); //订单id
                     SendProdcue record = new SendProdcue();
                     record.setRelationId(repair.getRepairId());
                     customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
@@ -576,9 +658,10 @@ public class CustomerServiceImpl implements CustomerService {
                 reissue.setCustomerId(customer.getCustomerId());
                 //查询补发数据id
                 reissue = reissueMapper.getReissue(reissue);
+                relationId = reissue.getReissueId();
                 if(customer.getCustomerIsSolve() < 3) { //从维修换货补发修改为已解决或未解决时,原订单生成退单
                     //salesOrder = salesOrderMapper.getSalesOrderById(reissue.getOrderId());
-                    customerCommon.setOrderId(reissue.getOrderId()); //订单id
+                    //customerCommon.setOrderId(reissue.getOrderId()); //订单id
                     SendProdcue record = new SendProdcue();
                     record.setRelationId(reissue.getReissueId());
                     customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
@@ -598,6 +681,7 @@ public class CustomerServiceImpl implements CustomerService {
                 backGoods.setCustomerId(customer.getCustomerId());
                 //查询维修数据id
                 backGoods = backGoodsMapper.getBackGoods(backGoods);
+                relationId = backGoods.getBackGoodsId();
                 //删除寄出寄回产品
                 closedRecord.setRelationId(backGoods.getBackGoodsId());
                 closedFittingMapper.deleteByPrimaryKey(closedRecord);
@@ -611,7 +695,8 @@ public class CustomerServiceImpl implements CustomerService {
                 noreasonBack.setCustomerId(customer.getCustomerId());
                 //查询维修数据id
                 noreasonBack = noreasonBackMapper.getNoreasonBack(noreasonBack);
-                //删除寄出寄回产品
+                relationId = noreasonBack.getNoreasonBackId();
+                        //删除寄出寄回产品
                 closedRecord.setRelationId(noreasonBack.getNoreasonBackId());
                 closedFittingMapper.deleteByPrimaryKey(closedRecord);
                 closedrecord.setRelationId(noreasonBack.getNoreasonBackId());
@@ -619,6 +704,21 @@ public class CustomerServiceImpl implements CustomerService {
                 noreasonBackMapper.deleteByPrimaryKey(noreasonBack);
                 break;
         }
+
+        /*恢复订单状态*/
+        RelationOrder relationOrder = new RelationOrder();
+        relationOrder.setRelationType(oldIsSolve);
+        relationOrder.setRelationId(relationId);
+        List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(relationOrder);
+        for (int k=0; k<relationOrderList.size();k++){
+            SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
+            newOrder.setSalesId(relationOrderList.get(k).getSalesId());
+            newOrder.setSalesOrderStatus(1);    //恢复订单到之前的状态
+            Integer flag = salesOrderMapper.updateSalesOrder(newOrder);
+        }
+
+        /* 删除掉订单与处理的关联表 */
+        relationOrderService.deleteByRelationId(relationId);
     }
 
     @Override
@@ -963,10 +1063,31 @@ public class CustomerServiceImpl implements CustomerService {
     }
 
     /**
-     * 向Efast推送订单--添加订单
+     * 添加订单
      * @return
      */
     @Transactional
+    public Integer addOrder(SalesOrder salesOrder) {
+        //添加订单数据
+        int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
+        if (orderNum <= 0) {
+            throw new RuntimeException("系统添加订单失败");
+        }
+        for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
+            item.setItemOrderId(salesOrder.getSalesId());
+        }
+        //批量添加订单项数据
+        int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
+        if (itemNum <= 0) {
+            throw new RuntimeException("系统添加订单项失败");
+        }
+        return orderNum;
+    }
+        /**
+         * 向Efast推送订单--添加订单
+         * @return
+         */
+    @Transactional
     public Map<String,Object> sendEfastOrder(SalesOrder salesOrder){
 
         //添加订单数据
@@ -1277,7 +1398,7 @@ public class CustomerServiceImpl implements CustomerService {
                 renewedInfo.setCustomerId(customerInfo.getCustomerId());
                 //查询售后换新详情
                 renewedInfo = renewedMapper.getRenewedInfo(renewedInfo);
-                orderId = renewedInfo.getOrderId();
+                //orderId = renewedInfo.getOrderId();
                 customerCommon = CustomerCommonUtil.getCustomerCommon(3,renewedInfo);
                 customerCommon = customerService.selectProdcueAndFitting(customerCommon,3);
                 break;
@@ -1290,7 +1411,7 @@ public class CustomerServiceImpl implements CustomerService {
                 if (repairInfo.getComplaintDetectList() != null && repairInfo.getComplaintDetectList().size() > 0) {
                     repairInfo.setDetectState(repairInfo.getComplaintDetectList().get(0).getDetectState());
                 }
-                orderId = repairInfo.getOrderId();
+                //orderId = repairInfo.getOrderId();
                 customerCommon = CustomerCommonUtil.getCustomerCommon(4,repairInfo);
                 customerCommon = customerService.selectProdcueAndFitting(customerCommon,4);
                 break;
@@ -1304,7 +1425,7 @@ public class CustomerServiceImpl implements CustomerService {
                     return null;
                 }
                 reissueInfo = reissueList.get(0);
-                orderId = reissueInfo.getOrderId();
+                //orderId = reissueInfo.getOrderId();
                 customerCommon = CustomerCommonUtil.getCustomerCommon(5,reissueInfo);
                 customerCommon = customerService.selectProdcueAndFitting(customerCommon,5);
                 break;
@@ -1321,7 +1442,7 @@ public class CustomerServiceImpl implements CustomerService {
                 if (backGoodsInfo.getComplaintDetectList() != null && backGoodsInfo.getComplaintDetectList().size() > 0) {
                     backGoodsInfo.setDetectState(backGoodsInfo.getComplaintDetectList().get(0).getDetectState());
                 }
-                orderId = backGoodsInfo.getOrderId();
+                //orderId = backGoodsInfo.getOrderId();
                 customerCommon = CustomerCommonUtil.getCustomerCommon(6,backGoodsInfo);
                 customerCommon = customerService.selectProdcueAndFitting(customerCommon,6);
                 break;
@@ -1338,24 +1459,32 @@ public class CustomerServiceImpl implements CustomerService {
                 if (noreasonBackInfo.getComplaintDetectList() != null && noreasonBackInfo.getComplaintDetectList().size() > 0) {
                     noreasonBackInfo.setDetectState(noreasonBackInfo.getComplaintDetectList().get(0).getDetectState());
                 }
-                orderId = noreasonBackInfo.getOrderId();
+                //orderId = noreasonBackInfo.getOrderId();
                 customerCommon = CustomerCommonUtil.getCustomerCommon(7,noreasonBackInfo);
                 customerCommon = customerService.selectProdcueAndFitting(customerCommon,7);
                 break;
         }
-        SalesOrder salesOrder = new SalesOrder();
-        salesOrder.setSalesId(orderId);
-        //查询订单信息
-        List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(salesOrder);
+
+        RelationOrder relationOrder = new RelationOrder();
+        relationOrder.setRelationType(customerCommon.getCustomerIsSolve());
+        relationOrder.setRelationId(customerCommon.getRelationId());
+        List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(relationOrder);
+        String[] salesIds = new String[relationOrderList.size()];
+        for (int k=0; k<relationOrderList.size();k++){
+            salesIds[k] = String.valueOf(relationOrderList.get(k).getSalesId());
+        }
+        SalesOrder so = new SalesOrder();
+        so.setSalesIds(salesIds);
+        List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(so);
         if (orderList != null && orderList.size() > 0) {
             SalesOrder order = orderList.get(0);
             SalesOrderItem salesOrderItem = new SalesOrderItem();
             salesOrderItem.setItemOrderId(order.getSalesId());
             order.setSalesOrderItemList(salesOrderMapper.listSalesOrderItem(salesOrderItem));
-            map.put("salesOrder",order);
         } else {
-            map.put("salesOrder",null);
+            map.put("orderList",null);
         }
+        map.put("orderList",orderList);
         map.put("customerCommon",customerCommon);
         return map;
     }

+ 80 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/RelationOrderServiceImpl.java

@@ -0,0 +1,80 @@
+package com.iamberry.rst.service.cm;
+
+import com.iamberry.rst.core.cm.RelationOrder;
+import com.iamberry.rst.faces.cm.RelationOrderService;
+import com.iamberry.rst.service.cm.mapper.RelationOrderMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ *
+ * @author Administrator
+ * @Date 2018-04-16
+ */
+@Service
+public class RelationOrderServiceImpl  implements RelationOrderService {
+    @Autowired
+    private RelationOrderMapper relationOrderMapper;
+    /**
+     * 获取集合
+     * @param  relationOrder
+     * @return List
+     */
+    @Override
+    public List<RelationOrder> getRelationOrderList(RelationOrder  relationOrder){
+        return  relationOrderMapper.getRelationOrderList(relationOrder);
+    }
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  relationOrder
+     */
+    @Override
+    public  RelationOrder  getRelationOrderById(Integer  id){
+        return  relationOrderMapper.getRelationOrderById(id);
+    }
+    /**
+     * 增加数据
+     * @param  relationOrder
+     * @return Integer
+     */
+    @Override
+    public  Integer  save(RelationOrder  relationOrder){
+        return  relationOrderMapper.save(relationOrder);
+    }
+    /**
+     * 修改数据
+     * @param  relationOrder
+     * @return Integer
+     */
+    @Override
+    public  Integer  update(RelationOrder  relationOrder){
+        return  relationOrderMapper.update(relationOrder);
+    }
+    /**
+     * 删除数据
+     * @param  id
+     * @return Integer
+     */
+    @Override
+    public  Integer  delete(Integer  id){
+        return  relationOrderMapper.delete(id);
+    }
+
+    @Override
+    public Integer deleteByRelationId(Integer relationId) {
+        return  relationOrderMapper.deleteByRelationId(relationId);
+    }
+
+    /**
+     * 增加数据 <集合>
+     * @param  relationOrderList
+     * @return Integer
+     */
+    @Override
+    public  Integer  saveList(List<RelationOrder>  relationOrderList){
+        return  relationOrderMapper.saveList(relationOrderList);
+    }
+}

+ 57 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/RelationOrderMapper.java

@@ -0,0 +1,57 @@
+package com.iamberry.rst.service.cm.mapper;
+
+import com.iamberry.rst.core.cm.RelationOrder;
+
+import java.util.List;
+
+/**
+ *
+ * @author Administrator
+ * @Date 2018-04-16
+ */
+public interface RelationOrderMapper {
+    /**
+     * 获取集合
+     * @param  relationOrder
+     * @return List
+     */
+    List<RelationOrder> getRelationOrderList(RelationOrder  relationOrder);
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  relationOrder
+     */
+    RelationOrder  getRelationOrderById(Integer  id);
+    /**
+     * 增加数据
+     * @param  relationOrder
+     * @return Integer
+     */
+    Integer  save(RelationOrder  relationOrder);
+    /**
+     * 修改数据
+     * @param  relationOrder
+     * @return Integer
+     */
+    Integer  update(RelationOrder  relationOrder);
+    /**
+     * 删除数据
+     * @param  id
+     * @return Integer
+     */
+    Integer  delete(Integer  id);
+
+    /**
+     * 删除数据 by relationId
+     * @param  relationId
+     * @return Integer
+     */
+    Integer  deleteByRelationId(Integer  relationId);
+
+    /**
+     * 增加数据 <集合>
+     * @param  relationOrderList
+     * @return Integer
+     */
+    Integer  saveList(List<RelationOrder>  relationOrderList);
+}

+ 3 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/closedFittingMapper.xml

@@ -56,10 +56,12 @@
     select
       /*cf.closed_fitting_number closedFittingNumber,*/
       cf.*,
-      pf.fittings_name closedFittingsName
+      pf.fittings_name closedFittingsName,
+      pi.product_name closedProductName
     from
       tb_rst_closed_fitting cf
     LEFT JOIN tb_rst_product_fittings pf ON cf.fittings_id = pf.fittings_id
+    LEFT JOIN tb_rst_product_info pi ON cf.product_id = pi.product_id
     <where>
       <if test="relationId != null and relationId != ''">
         relation_id = #{relationId}

+ 7 - 4
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/closedProdcueMapper.xml

@@ -9,7 +9,7 @@
     <result column="closed_prodcue_number" property="closedProdcueNumber" jdbcType="INTEGER" />
   </resultMap>
   <sql id="Base_Column_List" >
-    closed_prodcue_id, relation_id, product_id, color_id, closed_prodcue_number
+    closed_prodcue_id, relation_id, product_id, closed_prodcue_machine_no, color_id, closed_prodcue_number
   </sql>
   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
     select 
@@ -19,12 +19,12 @@
   </select>
 
   <insert id="insert" parameterType="ClosedProdcue" >
-    insert into tb_rst_closed_prodcue ( relation_id, product_id,
+    insert into tb_rst_closed_prodcue ( relation_id, product_id, closed_prodcue_machine_no,
       color_id, closed_prodcue_number,closed_prodcue_type)
     values
     <foreach collection="list" item="node" index="index" separator="," open="" close="">
       (
-        #{node.relationId}, #{node.productId},
+        #{node.relationId}, #{node.productId}, #{node.closedProdcueMachineNo},
        #{node.colorId}, #{node.closedProdcueNumber},#{node.closedProdcueType}
       )
     </foreach>
@@ -76,6 +76,7 @@
     update tb_rst_closed_prodcue
     set relation_id = #{relationId,jdbcType=INTEGER},
       product_id = #{productId,jdbcType=INTEGER},
+      closed_prodcue_machine_no = #{closedProdcueMachineNo},
       color_id = #{colorId,jdbcType=INTEGER},
       closed_prodcue_number = #{closedProdcueNumber,jdbcType=INTEGER}
     where closed_prodcue_id = #{closedProdcueId,jdbcType=INTEGER}
@@ -85,9 +86,11 @@
   <select id="listclosedProdcue" parameterType="ClosedProdcue" resultType="ClosedProdcue">
     select
       cp.*,
-      pi.product_name closedProductName
+      pi.product_name closedProductName,
+      po.color_name closedColorName
     from tb_rst_closed_prodcue cp
     LEFT JOIN tb_rst_product_info pi ON cp.product_id = pi.product_id
+    LEFT JOIN tb_rst_product_color po ON cp.color_id = po.color_id
     <where>
       <if test="relationId != null and relationId != ''">
         relation_id = #{relationId}

+ 109 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/relationOrderMapper.xml

@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.iamberry.rst.service.cm.mapper.RelationOrderMapper">
+    <resultMap  id="BaseResultMap" type="RelationOrder" >
+        <result    column="relation_order_id"    property="relationOrderId" />
+        <result    column="relation_type"    property="relationType" />
+        <result    column="relation_id"    property="relationId" />
+        <result    column="sales_id"    property="salesId" />
+    </resultMap>
+    <sql    id="Base_List" >
+        t.relation_order_id,
+        t.relation_type,
+        t.relation_id,
+        t.sales_id
+    </sql>
+    <select id="getRelationOrderList" resultMap="BaseResultMap" parameterType="RelationOrder" >
+        select
+        <include refid="Base_List" />
+        from tb_rst_relation_order t
+        <where>
+            <if test="relationOrderId != null ">
+                AND t.relation_order_id = #{relationOrderId}
+            </if >
+            <if test="relationType != null ">
+                AND t.relation_type = #{relationType}
+            </if >
+            <if test="relationId != null ">
+                AND t.relation_id = #{relationId}
+            </if >
+            <if test="salesId != null ">
+                AND t.sales_id = #{salesId}
+            </if >
+        </where>
+    </select>
+    <select id="getRelationOrderById" resultMap="BaseResultMap" parameterType="Integer" >
+        select
+        <include refid="Base_List" />
+        from tb_rst_relation_order t
+        where t.relation_order_id= #{relationOrderId}
+    </select>
+    <insert id="save" parameterType="RelationOrder" >
+        insert into
+        tb_rst_relation_order
+        (
+        relation_order_id,
+        relation_type,
+        relation_id,
+        sales_id
+        )
+        values
+        (
+        #{relationOrderId},
+        #{relationType},
+        #{relationId},
+        #{salesId}
+        )
+    </insert>
+    <update id="update" parameterType="RelationOrder" >
+        update
+        tb_rst_relation_order
+        <set >
+            <if test="relationOrderId != null ">
+                relation_order_id = #{relationOrderId},
+            </if >
+            <if test="relationType != null ">
+                relation_type = #{relationType},
+            </if >
+            <if test="relationId != null ">
+                relation_id = #{relationId},
+            </if >
+            <if test="salesId != null ">
+                sales_id = #{salesId}
+            </if >
+        </set >
+        where relation_order_id= #{relationOrderId}
+    </update>
+
+    <delete id="delete" parameterType="Integer" >
+        delete FROM
+        tb_rst_relation_order
+        where relation_order_id=#{relationOrderId}
+    </delete>
+
+    <delete id="deleteByRelationId" parameterType="Integer" >
+        delete FROM
+          tb_rst_relation_order
+        where relation_id=#{relationId}
+    </delete>
+
+    <insert id="saveList" parameterType="java.util.List" >
+        insert into
+        tb_rst_relation_order
+        (
+        relation_order_id,
+        relation_type,
+        relation_id,
+        sales_id
+        )
+        values
+        <foreach collection="list" item="node" index="index" separator="," open="" close="">
+            (
+            #{node.relationOrderId},
+            #{node.relationType},
+            #{node.relationId},
+            #{node.salesId}
+            )
+        </foreach >
+    </insert>
+</mapper>

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml

@@ -93,6 +93,12 @@
       <if test="endDate != null and endDate != ''">
         AND sales_create_time <![CDATA[<=]]> #{endDate}
       </if>
+      <if test="salesIds != null and salesIds != ''">
+        AND sales_id IN
+        <foreach collection="salesIds" item="node" index="index" separator="," open="(" close=")">
+              #{node}
+        </foreach >
+      </if>
     </where>
     ORDER BY sales_create_time DESC
   </select>

+ 3 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/sendFittingMapper.xml

@@ -22,9 +22,11 @@
   <select id="listSendFitting" parameterType="SendFitting" resultType="SendFitting">
     select
       sf.*,
-      pf.fittings_name sendFittingsName
+      pf.fittings_name sendFittingsName,
+      pi.product_name sendProductName
     from tb_rst_send_fitting sf
     LEFT JOIN tb_rst_product_fittings pf ON sf.fittings_id = pf.fittings_id
+    LEFT JOIN tb_rst_product_info pi ON sf.product_id = pi.product_id
     <where>
       <if test="relationId != null and relationId != ''">
         sf.relation_id = #{relationId}

+ 3 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/sendProdcueMapper.xml

@@ -22,10 +22,12 @@
   <select id="listSendProdcue" parameterType="SendProdcue" resultType="SendProdcue">
     select
       sp.*,
-      pi.product_name sendProduceName
+      pi.product_name sendProduceName,
+      po.color_name sendColorName
     from
       tb_rst_send_prodcue sp
     LEFT JOIN tb_rst_product_info pi ON sp.product_id = pi.product_id
+    LEFT JOIN tb_rst_product_color po ON sp.color_id = po.color_id
     <where>
       <if test="relationId != null and relationId != ''">
         sp.relation_id = #{relationId}

+ 82 - 32
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -95,6 +95,8 @@ public class AdminCustomerController {
     private PostageService postageService;
     @Autowired
     private EfastOrderService efastOrderService;
+    @Autowired
+    private RelationOrderService relationOrderService;
 
 
 
@@ -212,39 +214,85 @@ public class AdminCustomerController {
             /*查询所有需要寄入寄出的产品*/
             customerCommon.setCustomerIsSolve(customerInfo.getCustomerIsSolve());
             customerCommon = customerCommonService.getListProduceAndFitting(customerCommon);
+
+            // 2018/4/18  页面只会给寄回的赋值,在处理方式为补发的情况下,寄出需要赋值到寄回当中
+            if(customerInfo.getCustomerIsSolve() == 5){
+                //售后寄回产品表
+                List<ClosedProdcue> closedProdcues = new ArrayList<ClosedProdcue>();
+                for (SendProdcue sendProdcue : customerCommon.getSendProdcues()) {
+                    ClosedProdcue closedProdcue = new ClosedProdcue();
+                    closedProdcue.setRelationId(sendProdcue.getRelationId());
+                    closedProdcue.setProductType(sendProdcue.getProductType());
+                    closedProdcue.setProductId(sendProdcue.getProductId());
+                    closedProdcue.setColorId(sendProdcue.getColorId());
+                    closedProdcue.setClosedProductName(sendProdcue.getSendProduceName());
+                    closedProdcue.setClosedColorName(sendProdcue.getSendColorName());
+                    closedProdcue.setClosedProdcueNumber(sendProdcue.getSendProdcueNumber());
+                    closedProdcues.add(closedProdcue);
+                }
+                //售后寄回产品配件表
+                List<ClosedFitting> closedFittings = new ArrayList<ClosedFitting>();
+                for (SendFitting sendFitting : customerCommon.getSendFittings()) {
+                    ClosedFitting closedFitting = new ClosedFitting();
+                    closedFitting.setRelationId(sendFitting.getRelationId());
+                    closedFitting.setClosedFittingType(sendFitting.getSendFittingType());
+                    closedFitting.setProductId(sendFitting.getProductId());
+                    closedFitting.setFittingsId(sendFitting.getFittingsId());
+                    closedFitting.setClosedProductName(sendFitting.getSendProductName());
+                    closedFitting.setClosedFittingsName(sendFitting.getSendFittingsName());
+                    closedFitting.setClosedFittingNumber(sendFitting.getSendFittingNumber());
+                    closedFittings.add(closedFitting);
+                }
+                customerCommon.setClosedProdcues(closedProdcues);
+                customerCommon.setClosedFittings(closedFittings);
+            }
             mv.addObject("customerCommon", customerCommon);
 
-            if(customerCommon.getOrderId() == null || "".equals(customerCommon.getOrderId())){
+            if(customerInfo.getTypeId() == 1){
                 customerInfo.setIsNeedSelectOrder(2);       //不需要订单
             }else{
                 customerInfo.setIsNeedSelectOrder(1);
             }
 
             /*查询所有的产品,颜色和配件信息*/
-
-            List<Product> productList = productService.listProduce(new Product());
-            for(Product product : productList){
-                ProductColor productColor = new ProductColor();
-                productColor.setColorProductId(product.getProductId());
-                List<ProductColor>  productColorList = productService.listProduceColor(productColor);
-                product.setColorList(productColorList);
-
-                FittingsInfo fittingsInfo = new FittingsInfo();
-                fittingsInfo.setProductId(product.getProductId());
-                List<FittingsInfo> fittingsInfoList = fittingsInfoService.listFittings(fittingsInfo);
-                product.setFittingsList(fittingsInfoList);
-            }
-            mv.addObject("productList", productList);
-            if(customerCommon.getOrderId() != null){
-                /*查询订单信息*/
-                SalesOrder salesOrder = salesOrderService.getSalesOrderById(customerCommon.getOrderId());
-                SalesOrderItem salesOrderItem = new SalesOrderItem();
-                salesOrderItem.setItemOrderId(salesOrder.getSalesId());
-                List<SalesOrderItem> salesOrderItemList = salesOrderService.listSalesOrderItem(salesOrderItem);
-                salesOrder.setSalesOrderItemList(salesOrderItemList);
-                mv.addObject("salesOrder", salesOrder);
+//            List<Product> productList = productService.listProduce(new Product());
+//            for(Product product : productList){
+//                ProductColor productColor = new ProductColor();
+//                productColor.setColorProductId(product.getProductId());
+//                List<ProductColor>  productColorList = productService.listProduceColor(productColor);
+//                product.setColorList(productColorList);
+//
+//                FittingsInfo fittingsInfo = new FittingsInfo();
+//                fittingsInfo.setProductId(product.getProductId());
+//                List<FittingsInfo> fittingsInfoList = fittingsInfoService.listFittings(fittingsInfo);
+//                product.setFittingsList(fittingsInfoList);
+//            }
+//            mv.addObject("productList", productList);
+
+            if(customerInfo.getTypeId() != 1 && (customerInfo.getCustomerIsSolve() == 3 || customerInfo.getCustomerIsSolve() == 4 || customerInfo.getCustomerIsSolve() == 5 ||
+                    customerInfo.getCustomerIsSolve() == 6 || customerInfo.getCustomerIsSolve() == 7)){
+                RelationOrder relationOrder = new RelationOrder();
+                relationOrder.setRelationType(customerCommon.getCustomerIsSolve());
+                relationOrder.setRelationId(customerCommon.getRelationId());
+                List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(relationOrder);
+
+                String[] salesIds = new String[relationOrderList.size()];
+                for (int k=0; k<relationOrderList.size();k++){
+                    salesIds[k] = String.valueOf(relationOrderList.get(k).getSalesId());
+                }
+                SalesOrder so = new SalesOrder();
+                so.setSalesIds(salesIds);
+                List<SalesOrder> orderList = salesOrderService.listSalesOrder(so);
+                for (SalesOrder sor: orderList) {
+                    SalesOrderItem salesOrderItem = new SalesOrderItem();
+                    salesOrderItem.setItemOrderId(sor.getSalesId());
+                    List<SalesOrderItem> salesOrderItemList = salesOrderService.listSalesOrderItem(salesOrderItem);
+                    sor.setSalesOrderItemList(salesOrderItemList);
+                }
+                mv.addObject("salesOrderList", orderList);
+            }else{
+                mv.addObject("salesOrderList", null);
             }
-
         }
         if ("2".equals(customerInfo.getCustomerIsVisit())){ //1:不需要回访  2:需要回访
             Visit visit = new Visit();
@@ -423,12 +471,9 @@ public class AdminCustomerController {
         salesOrder.setSalesOrderItemList(list);
 
         try {
-            Map<String, Object> map = customerService.sendEfastOrder(salesOrder);
-//            if (map.get("status") == 1) {
-//                salesOrder.setSalesOrderId((String) map.get("EfastOrderId"));
-//            }
+           Integer flag = customerService.addOrder(salesOrder);
         } catch (RuntimeException e) {
-            return new ResponseJson(500, "添加订单成功--"+ e.getMessage(), 500);
+            return new ResponseJson(500, "添加订单失败--"+ e.getMessage(), 500);
         }
         Integer orderId = salesOrder.getSalesId();
         ResponseJson rj = new ResponseJson(200, "添加订单成功", 200);
@@ -470,11 +515,16 @@ public class AdminCustomerController {
     @ResponseBody
     @RequiresPermissions("customer:add:customer")
     @RequestMapping(value = "/select_salesOrder")
-    public ResponseJson listOrder(HttpServletRequest request, SalesOrder salesOrder,
-                @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
+    public ResponseJson listOrder(HttpServletRequest request, SalesOrder salesOrder,String ids,
+                @RequestParam(value = "pageSize", defaultValue = "20", required = false) Integer pageSize,
                 @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
                 @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
 
+        if(ids!= null && ids.indexOf("_") > -1){
+            String[] salesIds = ids.split("_");
+            salesOrder.setSalesIds(salesIds);
+        }
+
         //分页获取订单信息
         PagedResult<SalesOrder> pagedResult = salesOrderService.listSalesOrderPage(pageNO, pageSize, salesOrder, totalNum == 0);
 
@@ -593,7 +643,7 @@ public class AdminCustomerController {
         ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
         rj.addResponseKeyValue("customerCommon", map.get("customerCommon"));
         rj.addResponseKeyValue("customer", map.get("customer"));
-        rj.addResponseKeyValue("salesOrder", map.get("salesOrder"));
+        rj.addResponseKeyValue("orderList", map.get("orderList"));
         return rj;
     }
 

+ 34 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AppComplaintQuestionInfoController.java

@@ -1,7 +1,11 @@
 package com.iamberry.rst.controllers.cm;
 
 import com.iamberry.rst.core.cm.ComplaintQuestionInfo;
+import com.iamberry.rst.core.cm.CustomerCommon;
+import com.iamberry.rst.core.cm.RelationOrder;
 import com.iamberry.rst.faces.cm.ComplaintQuestionInfoService;
+import com.iamberry.rst.faces.cm.CustomerCommonService;
+import com.iamberry.rst.faces.cm.RelationOrderService;
 import com.iamberry.wechat.tools.ResponseJson;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -11,6 +15,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by wxm
@@ -28,6 +34,11 @@ public class AppComplaintQuestionInfoController {
     @Autowired
     private ComplaintQuestionInfoService complaintQuestionInfoService;
 
+    @Autowired
+    private CustomerCommonService customerCommonService;
+    @Autowired
+    private RelationOrderService relationOrderService;
+
 
     /**
      * 进入客诉问题描述
@@ -135,4 +146,27 @@ public class AppComplaintQuestionInfoController {
     }
 
 
+    /**
+     * 处理一个客诉对应多个订单
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/c_o")
+    public ResponseJson processCustomerOrder(HttpServletRequest request){
+        ResponseJson msg = new ResponseJson();
+        List<RelationOrder>  relationOrderList = new ArrayList<>();
+        CustomerCommon customerCommon  = new CustomerCommon();
+        List<CustomerCommon> customerCommonList = customerCommonService.listCustomerCommon(customerCommon);
+        for (int i=0; i<customerCommonList.size(); i++){
+            RelationOrder relationOrder = new RelationOrder();
+            relationOrder.setRelationId(customerCommonList.get(i).getRelationId());
+            relationOrder.setRelationType(customerCommonList.get(i).getCustomerIsSolve());
+            relationOrder.setSalesId(customerCommonList.get(i).getOrderId());
+            relationOrderList.add(relationOrder);
+        }
+        relationOrderService.saveList(relationOrderList);
+        return msg;
+    }
+
+
 }

+ 2 - 0
watero-rst-web/src/main/resources/watero-rst-orm.xml

@@ -84,6 +84,7 @@
 		<typeAlias type="com.iamberry.rst.core.cm.Postage" alias="Postage"/>
 		<typeAlias type="com.iamberry.rst.core.cm.PostageAuthority" alias="PostageAuthority"/>
 		<typeAlias type="com.iamberry.rst.core.cm.PostageAuthorityLog" alias="PostageAuthorityLog"/>
+		<typeAlias type="com.iamberry.rst.core.cm.RelationOrder" alias="RelationOrder"/>
 
 		<typeAlias type="com.iamberry.rst.core.sys.SysConfig" alias="SysConfig"/>
 
@@ -147,6 +148,7 @@
 		<mapper resource="com/iamberry/rst/service/cm/mapper/postageMapper.xml"/>
 		<mapper resource="com/iamberry/rst/service/cm/mapper/postageAuthorityMapper.xml"/>
 		<mapper resource="com/iamberry/rst/service/cm/mapper/postageAuthorityLogMapper.xml"/>
+		<mapper resource="com/iamberry/rst/service/cm/mapper/relationOrderMapper.xml"/>
 
 		<mapper resource="com/iamberry/rst/service/address/mapper/addressMapper.xml"/>
 

+ 25 - 21
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl

@@ -360,25 +360,28 @@
             <div class="row cl" id="order" style="display: none;">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-9 col-sm-9 text-c">
-                    <table class="table table-border table-bg table-bordered">
-                        <tr>
-                            <th style="text-align: center;">销售公司</th>
-                            <th style="text-align: center;">店铺名称</th>
-                            <th style="text-align: center;">Efast订单号</th>
-                            <th style="text-align: center;">姓名</th>
-                            <th style="text-align: center;">电话</th>
-                            <th style="text-align: center;">订单金额</th>
-                            <th style="text-align: center;">购买产品</th>
-                            <th style="text-align: center;">购买日期</th>
-                        </tr>
-                        <tr id="showOrder">
-                            <td style="text-align: center;" colspan="8">暂未选择订单</td>
-                        </tr>
-                        <tr id="showOrderAddress" style="display: none">
-                            <td style="text-align: center;" colspan="8">暂未选择订单</td>
-                        </tr>
+                    <table class="table table-border table-bg table-bordered" >
+                        <thead>
+                            <tr>
+                                <th style="text-align: center;">销售公司</th>
+                                <th style="text-align: center;">店铺名称</th>
+                                <th style="text-align: center;">Efast订单号</th>
+                                <th style="text-align: center;">姓名</th>
+                                <th style="text-align: center;">电话</th>
+                                <th style="text-align: center;">订单金额</th>
+                                <th style="text-align: center;">购买产品</th>
+                                <th style="text-align: center;">购买日期</th>
+                                <th style="text-align: center;">收货地址</th>
+                            </tr>
+                        </thead>
+                        <tbody id="showSalesOrderId">
+                            <tr >
+                                <td style="text-align: center;" colspan="9">暂未选择订单</td>
+                            </tr>
+                        </tbody>
                     </table>
                     <input type="hidden" id="orderId" name="salesId" value="" >
+                    <input type="hidden" id="ids" name="ids" value="" >
                 </div>
             </div>
 
@@ -431,7 +434,7 @@
                     <span id="addrssMsg"></span>
                 </div>
             </div>
-            <div class="row cl" id="renewedProduct" style="display: none;">
+            <div class="row cl" id="renewedProduct" style="">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span><span id="relationProduct">换新产品</span>:</label>
                 <div class="formControls col-9 col-sm-9 text-c" id="produceSelect">
 
@@ -439,13 +442,14 @@
                         <thead>
                             <tr class="text-c" id="table1">
                                 <th style="text-align: center;" width="60">产品名称</th>
-                                <th style="text-align: center;" width="60">产品颜色</th>
-                                <th style="text-align: center;" width="60">产品配件</th>
+                                <th style="text-align: center;" width="40">产品颜色</th>
+                                <th style="text-align: center;" width="30">数量</th>
+                                <th style="text-align: center;" width="100">机器编码</th>
                             </tr>
                         </thead>
                         <tbody id="addProduct">
                             <tr id="">
-                                <td style="text-align: center;" colspan="3">请选择订单之后再选择产品</td>
+                                <td style="text-align: center;" colspan="4">选择订单后展示</td>
                             </tr>
                         </tbody>
                     </table>

+ 56 - 29
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_detail.ftl

@@ -132,26 +132,31 @@
             </div>
             <div class="row cl">
                 <label class="form-label col-1 col-sm-1">订单信息:</label>
-                <div class="formControls col-7 col-sm-7 text-c">
+                <div class="formControls col-9 col-sm-9 text-c">
                     <table class="table table-border table-bg table-bordered">
-                        <tr>
-                            <th>销售</th>
-                            <th>订单号</th>
-                            <th>姓名</th>
-                            <th>电话</th>
-                            <th>订单金额</th>
-                            <th>购买产品</th>
-                            <th>购买日期</th>
-                        </tr>
-                        <tr>
-                            <td id="companyName"></td>
-                            <td id="salesOrderId"></td>
-                            <td id="salesAddressName"></td>
-                            <td id="salesAddressTel"></td>
-                            <td id="salesPayMoney"></td>
-                            <td id="salesItem"></td>
-                            <td id="salesPayTime"></td>
-                        </tr>
+                        <thead>
+                            <tr>
+                                <th>销售</th>
+                                <th>订单号</th>
+                                <th>姓名</th>
+                                <th>电话</th>
+                                <th>订单金额</th>
+                                <th>购买产品</th>
+                                <th>购买日期</th>
+                                <th>地址</th>
+                            </tr>
+                        </thead>
+                        <tbody id="salesOrderHtml">
+                            <tr>
+                                <td id="companyName"></td>
+                                <td id="salesOrderId"></td>
+                                <td id="salesAddressName"></td>
+                                <td id="salesAddressTel"></td>
+                                <td id="salesPayMoney"></td>
+                                <td id="salesItem"></td>
+                                <td id="salesPayTime"></td>
+                            </tr>
+                        </tbody>
                     </table>
                 </div>
             </div>
@@ -256,6 +261,7 @@
                     var customer = data.returnMsg.customer;
                     var customerCommon = data.returnMsg.customerCommon;
                     var salesOrder = data.returnMsg.salesOrder;
+                    var orderList = data.returnMsg.orderList;
 
                     if (customer.customerIsSolve != 1 && customer.customerIsSolve != 2) {
                         resultshow(customer.customerIsSolve, customerCommon.relationBackStatus,customerCommon.relationSendStatus,
@@ -317,17 +323,38 @@
                             break;
                     }
                     $('#customerIsSolve').html(txtcustomerIsSolve);
-                    $('#companyName').html(convertUndefinedToEmpty(customer.companyName)+"-"+convertUndefinedToEmpty(customer.storeName));
-                    $('#salesOrderId').html(salesOrder.salesOrderId);
-                    $('#salesAddressName').html(salesOrder.salesAddressName);
-                    $('#salesAddressTel').html(salesOrder.salesAddressTel);
-                    $('#salesPayMoney').html('¥'+salesOrder.salesPayMoney/100);
-                    var salesItem = '';
-                    $.each(salesOrder.salesOrderItemList,function(index,item){
-                        salesItem = this.itemProductName + '*' + this.itemNum
+//                    $('#companyName').html(convertUndefinedToEmpty(customer.companyName)+"-"+convertUndefinedToEmpty(customer.storeName));
+
+
+                    var salesOrderHtml = "";
+                    $.each(orderList,function(index,item){
+                        var itemHtml = "";
+                        $.each(this.salesOrderItemList,function(index,item){
+                            itemHtml = this.itemProductName + '*' + this.itemNum
+                        })
+                        salesOrderHtml += '<tr>'
+                            + '<td id="">'+ convertUndefinedToEmpty(customer.companyName)+"-"+convertUndefinedToEmpty(customer.storeName) +'</td>'
+                            + '<td id="">'+ this.salesOrderId +'</td>'
+                            + '<td id="">'+ this.salesAddressName +'</td>'
+                            + '<td id="">'+ this.salesAddressTel +'</td>'
+                            + '<td id="">'+ this.salesPayMoney/100 +'</td>'
+                            + '<td id="">'+ itemHtml +'</td>'
+                            + '<td id="">'+ this.salesPayTime +'</td>'
+                            + '<td id="">'+ this.salesAddressInfo +'</td>'
+                            + '</tr>';
                     })
-                    $('#salesItem').html(salesItem);
-                    $('#salesPayTime').html(salesOrder.salesPayTime);
+                    $("#salesOrderHtml").html(salesOrderHtml);
+
+//                    $('#salesOrderId').html(salesOrder.salesOrderId);
+//                    $('#salesAddressName').html(salesOrder.salesAddressName);
+//                    $('#salesAddressTel').html(salesOrder.salesAddressTel);
+//                    $('#salesPayMoney').html('¥'+salesOrder.salesPayMoney/100);
+//                    var salesItem = '';
+//                    $.each(salesOrder.salesOrderItemList,function(index,item){
+//                        salesItem = this.itemProductName + '*' + this.itemNum
+//                    })
+//                    $('#salesItem').html(salesItem);
+//                    $('#salesPayTime').html(salesOrder.salesPayTime);
                     $('#relationSendMergeAddress').html( convertUndefinedToEmpty(customerCommon.relationSendMergeAddress)+"-"+convertUndefinedToEmpty(customerCommon.relationSendAddress));
                     $('#describeHandleDesc').html(customer.describeHandleDesc);
 

+ 25 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl

@@ -84,10 +84,13 @@
                     </div>
                     <div class="formControls col-2 col-sm-2" style="padding: 0px 10px 0px 0px; width: 110px;"> <span class="select-box">
                         <select name="salesOrderStatus" class="select" id="salesOrderStatus">
+                            <#--1:正常 2:换货 3:退货  4:维修  5:补发-->
                             <option value="">所有类型</option>
                             <option value="1">正常</option>
                             <option value="2">换货</option>
                             <option value="3">退货</option>
+                            <option value="4">维修</option>
+                            <option value="5">补发</option>
                             <#--<option value="0">取消订单</option>
                             <option value="1">待支付</option>
                             <option value="2">已支付</option>
@@ -130,10 +133,11 @@
             </form>
         </div>
 
-        <div class="mt-20 ">
+        <div class="mt-20" style="height: 330px;overflow: auto;overflow-x: hidden;margin-bottom: 12px;border: 1px solid #ddd;">
             <table class="table table-border table-bordered table-bg table-hover table-sort">
                 <thead>
                 <tr class="text-c">
+                    <th width="10"></th>
                     <th width="50">销售公司</th>
                     <th width="50">店铺名称</th>
                     <th width="50">Efast订单号</th>
@@ -145,7 +149,6 @@
                     <th width="80">购买日期</th>
                     <th width="80">订单状态</th>
                     <th width="100">收货地址</th>
-                    <th width="80">操作</th>
                 </tr>
                 </thead>
                 <tbody id="orderAll">
@@ -158,6 +161,10 @@
                 </tbody>
             </table>
         </div>
+
+        <div class="formControls col-1 col-sm-1" style="margin-left: 45%;">
+            <button type="button" class="btn btn-primary" style="background: #32a3d8;color: #fff;" id="" name="" onclick="selectOrderInfo()">确认选择</button>
+        </div>
     </div>
 
 
@@ -367,8 +374,16 @@
                         if(salesOrder.salesOrderStatus == 3){
                             orderStatus = "退货";
                         }
+                        if(salesOrder.salesOrderStatus == 4){
+                            orderStatus = "维修";
+                        }
+                        if(salesOrder.salesOrderStatus == 5){
+                            orderStatus = "补发";
+                        }
+                        <#--1:正常 2:换货 3:退货  4:维修  5:补发-->
 
                         html += '<tr class="text-c">' +
+                                ' <td><input type="checkbox" class="sales_order_id" id="" value="'+ salesOrder.salesId +'" ></td>' +
                                 ' <td>'+ convertUndefinedToEmpty(salesOrder.companyName) +'</td>' +
                                 ' <td>'+ convertUndefinedToEmpty(salesOrder.storeName) +'</td>' +
                                 ' <td>'+ salesOrder.salesOrderId +'</td>' +
@@ -380,7 +395,7 @@
                                 ' <td>'+ time +'</td>' +
                                 ' <td>'+ orderStatus +'</td>' +
                                 ' <td>'+ salesOrder.salesAddressInfo +'</td>' +
-                                ' <td><a style="" class="select-order" href="javascript:void(0);" title="选择订单" onclick="selectOrderInfo('+ salesOrder.salesId +')" >选择订单</a></td>' +
+                                //' <td><a style="" class="select-order" href="javascript:void(0);" title="选择订单" onclick="selectOrderInfo('+ salesOrder.salesId +')" >选择订单</a></td>' +
                                 ' </tr>';
                     }
                 }else{
@@ -398,7 +413,13 @@
     /**
      * 选择订单,返回订单内容到父级
      */
-    function selectOrderInfo(orderId) {
+    function selectOrderInfo() {
+        var orderId = "";
+        $(".sales_order_id").each(function(){
+            if($(this).is(':checked')){
+                orderId += $(this).val() + "_";
+            }
+        })
         parent.setSelectOrder(orderId);
         parent.layer.close(parent.layer.getFrameIndex(window.name));
     }

+ 140 - 82
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_customer.ftl

@@ -332,44 +332,47 @@
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-9 col-sm-9 text-c">
                     <table class="table table-border table-bg table-bordered">
-                        <tr>
-                            <th style="text-align: center;">销售公司</th>
-                            <th style="text-align: center;">店铺名称</th>
-                            <th style="text-align: center;">Efast订单号</th>
-                            <th style="text-align: center;">姓名</th>
-                            <th style="text-align: center;">电话</th>
-                            <th style="text-align: center;">订单金额</th>
-                            <th style="text-align: center;">购买产品</th>
-                            <th style="text-align: center;">购买日期</th>
-                        </tr>
-                        <tr id="showOrder">
-                                <#if salesOrder??>
-                                <td style="text-align: center;">${salesOrder.companyName!''}</td>
-                                <td style="text-align: center;">${salesOrder.storeName!''}</td>
-                                <td style="text-align: center;">${salesOrder.salesOrderId!''}</td>
-                                <td style="text-align: center;">${salesOrder.salesAddressName!''}</td>
-                                <td style="text-align: center;">${salesOrder.salesAddressTel!''}</td>
-                                <td style="text-align: center;">${salesOrder.salesPayMoney!''}</td>
-                                <td style="text-align: center;">
-                                    <#list salesOrder.salesOrderItemList as salesOrderItem>
-                                    ${salesOrderItem.itemProductName}* ${salesOrderItem.itemNum}<br>
-                                    </#list>
-                                </td>
-                                <td style="text-align: center;">${(salesOrder.salesPayTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
+                        <thead>
+                            <tr>
+                                <th style="text-align: center;">销售公司</th>
+                                <th style="text-align: center;">店铺名称</th>
+                                <th style="text-align: center;">Efast订单号</th>
+                                <th style="text-align: center;">姓名</th>
+                                <th style="text-align: center;">电话</th>
+                                <th style="text-align: center;">订单金额</th>
+                                <th style="text-align: center;">购买产品</th>
+                                <th style="text-align: center;">购买日期</th>
+                                <th style="text-align: center;">收货地址</th>
+                            </tr>
+                        </thead>
+                        <tbody id="showSalesOrderId">
+                            <#if salesOrderList??>
+                                <#list salesOrderList as salesOrder>
+                                    <tr id="showOrder">
+                                        <td style="text-align: center;">${salesOrder.companyName!''}</td>
+                                        <td style="text-align: center;">${salesOrder.storeName!''}</td>
+                                        <td style="text-align: center;">${salesOrder.salesOrderId!''}</td>
+                                        <td style="text-align: center;">${salesOrder.salesAddressName!''}</td>
+                                        <td style="text-align: center;">${salesOrder.salesAddressTel!''}</td>
+                                        <td style="text-align: center;">${salesOrder.salesPayMoney!''}</td>
+                                        <td style="text-align: center;">
+                                            <#list salesOrder.salesOrderItemList as salesOrderItem>
+                                                ${salesOrderItem.itemProductName}(${salesOrderItem.itemProductColor})* ${salesOrderItem.itemNum}<br>
+                                            </#list>
+                                        </td>
+                                        <td style="text-align: center;">${(salesOrder.salesPayTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
+                                        <td style="text-align: center;">${salesOrder.salesAddressInfo}</td>
+                                    </tr>
+                                </#list>
                             </#if>
-                         </tr>
-                        <tr id="showOrderAddress" style="">
-                            <td style="text-align: center;">收货地址</td>
-                            <td style="text-align: center;" colspan="7"> <#if salesOrder??>${salesOrder.salesAddressInfo}</#if></td>
-                        </tr>
+                        </tbody>
                     </table>
-
                 </div>
             </div>
 
             <div class="row cl" id="salesChannelsSelect" style="">
-                <input type="hidden" id="companyId" name="companyId" value="<#if salesOrder??>${salesOrder.salesCompanyId}</#if>">
-                <input type="hidden" id="storeId" name="storeId" value="<#if salesOrder??>${salesOrder.salesStoreId}</#if>">
+                <input type="hidden" id="companyId" name="companyId" value="<#if customerInfo??>${customerInfo.companyId!''}</#if>">
+                <input type="hidden" id="storeId" name="storeId" value="<#if customerInfo??>${customerInfo.storeId!''}</#if>">
                 <label class="form-label col-1 col-sm-1">销售渠道:</label>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
@@ -385,7 +388,15 @@
                 </div>
             </div>
 
-            <input type="hidden" id="orderId" name="salesId" value="<#if salesOrder??>${salesOrder.salesId}</#if>">
+            <#assign ids = ""/>
+            <#if salesOrderList??>
+                <#list salesOrderList as salesOrder>
+                    <#assign ids += salesOrder.salesId + "_"/>
+                </#list>
+            </#if>
+            <input type="hidden" id="orderId" name="salesId" value="">
+            <input type="hidden" id="ids" name="ids" value="${ids!''}" >
+
             <div class="row cl" id="recipientInfoTitle" style="display: none;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>收件信息:</label>
                 <div class="formControls col-8 col-sm-8">请先选择订单,系统自动填充姓名,电话和地址信息。</div>
@@ -444,12 +455,58 @@
                         <thead>
                             <tr class="text-c" id="table1">
                                 <th style="text-align: center;" width="60">产品名称</th>
-                                <th style="text-align: center;" width="60">产品颜色</th>
-                                <th style="text-align: center;" width="60">产品配件</th>
+                                <th style="text-align: center;" width="40">产品颜色</th>
+                                <th style="text-align: center;" width="30">数量</th>
+                                <th style="text-align: center;" width="100">机器编码</th>
                             </tr>
                         </thead>
                         <tbody id="addProduct">
-                        <#list productList as product>
+
+                            <#if (customerCommon.closedProdcues?size>0)>
+                                <#list customerCommon.closedProdcues as closedProdcues>
+                                <tr>
+                                        <td style="text-align: center;">
+                                            ${closedProdcues.closedProductName!""}
+                                        </td>
+                                        <td style="text-align: center;">
+                                            ${closedProdcues.closedColorName!""}
+                                        </td>
+                                        <td style="text-align: center;">
+                                            ${closedProdcues.closedProdcueNumber!""}
+                                        </td>
+                                        <td style="text-align: center;">
+                                            <input type="hidden" class="input-produce-id" value="${closedProdcues.productId}">
+                                            <input type="hidden" class="input-fc-id" value="${closedProdcues.colorId}">
+                                            <input type="text" class="input-text input-number" style="width: 100%;border: none;text-align: center;" value="${closedProdcues.closedProdcueMachineNo!""}" placeholder="机器编号" name="" id="item-${closedProdcues.productId}-${closedProdcues.colorId}" number="${closedProdcues.closedProdcueNumber}"  itemIsSource="1"  onkeyup="keyFunString($(this),30)" onpaste="keyFunString($(this),30)" >
+                                        </td>
+                                </tr>
+                                </#list>
+                                <#list customerCommon.closedFittings as closedFittings>
+                                    <tr>
+                                        <td style="text-align: center;">
+                                            ${closedFittings.closedProductName!""}
+                                        </td>
+                                        <td style="text-align: center;">
+                                            ${closedFittings.closedFittingsName!""}
+                                        </td>
+                                        <td style="text-align: center;">
+                                            ${closedFittings.closedFittingNumber!""}
+                                        </td>
+                                        <td style="text-align: center;">
+                                            <input type="hidden" class="input-produce-id" value="${closedFittings.productId}">
+                                            <input type="hidden" class="input-fc-id" value="${closedFittings.fittingsId}">
+                                            -
+                                            <input type="hidden" class="input-text input-number" style="width: 100%;border: none;text-align: center;" value="" placeholder="机器编号" name="" id="item-${closedFittings.productId}-${closedFittings.fittingsId}" number="${closedFittings.closedFittingNumber}"  itemIsSource="1"  onkeyup="keyFunString($(this),30)" onpaste="keyFunString($(this),30)" >
+                                        </td>
+                                    </tr>
+                                </#list>
+                            <#else >
+                                <tr>
+                                    <td style="text-align: center;" colspan="4">选择订单后展示</td>
+                                </tr>
+                            </#if>
+
+                      <#--  <#list productList as product>
                             <tr>
                                 <td width="80">
                                     <input type="hidden" value="${product.productId}"><span>${product.productName}</span>
@@ -479,7 +536,6 @@
                                                                     </#if>
                                                                 </#list>
                                                             </#if>
-
                                                         <input type="text" class="input-text input-color-number number-input" style="width: 100%;border: none;text-align: center;" value="${number}" placeholder="产品数量" id="color-1-1" name="" onkeyup="keyFun($(this),999)" onpaste="keyFun($(this),999)">
                                                     </td>
                                                 </tr>
@@ -520,11 +576,10 @@
                                     </table>
                                 </td>
                             </tr>
-                        </#list>
+                        </#list>-->
 
                         </tbody>
                     </table>
-
                 </div>
             </div>
 
@@ -595,59 +650,62 @@
                             </tr>
                         </thead>
                         <tbody id="back-product">
-                <#list productList as product>
+                        <#-- <#list productList as product>
                 <tr>
-                <td width="80">
+                    <td width="80">
                         <input type="hidden" value="${product.productId}"><span>${product.productName}</span>
-                        </td>
-                        <td style="padding: 0px;text-align: center;">
-                        <table style="height: 100%;">
-                <tbody>
-                    <#list product.colorList as color>
-                    <tr>
-                    <td width="55" style="border-left: none;text-align: center;border-top: 1px solid #ddd;">
-                            ${color.colorName}
-                            </td>
-                            <td width="45" style="border-top: 1px solid #ddd; padding: 0px;width: 25px;">
-                            <input type="hidden" class="input-produce-id" value="${product.productId}">
-                            <input type="hidden" class="input-color-id" value="${color.colorId}">
-                                <#assign number = ""/>
-                                <#list customerCommon.closedProdcues as closedProdcues>
-                                    <#if closedProdcues.colorId == color.colorId >
-                                        <#assign number = closedProdcues.closedProdcueNumber/>
-                                    </#if>
-                                </#list>
-                            <input type="text" class="input-text input-color-number number-input" style="width: 100%;border: none;text-align: center;" value="${number}" placeholder="产品数量" id="color-1-1" name="" onkeyup="keyFun($(this),999)" onpaste="keyFun($(this),999)">
                     </td>
-                    </tr>
-                    </#list>
-                </tbody>
-                </table>
-                </td>
                     <td style="padding: 0px;text-align: center;">
-                            <table style="height: 100%;">
-                                <tbody>
-                    <#list product.fittingsList as fittingsInfo>
+                        <table style="height: 100%;">
+                            <tbody>
+
+                             <#list product.colorList as color>
                                     <tr>
-                                    <td width="55" style="border-left: none;text-align: center; border-top: 1px solid #ddd;">${fittingsInfo.fittingsName}</td>
-                                            <td width="45" style="border-top: 1px solid #ddd;padding: 0px;width: 25px;">
-                                            <input type="hidden" class="input-produce-id" value="${fittingsInfo.productId}">
-                                            <input type="hidden" class="input-fittings-id" value="${fittingsInfo.fittingsId}">
-                                                <#assign number2 = ""/>
-                                                <#list customerCommon.closedFittings as closedFittings>
-                                                    <#if closedFittings.fittingsId == fittingsInfo.fittingsId >
-                                                        <#assign number2 = closedFittings.closedFittingNumber/>
+                                    <td width="55" style="border-left: none;text-align: center;border-top: 1px solid #ddd;">
+                                            ${color.colorName}
+                                            </td>
+                                            <td width="45" style="border-top: 1px solid #ddd; padding: 0px;width: 25px;">
+                                            <input type="hidden" class="input-produce-id" value="${product.productId}">
+                                            <input type="hidden" class="input-color-id" value="${color.colorId}">
+                                                <#assign number = ""/>
+                                                <#list customerCommon.closedProdcues as closedProdcues>
+                                                    <#if closedProdcues.colorId == color.colorId >
+                                                        <#assign number = closedProdcues.closedProdcueNumber/>
                                                     </#if>
                                                 </#list>
-                                            <input type="text" class="input-text input-fittings-number" style="width: 100%;border: none;text-align: center;" value="${number2}" placeholder="配件数量" id="fittings-1-1" name="" onkeyup="keyFun($(this),999)" onpaste="keyFun($(this),999)">
+                                            <input type="text" class="input-text input-color-number number-input" style="width: 100%;border: none;text-align: center;" value="${number}" placeholder="产品数量" id="color-1-1" name="" onkeyup="keyFun($(this),999)" onpaste="keyFun($(this),999)">
                                     </td>
                                     </tr>
-                                    </#list>
-                                </tbody>
+                                </#list>
+
+                            </tbody>
                             </table>
-                    </td>
-                </tr>
-                </#list>
+                            </td>
+                                <td style="padding: 0px;text-align: center;">
+                                        <table style="height: 100%;">
+                                            <tbody>
+                                <#list product.fittingsList as fittingsInfo>
+                                                <tr>
+                                                <td width="55" style="border-left: none;text-align: center; border-top: 1px solid #ddd;">${fittingsInfo.fittingsName}</td>
+                                                        <td width="45" style="border-top: 1px solid #ddd;padding: 0px;width: 25px;">
+                                                        <input type="hidden" class="input-produce-id" value="${fittingsInfo.productId}">
+                                                        <input type="hidden" class="input-fittings-id" value="${fittingsInfo.fittingsId}">
+                                                            <#assign number2 = ""/>
+                                                            <#list customerCommon.closedFittings as closedFittings>
+                                                                <#if closedFittings.fittingsId == fittingsInfo.fittingsId >
+                                                                    <#assign number2 = closedFittings.closedFittingNumber/>
+                                                                </#if>
+                                                            </#list>
+                                                        <input type="text" class="input-text input-fittings-number" style="width: 100%;border: none;text-align: center;" value="${number2}" placeholder="配件数量" id="fittings-1-1" name="" onkeyup="keyFun($(this),999)" onpaste="keyFun($(this),999)">
+                                                </td>
+                                                </tr>
+                                                </#list>
+                                            </tbody>
+                                        </table>
+                                </td>
+                            </tr>
+                            </#list>-->
+
                         </tbody>
                     </table>
                 </div>

+ 21 - 0
watero-rst-web/src/main/webapp/common/js/common/common.js

@@ -181,6 +181,26 @@ function keyFun(node,maxNumber,minNumber){
     $(node).val(number);
 }
 
+
+/**
+ * 获取当前节点,超过最大字节删除
+ * @param node
+ * @param maxNumber  最大字节数
+ */
+function keyFunString(node,maxLength){
+    var c = $(node);
+    if(c.val() == ""){
+        $(node).val("");
+        return false;
+    }
+    var temp_amount=c.val().replace(/[^\w]/g,'');
+    if(temp_amount!= null && temp_amount!= "" && temp_amount.length > maxLength){
+        temp_amount = temp_amount.substring(0,maxLength);
+    }
+    $(node).val(temp_amount);
+}
+
+
 // var c=$(node);
 // if(/[^\d]/.test(c.val())){//替换非数字字符
 //     var temp_amount=c.val().replace(/[^\d]/g,'');
@@ -278,3 +298,4 @@ function replace(code) {
     }
     return name;
 }
+

+ 200 - 153
watero-rst-web/src/main/webapp/common/js/customer/customer.js

@@ -195,11 +195,11 @@ var isSolve = {
 var isSolveTitleMsg = {
     solved : [[],[]],
     noSolved : [[],[]],
-    renewed : [["退回产品","退回产品颜色","退回产品配件"],["更换产品","更换产品颜色","更换产品配件"]],
-    maintain : [["需要维修的产品","需要维修的产品颜色","需要维修的产品配件"],["维修产品","维修产品颜色","维修产品配件"]],
-    reissue : [["补发产品","补发产品颜色","补发产品配件"],[]],
-    backGoods : [["退回产品","退回产品颜色","退回产品配件"],[]],
-    noReasonBack : [["退回产品","退回产品颜色","退回产品配件"],[]]
+    renewed : [["退回产品","退回产品颜色","退回产品配件","机器编码"],["寄出产品","寄出产品颜色","寄出产品配件"]],
+    maintain : [["寄回的产品","寄回的产品颜色","寄回的产品配件","机器编码"],["维修发出产品","维修发出产品颜色","维修发出产品配件"]],
+    reissue : [[],["补发产品","补发产品颜色","补发产品配件"]],
+    backGoods : [["退回产品","退回产品颜色","退回产品配件","机器编码"],[]],
+    noReasonBack : [["退回产品","退回产品颜色","退回产品配件","机器编码"],[]]
 }
 /*===============================定义全局变量以及监听事件和初始化  -- end -- =============================== */
 
@@ -497,7 +497,7 @@ function initProcessResult(type){
                 //$("#recipientInfoTitle").show();
                 //$("#recipientAddress").show();
                 //$("#recipientAddressText").show();
-                //$("#renewedProduct").show();
+                $("#renewedProduct").show();
                 $("#TDScollect").show();
                 $("#TDScollectShow").show();
                 $("#sendAddressInfo").show();
@@ -506,12 +506,6 @@ function initProcessResult(type){
                 $("#postageAccount").show();    //邮费转账账户
                 visitByType(2); //需要回访
                 //$("#salesChannelsSelect").hide();  //屏蔽销售公司
-
-                var orderId = $("#orderId").val();
-                if(orderId != null && orderId != ""){
-                    setSelectOrder(orderId);
-                }
-
                 break;
             case 4: //维修
                 result = isSolve.maintain;
@@ -524,7 +518,7 @@ function initProcessResult(type){
                 //$("#recipientInfoTitle").show();
                 //$("#recipientAddress").show();
                 //$("#recipientAddressText").show();
-                //$("#renewedProduct").show();
+                $("#renewedProduct").show();
                 $("#TDScollect").show();
                 $("#TDScollectShow").show();
                 $("#sendAddressInfo").show();
@@ -533,12 +527,6 @@ function initProcessResult(type){
                 $("#postageAccount").show();    //邮费转账账户
                 visitByType(2); //需要回访
                 //$("#salesChannelsSelect").hide();  //屏蔽销售公司
-
-                var orderId = $("#orderId").val();
-                if(orderId != null && orderId != ""){
-                    setSelectOrder(orderId);
-                }
-
                 break;
             case 5://补发
                 result = isSolve.reissue;
@@ -551,7 +539,7 @@ function initProcessResult(type){
                 //$("#recipientInfoTitle").show();
                 // $("#recipientAddress").show();
                 // $("#recipientAddressText").show();
-                //$("#renewedProduct").show();
+                $("#renewedProduct").hide();
                 $("#TDScollect").show();
                 $("#TDScollectShow").show();
                 $("#sendAddressInfo").hide();
@@ -560,12 +548,6 @@ function initProcessResult(type){
                 $("#postageAccount").hide();    //邮费转账账户 -- 隐藏
                 visitByType(2); //需要回访
                 $("#salesChannelsSelect").hide();  //屏蔽销售公司
-
-                var orderId = $("#orderId").val();
-                if(orderId != null && orderId != ""){
-                    setSelectOrder(orderId);
-                }
-
                 break;
             case 6: //退货
                 result = isSolve.backGoods;
@@ -578,7 +560,7 @@ function initProcessResult(type){
                 //$("#recipientInfoTitle").show();
                 //$("#recipientAddress").show();
                 //$("#recipientAddressText").show();
-                //$("#renewedProduct").show();
+                $("#renewedProduct").show();
                 $("#TDScollect").show();
                 $("#TDScollectShow").show();
                 $("#sendAddressInfo").show();
@@ -587,12 +569,6 @@ function initProcessResult(type){
                 $("#postageAccount").show();    //邮费转账账户
                 visitByType(2); //需要回访
                 //$("#salesChannelsSelect").hide();  //屏蔽销售公司
-
-                var orderId = $("#orderId").val();
-                if(orderId != null && orderId != ""){
-                    setSelectOrder(orderId);
-                }
-
                 break;
             case 7://无理由退货
                 result = isSolve.noReasonBack;
@@ -605,7 +581,7 @@ function initProcessResult(type){
                 //$("#recipientInfoTitle").show();
                 //$("#recipientAddress").show();
                 //$("#recipientAddressText").show();
-                //$("#renewedProduct").show();
+                $("#renewedProduct").show();
                 $("#TDScollect").show();
                 $("#TDScollectShow").show();
                 $("#sendAddressInfo").show();
@@ -614,12 +590,6 @@ function initProcessResult(type){
                 $("#postageAccount").show();    //邮费转账账户
                 visitByType(2); //需要回访
                 //$("#salesChannelsSelect").hide();  //屏蔽销售公司
-
-                var orderId = $("#orderId").val();
-                if(orderId != null && orderId != ""){
-                    setSelectOrder(orderId);
-                }
-
                 break;
             default:
                 break;
@@ -998,10 +968,10 @@ function setSelectOrder(orderId){
     $.ajax({
         type: "POST",
         data: {
-            salesId : orderId
+            ids : orderId
         },
         url: url_path + "/admin/customer/select_salesOrder",
-        async: false,
+        async: true,
         success: function(data){
             var html = '';
             var addresHtml = '';
@@ -1010,6 +980,8 @@ function setSelectOrder(orderId){
             var companyId = ''; //销售公司
             var storeId = '';  //店铺
 
+            var salesAddressName,salesAddressTel;   //名称赋值
+
             if (data.returnCode == 200) {
                 for(var i=0;i<data.returnMsg.salesOrderList.length;i++){
                     var salesOrder = data.returnMsg.salesOrderList[i];
@@ -1019,9 +991,16 @@ function setSelectOrder(orderId){
 
                     var productsHtml = '';
                     var salesOrderItem = salesOrder.salesOrderItemList;
-                    orderItemList = salesOrder.salesOrderItemList;
+                    if(orderItemList.length > 0){
+                        $(salesOrder.salesOrderItemList).each(function(index,element){
+                            orderItemList.push(this);
+                        })
+                    }else{
+                        orderItemList = salesOrder.salesOrderItemList;
+                    }
+
                     for(var j=0;j<salesOrderItem.length;j++){
-                        var item = salesOrderItem[j].itemProductName + "*" + salesOrderItem[j].itemNum;
+                        var item = salesOrderItem[j].itemProductName+ "("+ salesOrderItem[j].itemProductColor +")" + "*" + salesOrderItem[j].itemNum;
                         if(j==0){
                             productsHtml += item
                         }else{
@@ -1029,7 +1008,7 @@ function setSelectOrder(orderId){
                         }
                     }
                     var time = formatDate(new Date(salesOrder.salesPayTime),"yyyy-MM-dd");
-                    html += '' +
+                    html += '<tr>' +
                         ' <td style="text-align: center;">'+ convertUndefinedToEmpty(salesOrder.companyName) +'</td>' +
                         ' <td style="text-align: center;">'+  convertUndefinedToEmpty(salesOrder.storeName) +'</td>' +
                         ' <td style="text-align: center;">'+ salesOrder.salesOrderId +'</td>' +
@@ -1038,31 +1017,29 @@ function setSelectOrder(orderId){
                         ' <td style="text-align: center;">'+ salesOrder.salesAmount/100 +'</td>' +
                         ' <td style="text-align: center;">'+ productsHtml +'</td>' +
                         ' <td style="text-align: center;">'+ time +'</td>' +
-                        '';
-                    addresHtml = '<td colspan="1" style="text-align: center;">收货地址</td><td colspan="7" class="td-manage text-c" >'+ salesOrder.salesAddressInfo +'</td>' ;
-                    address = salesOrder.salesAddressInfo;
-
-                    $("#sendName").val(salesOrder.salesAddressName); //收件人名称
-                    $("#sendTel").val(salesOrder.salesAddressTel);  //收件人电话号码
+                        ' <td style="text-align: center;">'+ salesOrder.salesAddressInfo +'</td>' +
+                        '</tr>';
 
-                    var name = $("#customerName").val();
-                    var tel = $("#customerTel").val();
-                    if(name == "" || name == null){
-                        $("#customerName").val(salesOrder.salesAddressName); //收件人名称
-                    }
-                    if(tel == "" || tel == null){
-                        $("#customerTel").val(salesOrder.salesAddressTel);  //收件人电话号码
-                    }
+                    address = salesOrder.salesAddressInfo;
+                    salesAddressName = salesOrder.salesAddressName;
+                    salesAddressTel = salesOrder.salesAddressTel;
                 }
-                // $("#showOrderAddress").html(address);
             }else{
                 html = '';
-                addresHtml = '';
             }
-            $("#showOrder").html(html);  //显示订单
-            $("#showOrderAddress").html(addresHtml);  //显示订单地址
-            $("#showOrderAddress").show();
 
+            $("#sendName").val(salesAddressName); //收件人名称
+            $("#sendTel").val(salesAddressTel);  //收件人电话号码
+            var name = $("#customerName").val();
+            var tel = $("#customerTel").val();
+            if(name == "" || name == null){
+                $("#customerName").val(salesAddressName); //收件人名称
+            }
+            if(tel == "" || tel == null){
+                $("#customerTel").val(salesAddressTel);  //收件人电话号码
+            }
+
+            $("#showSalesOrderId").html(html);  //显示订单
 
             $("#addressInfo").val(address);
             setAdress();  //显示地址
@@ -1070,7 +1047,7 @@ function setSelectOrder(orderId){
 
             $("#companyId").val(companyId);
             $("#storeId").val(storeId);
-            $("#orderId").val(orderId);
+            $("#ids").val(orderId);
             getCompany();
 
             layer.close(index);
@@ -1255,10 +1232,10 @@ function linkageSetDistrict(){
 }
 
 /**
- * 展示产品
+ * 展示产品 -- 20180417以前
  * @param orderItemList
  */
-function setProduce(orderItemList) {
+/*function setProduce(orderItemList) {
     var productList = getProduct() ; //所有产品
     var html = "";
     var productTypeNo = 0;
@@ -1351,8 +1328,45 @@ function setProduce(orderItemList) {
     $("#addProduct").html(html);
 
     setBackProduct(html);  //设置寄回产品
+    //monitorProduct();   //监听产品变化
+}*/
+
+/**
+ * 展示产品 -
+ * todo 20180417
+ * @param orderItemList
+ */
+function setProduce(orderItemList) {
+    var productList = getProduct() ; //所有产品
+    var html = "";
+    var productTypeNo = 0;
 
-    monitorProduct();   //监听产品变化
+    var colorHtml = '';
+    for(var k=0;k<orderItemList.length;k++){
+        var item = orderItemList[k];
+        var fiHidden = "";
+        var fiHtml = "";
+        if(item.itemIsSource == 1){
+            fiHidden = "text"
+        }else{
+            fiHidden = "hidden"
+            fiHtml = "-"
+        }
+        colorHtml += '<tr >'
+            + '<td style="text-align: center;" >' + item.itemProductName + '</td>'
+            + '<td style="text-align: center;" >' + item.itemProductColor + '</td>'
+            + '<td style="text-align: center;" >' + item.itemNum + '</td>'
+            + '<td style="text-align: center;" >'
+            + '<input type="hidden" class="input-produce-id" value="' + item.itemProductId + '">'
+            + '<input type="hidden" class="input-fc-id" value="' + item.itemColorId +'">'
+            +  fiHtml
+            + '<input type="'+ fiHidden +'" class="input-text input-number" style="width: 100%;border: none;text-align: center;" value="" placeholder="机器编号" name="" id="item-' + item.itemProductId + '-' + item.itemColorId +'" number="'+ item.itemNum +'"  itemIsSource="'+ item.itemIsSource +'"  onkeyup="keyFunString($(this),30)" onpaste="keyFunString($(this),30)" >'
+            + '</td>'
+            + '</tr>';
+    }
+    $("#addProduct").html(colorHtml);
+   // setBackProduct(html);  //设置寄回产品
+    //monitorProduct();   //监听产品变化
 }
 
 /*获取产品*/
@@ -1396,35 +1410,36 @@ function getProduceFittings(productId){
     return produceFittings;
 }
 
-/*监听产品变化*/
-function monitorProduct(){
-    /*产品数量*/
-    $("#addProduct").find(".input-color-number").blur(function (){
-        setBackProduct();
-    })
-    /*产品配件*/
-    $("#addProduct").find(".input-fittings-number").blur(function (){
-        setBackProduct();
-    })
-}
-
-/*设置寄回产品*/
-function setBackProduct(html) {
-    if(html != null && html != "" && typeof(html) != "undefined"){
-        $("#back-product").html(html);
-    }else{
-        $("#addProduct").find(".input-color-number").each(function(){
-            var number = $(this).val();
-            var colorNodeId = $(this).attr("id");
-            $("#back-product").find("#"+colorNodeId).val(number);
-        })
-        $("#addProduct").find(".input-fittings-number").each(function(){
-            var number = $(this).val();
-            var fittingsNodeId = $(this).attr("id");
-            $("#back-product").find("#"+fittingsNodeId).val(number);
-        })
-    }
-}
+// /*监听产品变化 -- 暂时不用
+// */
+// function monitorProduct(){
+//     /*产品数量*/
+//     $("#addProduct").find(".input-color-number").blur(function (){
+//         setBackProduct();
+//     })
+//     /*产品配件*/
+//     $("#addProduct").find(".input-fittings-number").blur(function (){
+//         setBackProduct();
+//     })
+// }
+
+/*设置寄回产品  -- 暂时不用 */
+// function setBackProduct(html) {
+//     if(html != null && html != "" && typeof(html) != "undefined"){
+//         $("#back-product").html(html);
+//     }else{
+//         $("#addProduct").find(".input-color-number").each(function(){
+//             var number = $(this).val();
+//             var colorNodeId = $(this).attr("id");
+//             $("#back-product").find("#"+colorNodeId).val(number);
+//         })
+//         $("#addProduct").find(".input-fittings-number").each(function(){
+//             var number = $(this).val();
+//             var fittingsNodeId = $(this).attr("id");
+//             $("#back-product").find("#"+fittingsNodeId).val(number);
+//         })
+//     }
+// }
 
 /*设置TDS收集信息*/
 function setTDSCollect(){
@@ -1540,13 +1555,22 @@ function  opentionSelectOrder(type){
     opentionSelectOrderDiv();
 }
 
+/**
+ * 展示订单
+ */
 function opentionSelectOrderDiv(){
-    if(isNeedSelectOrder == 2 || allCustomerType == 1 || allCustomerType == 2 ){
+    if(isNeedSelectOrder == 2 || allCustomerType == 1 || allCustomerType == 2 ){        //不展示
         $("#orderHead").hide();
         $("#order").hide();
-    }else{
+        $("#renewedProduct").hide();
+    }else{      //展示
         $("#orderHead").show();
         $("#order").show();
+        if(allCustomerType == 3 || allCustomerType == 4 || allCustomerType == 6 || allCustomerType == 7 ){
+            $("#renewedProduct").show();
+        }else{
+            $("#renewedProduct").hide();
+        }
     }
 };
 
@@ -1696,70 +1720,93 @@ function addCustomerReady(){
 
         var sendProdcues = new Array();  //寄出产品表
         var sendFittings = new Array();
-        var closedProdcues = new Array();
-        var closedFittings = new Array();
+        var closedProdcues = new Array();         //获取寄回,寄出直接复制寄回
+        var closedFittings = new Array();         //获取寄回,寄出直接复制寄回
 
-        $("#addProduct").find(".input-color-number").each(function () {
-            var number = $(this).val();
+        $("#addProduct").find(".input-number").each(function () {
+            var machineNo = $(this).val();    //机器编号
+            var number = $(this).attr("number");    //机器编号
+            var itemIsSource = $(this).attr("itemissource");    //是否为配件  1:产品颜色表,2:配件表
             if (number != null && number != "" && number != 0) {
                 var product = new Object();
-                product.productId = $(this).parent().find(".input-produce-id").val();
-                product.colorId = $(this).parent().find(".input-color-id").val();
-                //换新、维修,退货,无理由退货,
-                if (allCustomerType == 3 || allCustomerType == 4 || allCustomerType == 6 || allCustomerType == 7) {
-                    product.closedProdcueNumber = number;
-                    closedProdcues.push(product);
-                } else if (allCustomerType == 5) {
-                    product.sendProdcueNumber = number;
-                    sendProdcues.push(product);
-                }
-            }
-        })
-
-        $("#addProduct").find(".input-fittings-number").each(function () {
-            var number = $(this).val();
-            if (number != null && number != "" && number != 0) {
                 var fittings = new Object();
+                product.productId = $(this).parent().find(".input-produce-id").val();
+                product.colorId = $(this).parent().find(".input-fc-id").val();
                 fittings.productId = $(this).parent().find(".input-produce-id").val();
-                fittings.fittingsId = $(this).parent().find(".input-fittings-id").val();
-                //换新、维修,退货,无理由退货,
-                if (allCustomerType == 3 || allCustomerType == 4 || allCustomerType == 6 || allCustomerType == 7) {
-                    fittings.closedFittingNumber = number;
-                    closedFittings.push(fittings);
-                } else if (allCustomerType == 5) {
+                fittings.fittingsId = $(this).parent().find(".input-fc-id").val();
+                if(itemIsSource == 1){ //产品颜色
+                    product.sendProdcueNumber = number;
+                    product.closedProdcueNumber = number;
+                    product.closedProdcueMachineNo = machineNo;
+                    //换新、维修,退货,无理由退货,
+                    if (allCustomerType == 3 || allCustomerType == 4 ){        //换新/维修
+                        sendProdcues.push(product);
+                        closedProdcues.push(product);
+                    }else if(allCustomerType == 6 || allCustomerType == 7){
+                        closedProdcues.push(product);
+                    }else if(allCustomerType == 5){             //补发
+                        sendProdcues.push(product);
+                    }
+                }else{
                     fittings.sendFittingNumber = number;
-                    sendFittings.push(fittings);
-                }
-            }
-        })
-
-        $("#back-product").find(".input-color-number").each(function () {
-            var number = $(this).val();
-            if (number != null && number != "" && number != 0) {
-                //换新、维修,
-                if (allCustomerType == 3 || allCustomerType == 4) {
-                    var fittings = new Object();
-                    fittings.productId = $(this).parent().find(".input-produce-id").val();
-                    fittings.colorId = $(this).parent().find(".input-color-id").val();
-                    fittings.sendProdcueNumber = number;
-                    sendProdcues.push(fittings);
+                    fittings.closedFittingNumber = number;
+                    //换新、维修,退货,无理由退货,
+                    if (allCustomerType == 3 || allCustomerType == 4 ) {        //换新/维修
+                        sendFittings.push(fittings);
+                        closedFittings.push(fittings);
+                    }else if(allCustomerType == 6 || allCustomerType == 7){
+                        closedFittings.push(fittings);
+                    }else if(allCustomerType == 5){             //补发
+                        sendFittings.push(fittings);
+                    }
                 }
             }
         })
 
-        $("#back-product").find(".input-fittings-number").each(function () {
-            var number = $(this).val();
-            if (number != null && number != "" && number != 0) {
-                //换新、维修
-                if (allCustomerType == 3 || allCustomerType == 4) {
-                    var fittings = new Object();
-                    fittings.productId = $(this).parent().find(".input-produce-id").val();
-                    fittings.fittingsId = $(this).parent().find(".input-fittings-id").val();
-                    fittings.sendFittingNumber = number;
-                    sendFittings.push(fittings);
-                }
-            }
-        })
+        // $("#addProduct").find(".input-fittings-number").each(function () {
+        //     var number = $(this).val();
+        //     if (number != null && number != "" && number != 0) {
+        //         var fittings = new Object();
+        //         fittings.productId = $(this).parent().find(".input-produce-id").val();
+        //         fittings.fittingsId = $(this).parent().find(".input-fittings-id").val();
+        //         //换新、维修,退货,无理由退货,
+        //         if (allCustomerType == 3 || allCustomerType == 4 || allCustomerType == 6 || allCustomerType == 7) {
+        //             fittings.closedFittingNumber = number;
+        //             closedFittings.push(fittings);
+        //         } else if (allCustomerType == 5) {
+        //             fittings.sendFittingNumber = number;
+        //             sendFittings.push(fittings);
+        //         }
+        //     }
+        // })
+
+        // $("#back-product").find(".input-color-number").each(function () {
+        //     var number = $(this).val();
+        //     if (number != null && number != "" && number != 0) {
+        //         //换新、维修,
+        //         if (allCustomerType == 3 || allCustomerType == 4) {
+        //             var fittings = new Object();
+        //             fittings.productId = $(this).parent().find(".input-produce-id").val();
+        //             fittings.colorId = $(this).parent().find(".input-color-id").val();
+        //             fittings.sendProdcueNumber = number;
+        //             sendProdcues.push(fittings);
+        //         }
+        //     }
+        // })
+
+        // $("#back-product").find(".input-fittings-number").each(function () {
+        //     var number = $(this).val();
+        //     if (number != null && number != "" && number != 0) {
+        //         //换新、维修
+        //         if (allCustomerType == 3 || allCustomerType == 4) {
+        //             var fittings = new Object();
+        //             fittings.productId = $(this).parent().find(".input-produce-id").val();
+        //             fittings.fittingsId = $(this).parent().find(".input-fittings-id").val();
+        //             fittings.sendFittingNumber = number;
+        //             sendFittings.push(fittings);
+        //         }
+        //     }
+        // })
 
         var backErrorMsg = "请选择一个replace_error_msg寄回的产品或配件并填写一个以上的数量!"
         var sendErrorMsg = "请选择一个replace_error_msg寄送的产品或配件并填写一个以上的数量!"