Parcourir la source

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

liuzhiwei il y a 7 ans
Parent
commit
62a339e282
44 fichiers modifiés avec 968 ajouts et 150 suppressions
  1. 19 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ClosedProdcue.java
  2. 36 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java
  3. 9 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java
  4. 11 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/QuestionDescribe.java
  5. 32 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SendProdcue.java
  6. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/order/OrderItem.java
  7. 1 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/order/Product.java
  8. 1 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/product/ProductService.java
  9. 159 19
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  10. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ClosedFittingMapper.java
  11. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ClosedProdcueMapper.java
  12. 8 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ComplaintSignclosedProductInfoMapper.java
  13. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SendFittingMapper.java
  14. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SendProdcueMapper.java
  15. 3 5
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/backGoodsMapper.xml
  16. 8 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/closedFittingMapper.xml
  17. 11 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/closedProdcueMapper.xml
  18. 2 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintDetectInfoMapper.xml
  19. 4 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintSignclosedInfoMapper.xml
  20. 13 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintSignclosedProductInfoMapper.xml
  21. 3 5
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/noreasonBackMapper.xml
  22. 3 5
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/reissueMapper.xml
  23. 3 3
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/renewedMapper.xml
  24. 3 3
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/repairMapper.xml
  25. 11 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/sendFittingMapper.xml
  26. 12 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/sendProdcueMapper.xml
  27. 1 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/visitMapper.xml
  28. 5 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/order/EfastOrderServiceImpl.java
  29. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/product/ProductServiceImpl.java
  30. 7 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/ProductMapper.java
  31. 19 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/productMapper.xml
  32. 44 5
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  33. 1 3
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminDetectController.java
  34. 19 7
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/ComplaintMaintenanceController.java
  35. 1 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/ComplaintQuestionInfoController.java
  36. 45 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/app/AppComplaintQuestionInfoController.java
  37. 1 1
      watero-rst-web/src/main/java/com/iamberry/rst/utils/StitchAttrUtil.java
  38. 75 20
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  39. 4 19
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_detect.ftl
  40. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/maintenance/add_maintenance.ftl
  41. 4 16
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/maintenance/maintenance_list.ftl
  42. 80 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/maintenance/view_detect.ftl
  43. 154 0
      watero-rst-web/src/main/webapp/WEB-INF/views/wap/cm/request_message.ftl
  44. 139 0
      watero-rst-web/src/main/webapp/WEB-INF/views/wap/cm/send_message.ftl

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

@@ -18,6 +18,9 @@ public class ClosedProdcue  implements Serializable {
 
     private String closedProductName; //产品名称
 
+    private Integer productType;        //商品类型
+    private String productNumber;       //产品型号
+
     public String getClosedProductName() {
         return closedProductName;
     }
@@ -73,4 +76,20 @@ public class ClosedProdcue  implements Serializable {
     public void setClosedProdcueNumber(Integer closedProdcueNumber) {
         this.closedProdcueNumber = closedProdcueNumber;
     }
+
+    public Integer getProductType() {
+        return productType;
+    }
+
+    public void setProductType(Integer productType) {
+        this.productType = productType;
+    }
+
+    public String getProductNumber() {
+        return productNumber;
+    }
+
+    public void setProductNumber(String productNumber) {
+        this.productNumber = productNumber;
+    }
 }

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

@@ -79,6 +79,8 @@ public class CustomerCommon implements Serializable {
     private Integer maintenanceIsRepair;
     //品质检测状态
     private Integer detectState;
+    //外部交易号
+    private String transactionNumber;
 
     public Integer getDetectState() {
         return detectState;
@@ -352,6 +354,14 @@ public class CustomerCommon implements Serializable {
         this.relationUpdateTime = relationUpdateTime;
     }
 
+    public String getTransactionNumber() {
+        return transactionNumber;
+    }
+
+    public void setTransactionNumber(String transactionNumber) {
+        this.transactionNumber = transactionNumber;
+    }
+
     /**
      * @param type 处理结果: 1:已解决  2:未解决 3:换新  4:维修 5:补发 6:退货 7:无理由退货
      * @return
@@ -635,4 +645,30 @@ public class CustomerCommon implements Serializable {
         }
         return customerCommon;
     }
+
+
+    /**
+     * 将所有的寄回寄出中的类型改为  type
+     * 售后类型  3:换新;4:维修;5:补发;6:退货;7:无理由退货
+     * @param type
+     */
+    public static void setProduceOrFitting(Integer type,CustomerCommon cc){
+        for (int i=0;i<cc.getSendProdcues().size();i++) {
+            cc.getSendProdcues().get(i).setSendProduceType(type);
+            cc.getSendProdcues().get(i).setRelationId(cc.getRelationId());
+        }
+        for (int i=0;i<cc.getSendFittings().size();i++) {
+            cc.getSendFittings().get(i).setSendFittingType(type);
+            cc.getSendFittings().get(i).setRelationId(cc.getRelationId());
+        }
+        for (int i=0;i<cc.getClosedProdcues().size();i++) {
+            cc.getClosedProdcues().get(i).setClosedProdcueType(type);
+            cc.getClosedProdcues().get(i).setRelationId(cc.getRelationId());
+        }
+        for (int i=0;i<cc.getClosedFittings().size();i++) {
+            cc.getClosedFittings().get(i).setClosedFittingType(type);
+            cc.getClosedFittings().get(i).setRelationId(cc.getRelationId());
+        }
+    }
+
 }

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java

@@ -92,6 +92,7 @@ public class CustomerInfo  implements Serializable {
 
     private CustomerCommon customerCommon = new CustomerCommon(); //处理结果综合  公共类
 
+    private String transactionNumber;     //外部交易号,订单id
 
     public Date getVisitDate() {
         return visitDate;
@@ -460,4 +461,12 @@ public class CustomerInfo  implements Serializable {
     public void setDescribeContent(String describeContent) {
         this.describeContent = describeContent;
     }
+
+    public String getTransactionNumber() {
+        return transactionNumber;
+    }
+
+    public void setTransactionNumber(String transactionNumber) {
+        this.transactionNumber = transactionNumber;
+    }
 }

+ 11 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/QuestionDescribe.java

@@ -20,6 +20,9 @@ public class QuestionDescribe implements Serializable {
 
     private String describeTitle;   //客诉标题
 
+
+    private String questionId;     //问题id
+
     public String getDescribeTitle() {
         return describeTitle;
     }
@@ -59,4 +62,12 @@ public class QuestionDescribe implements Serializable {
     public void setDescribeHandleDesc(String describeHandleDesc) {
         this.describeHandleDesc = describeHandleDesc;
     }
+
+    public String getQuestionId() {
+        return questionId;
+    }
+
+    public void setQuestionId(String questionId) {
+        this.questionId = questionId;
+    }
 }

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

@@ -1,5 +1,7 @@
 package com.iamberry.rst.core.cm;
 
+import com.iamberry.rst.core.order.ProductColor;
+
 import java.io.Serializable;
 
 public class SendProdcue  implements Serializable {
@@ -13,12 +15,17 @@ public class SendProdcue  implements Serializable {
 
     private Integer colorId;
 
-    private Integer sendProdcueNumber;
+    private Integer sendProdcueNumber;      //产品数量
 
     private Integer sendProduceType;    //售后类型  3:换新;4:维修;5:补发;6:退货;7:无理由退货
 
     private String sendProduceName; //产品名称
 
+    private Integer productType;        //商品类型
+    private String productNumber;       //产品型号
+    private ProductColor productColor;      //颜色
+
+
     public String getSendProduceName() {
         return sendProduceName;
     }
@@ -74,4 +81,28 @@ public class SendProdcue  implements Serializable {
     public void setSendProdcueNumber(Integer sendProdcueNumber) {
         this.sendProdcueNumber = sendProdcueNumber;
     }
+
+    public Integer getProductType() {
+        return productType;
+    }
+
+    public void setProductType(Integer productType) {
+        this.productType = productType;
+    }
+
+    public String getProductNumber() {
+        return productNumber;
+    }
+
+    public void setProductNumber(String productNumber) {
+        this.productNumber = productNumber;
+    }
+
+    public ProductColor getProductColor() {
+        return productColor;
+    }
+
+    public void setProductColor(ProductColor productColor) {
+        this.productColor = productColor;
+    }
 }

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/OrderItem.java

@@ -42,6 +42,8 @@ public class OrderItem implements Serializable {
 
     private Integer itemProductDiscount;//产品折扣价
 
+    private Integer itemProductNum; //产品数量
+
     public Integer getItemId() {
         return itemId;
     }
@@ -137,4 +139,12 @@ public class OrderItem implements Serializable {
     public void setItemProductDiscount(Integer itemProductDiscount) {
         this.itemProductDiscount = itemProductDiscount;
     }
+
+    public Integer getItemProductNum() {
+        return itemProductNum;
+    }
+
+    public void setItemProductNum(Integer itemProductNum) {
+        this.itemProductNum = itemProductNum;
+    }
 }

+ 1 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/order/Product.java

@@ -37,7 +37,7 @@ public class Product implements Serializable {
 
     private String productNumber;        //产品型号
 
-    private String typeName;            //产品名称
+    private String typeName;            //产品类型名称
 
     private List<ProductColor> colorList = new ArrayList<ProductColor>();   //产品颜色集合
 

+ 1 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/product/ProductService.java

@@ -70,7 +70,7 @@ public interface ProductService {
      * 获取单个水机  奶机
      * @return
      */
-    Product getProduce(String productId);
+    Product getProduce(Integer productId);
 
     /**
      * 根据条件查询产品类型列表

+ 159 - 19
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -8,6 +8,7 @@ import com.iamberry.rst.core.cm.*;
 import com.iamberry.rst.core.order.EfastOrder;
 import com.iamberry.rst.core.order.OrderItem;
 import com.iamberry.rst.core.order.Product;
+import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.cm.CustomerService;
 import com.iamberry.rst.service.address.mapper.AddressMapper;
@@ -63,6 +64,11 @@ public class CustomerServiceImpl implements CustomerService {
     private AddressMapper addressMapper;      //地址
     @Autowired
     private ProductMapper productMapper;  //产品
+    @Autowired
+    private ComplaintSignclosedProductInfoMapper complaintSignclosedProductInfoMapper;
+    @Autowired
+    private FittingsInfoMapper fittingsInfoMapper;
+
 
     @Override
     public CustomerInfo getCustomerInfo(Integer customerId) {
@@ -105,7 +111,10 @@ public class CustomerServiceImpl implements CustomerService {
             }
         }
 
-        if (2 == customerInfo.getCustomerCounselType()) {
+        if (2 == customerInfo.getCustomerCounselType() &&
+                (customerInfo.getCustomerIsSolve() == 3 || customerInfo.getCustomerIsSolve() == 4 || customerInfo.getCustomerIsSolve() == 5 ||
+                customerInfo.getCustomerIsSolve() == 6 || customerInfo.getCustomerIsSolve() == 7)
+                ){
             salesOrder = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
 
             CustomerCommon customerCommon = customerInfo.getCustomerCommon();
@@ -114,13 +123,17 @@ public class CustomerServiceImpl implements CustomerService {
             customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
             customerCommon.setRelationState(1); //状态  默认使用中
             customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
+            customerCommon.setTransactionNumber(customerInfo.getTransactionNumber());   //外部交易号
+
+            /*  初始化产品类型,名称,配件名称 */
+            this.setName(customerCommon);
 
             ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo();  //品质检测
             ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo(); //客诉-签收表
             Map<String,Object> map;
             switch (customerInfo.getCustomerIsSolve()) {  //处理结果: 1:已解决  2:未解决 3:换新  4:维修 5:补发 6:退货 7:无理由退货
                 case 3: //换新
-                    map = this.sendEfastOrder();  //换新需要向Efast推送一条换新发货的订单
+                    map = this.sendEfastOrder(customerCommon);  //换新需要向Efast推送一条换新发货的订单
                     if(map.get("status") == 1){
                         customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId")));  //存放Efast订单编号
                         complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId")));     //仓储签收表添加  发货的Efast订单id
@@ -133,7 +146,7 @@ public class CustomerServiceImpl implements CustomerService {
                     this.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
                 case 4: //维修
-                    map = this.sendEfastOrder();  //维修需要向Efast推送一条维修发货的订单
+                    map = this.sendEfastOrder(customerCommon);  //维修需要向Efast推送一条维修发货的订单
                     if(map.get("status") == 1){
                         customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId")));  //存放Efast订单编号
                         complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId")));     //仓储签收表添加  发货的Efast订单id
@@ -146,7 +159,7 @@ public class CustomerServiceImpl implements CustomerService {
                     this.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);   //创建品检
                     break;
                 case 5: //补发  不用创建仓储签收任务
-                    map = this.sendEfastOrder();  //补发需要向Efast推送一条发货的订单
+                    map = this.sendEfastOrder(customerCommon);  //补发需要向Efast推送一条发货的订单
                     if(map.get("status") == 1){
                         customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId")));  //存放Efast订单编号
                         complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId")));     //仓储签收表添加  发货的Efast订单id
@@ -170,7 +183,7 @@ public class CustomerServiceImpl implements CustomerService {
             customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储id
 
             Object object = CustomerCommon.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
-            Integer relationId;
+            Integer relationId = 0;
             switch (customerInfo.getCustomerIsSolve()) {  //处理结果: 1:已解决  2:未解决 3:换新  4:维修 5:补发 6:退货 7:无理由退货
                 case 3: //换新
                     Renewed renewed = (Renewed) object;
@@ -199,12 +212,63 @@ public class CustomerServiceImpl implements CustomerService {
                     break;
             }
             if (flag < 1) {
-                throw new Exception("添加客诉失败");
+                throw new Exception("添加客诉处理结果失败");
+            }
+
+            customerCommon.setRelationId(relationId);
+
+            CustomerCommon.setProduceOrFitting(customerInfo.getCustomerIsSolve(),customerCommon);
+
+            if(customerCommon.getClosedFittings()!=null && customerCommon.getClosedFittings().size() > 0){
+                closedFittingMapper.insert(customerCommon.getClosedFittings());
+            }
+            if(customerCommon.getClosedProdcues() != null && customerCommon.getClosedProdcues().size()>0){
+                closedProdcueMapper.insert(customerCommon.getClosedProdcues());
+            }
+            if(customerCommon.getSendProdcues() != null && customerCommon.getSendProdcues().size() > 0){
+                sendProdcueMapper.insert(customerCommon.getSendProdcues());
+            }
+            if(customerCommon.getSendFittings() != null && customerCommon.getSendFittings().size() > 0){
+                sendFittingMapper.insert(customerCommon.getSendFittings());
             }
         }
         return flag;
     }
 
+
+    /**
+     * 初始化
+     * @param cc
+     */
+    private void setName(CustomerCommon cc){
+        for (int i=0;i<cc.getSendProdcues().size();i++) {
+            Product product = productMapper.getProduce(cc.getSendProdcues().get(i).getProductId());
+            cc.getSendProdcues().get(i).setSendProduceName(product.getProductName());
+            cc.getSendProdcues().get(i).setProductType(product.getProductType());
+            cc.getSendProdcues().get(i).setProductNumber(product.getProductNumber());
+
+            ProductColor productColor = productMapper.getProduceColor(cc.getSendProdcues().get(i).getColorId());
+            cc.getSendProdcues().get(i).setProductColor(productColor);
+        }
+        for (int i=0;i<cc.getSendFittings().size();i++) {
+            FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById( cc.getSendFittings().get(i).getFittingsId());
+            cc.getSendFittings().get(i).setFittingsId(fittingsInfo.getFittingsId());
+        }
+        for (int i=0;i<cc.getClosedProdcues().size();i++) {
+            Product product = productMapper.getProductById(cc.getSendProdcues().get(i).getProductId());
+            cc.getClosedProdcues().get(i).setClosedProductName(product.getProductName());
+            cc.getClosedProdcues().get(i).setProductType(product.getProductType());
+            cc.getClosedProdcues().get(i).setProductNumber(product.getProductNumber());
+
+            ProductColor productColor = productMapper.getProduceColor(cc.getSendProdcues().get(i).getColorId());
+            cc.getSendProdcues().get(i).setProductColor(productColor);
+        }
+        for (int i=0;i<cc.getClosedFittings().size();i++) {
+            FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById(cc.getClosedFittings().get(i).getFittingsId());
+            cc.getClosedFittings().get(i).setFittingsId(fittingsInfo.getFittingsId());
+        }
+    }
+
     /**
      * 添加品检
      * @param complaintDetectInfo
@@ -222,9 +286,8 @@ public class CustomerServiceImpl implements CustomerService {
             ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
             for(int j=0; j<closedProdcue.getClosedProdcueNumber();j++){
                 complaintDetectInfo.setProductId(closedProdcue.getProductId());
-                Product product = productMapper.getProductById(closedProdcue.getProductId());
-                complaintDetectInfo.setDetectProductType(product.getProductType());
-                complaintDetectInfo.setDetectProductNumber(product.getProductNumber());
+                complaintDetectInfo.setDetectProductType(closedProdcue.getProductType());
+                complaintDetectInfo.setDetectProductNumber(closedProdcue.getProductNumber());
             }
             complaintDetectInfoList.add(complaintDetectInfo);
         }
@@ -252,27 +315,104 @@ public class CustomerServiceImpl implements CustomerService {
         complaintSignclosedInfo.setSignclosedCustomerId(customerCommon.getCustomerId()); //客诉id
         flag = complaintSignclosedInfoMapper.insert(complaintSignclosedInfo);
         if(flag < 1){
-            throw new Exception("添加仓储任务失败");
+            throw new Exception("添加签收失败");
         }
+
         //添加代签收表
+        List<AwaitingSignclosedProductInfo> awaitingSignclosedProductInfoArrayList = new ArrayList<>();
+        AwaitingSignclosedProductInfo awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
+        awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId());   //仓储id
+        awaitingSignclosedProductInfo.setSignclosedProductType(1); //类型为产品
+        for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
+            ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
+            awaitingSignclosedProductInfo.setProductNum(closedProdcue.getClosedProdcueNumber());
+            awaitingSignclosedProductInfo.setSignclosedProductId(closedProdcue.getProductId());         //产品id
+            awaitingSignclosedProductInfo.setSignclosedProductColor(closedProdcue.getColorId());        //颜色id
+            awaitingSignclosedProductInfo.setProductName(closedProdcue.getClosedProductName());         //产品名称
+            awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
+        }
+
+        awaitingSignclosedProductInfo.setSignclosedProductType(2);  //类型为配件
+        for(int i=0 ;i< customerCommon.getClosedFittings().size();i++){
+            ClosedFitting closedFitting = customerCommon.getClosedFittings().get(i);
+            awaitingSignclosedProductInfo.setProductNum(closedFitting.getClosedFittingNumber());
+            awaitingSignclosedProductInfo.setSignclosedProductId(closedFitting.getFittingsId());         //配件id
+            awaitingSignclosedProductInfo.setSignclosedProductColor(null);
+            awaitingSignclosedProductInfo.setProductName(closedFitting.getFittingName());       //配件名称
+            awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
+        }
+
+        flag = complaintSignclosedProductInfoMapper.insertList(awaitingSignclosedProductInfoArrayList);
+        if(flag < 1){
+            throw new Exception("添加签收产品失败");
+        }
     }
 
     /**
-     * 像Efast推送订单  仅换新,维修 ,补发
+     * Efast推送订单  仅换新,维修 ,补发
      * @return
      */
-    public Map<String,Object> sendEfastOrder(){
+    public Map<String,Object> sendEfastOrder(CustomerCommon customerCommon){
         Map<String,Object> map = new HashMap<String,Object>();
         EfastOrderServiceImpl efastOrderService = new EfastOrderServiceImpl();
         List<EfastOrder> orderList = new ArrayList<EfastOrder>();
         List<OrderItem> itemList = new ArrayList<OrderItem>();
-//        try {
-//            efastOrderService.sendOrderInfoToEfast(orderList,itemList);
-//        } catch (Exception e) {
-//            flag = 0;
-//        }
-        map.put("status",1);
-        map.put("EfastOrderId","xxxxxxxxxxxxxxxxx");
+
+        Integer num = 0;  //产品数量
+        Integer amout = 0; //商品总价
+        for(int i=0;i<customerCommon.getSendProdcues().size();i++){
+            SendProdcue sendProdcue = customerCommon.getSendProdcues().get(i);
+            OrderItem orderItem = new OrderItem();
+            orderItem.setItemProductName(sendProdcue.getSendProduceName());
+            orderItem.setItemProductNum(sendProdcue.getSendProdcueNumber());
+            orderItem.setItemProductPrice(sendProdcue.getProductColor().getColorPrice());
+            orderItem.setItemColorBar(sendProdcue.getProductColor().getColorBar());
+            itemList.add(orderItem);
+            num += sendProdcue.getSendProdcueNumber();
+            amout += sendProdcue.getProductColor().getColorPrice();
+        }
+
+        EfastOrder efastOrder = new EfastOrder();
+        efastOrder.setOrderAddressName(customerCommon.getRelationSendName());//收货人姓名
+        efastOrder.setOrderAddressTel(customerCommon.getRelationSendTel());//收货人电话
+        efastOrder.setOrderOpenId("");//身份证
+
+        String[] address = customerCommon.getRelationSendMergeAddress().split("-");
+        efastOrder.setOrderProvince(address[0]);
+        efastOrder.setOrderCity(address[1]);
+        efastOrder.setOrderArea(address[2]);
+        efastOrder.setOrderAddress(customerCommon.getRelationSendAddress());
+        efastOrder.setOrderStatus(2);
+
+        efastOrder.setOrderNum(num); //产品数量
+        efastOrder.setOrderAmount(amout);   //商品总价
+        efastOrder.setOrderPayMoney(amout); //已付款
+
+        efastOrder.setOrderId(customerCommon.getTransactionNumber());   //外部交易号
+
+        efastOrder.setOrderPayType(0);  //支付方式
+
+        orderList.add(efastOrder);
+
+        Integer status = 1;
+        try {
+            efastOrderService.sendOrderInfoToEfast(orderList,itemList);
+        } catch (Exception e) {
+            status = 0;
+        }
+        if(status == 0){
+            map.put("status",status);
+            map.put("EfastOrderId","");
+            return map;
+        }
+        EfastOrder efOrder = new EfastOrder();
+        try {
+            efOrder = efastOrderService.getOrderInfoFromEfast(customerCommon.getTransactionNumber());
+        } catch (Exception e) {
+            status = 0;
+        }
+        map.put("status",status);
+        map.put("EfastOrderId",efOrder.getOid());
         return map;
     }
 

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ClosedFittingMapper.java

@@ -7,7 +7,7 @@ import java.util.List;
 public interface ClosedFittingMapper {
     int deleteByPrimaryKey(Integer closedFittingId);
 
-    int insert(ClosedFitting record);
+    int insert(List<ClosedFitting> record);
 
     ClosedFitting selectByPrimaryKey(Integer closedFittingId);
 

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ClosedProdcueMapper.java

@@ -7,7 +7,7 @@ import java.util.List;
 public interface ClosedProdcueMapper {
     int deleteByPrimaryKey(Integer closedProdcueId);
 
-    int insert(ClosedProdcue record);
+    int insert(List<ClosedProdcue> record);
 
     int insertSelective(ClosedProdcue record);
 

+ 8 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ComplaintSignclosedProductInfoMapper.java

@@ -1,5 +1,6 @@
 package com.iamberry.rst.service.cm.mapper;
 
+import com.iamberry.rst.core.cm.AwaitingSignclosedProductInfo;
 import com.iamberry.rst.core.cm.SignclosedProductInfo;
 
 import java.util.List;
@@ -13,6 +14,13 @@ public interface ComplaintSignclosedProductInfoMapper {
      * @return
      */
     int insert(SignclosedProductInfo record);
+
+    /**
+     * 添加签收  产品集合
+     * @return
+     */
+    int insertList(List<AwaitingSignclosedProductInfo> awaitingSignclosedProductInfoList);
+
     /**
      * 查询单个签收产品记录
      * @return

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SendFittingMapper.java

@@ -7,7 +7,7 @@ import java.util.List;
 public interface SendFittingMapper {
     int deleteByPrimaryKey(Integer sendFittingId);
 
-    int insert(SendFitting record);
+    int insert(List<SendFitting> record);
 
     int insertSelective(SendFitting record);
 

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SendProdcueMapper.java

@@ -7,7 +7,7 @@ import java.util.List;
 public interface SendProdcueMapper {
     int deleteByPrimaryKey(Integer sendProdcueId);
 
-    int insert(SendProdcue record);
+    int insert(List<SendProdcue> record);
 
     int insertSelective(SendProdcue record);
 

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

@@ -57,22 +57,20 @@
     delete from tb_rst_back_goods
     where back_goods_id = #{backGoodsId,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="BackGoods" >
+  <insert id="insert" parameterType="BackGoods" useGeneratedKeys="true"  keyProperty="backGoodsId">
     insert into tb_rst_back_goods (customer_id, order_id,
       signclosed_id, back_goods_back_status, back_goods_back_name, 
       back_goods_back_tel, back_goods_back_logistics_company, 
       back_goods_back_logistics_no, back_goods_back_postage, 
       back_goods_back_machine_no, back_goods_desc, 
-      back_goods_state, back_goods_alipay, back_goods_is_transfer, 
-      back_goods_create_time, back_goods_update_time
+      back_goods_state, back_goods_alipay, back_goods_is_transfer
       )
     values ( #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{signclosedId,jdbcType=INTEGER}, #{backGoodsBackStatus,jdbcType=BIT}, #{backGoodsBackName,jdbcType=VARCHAR}, 
       #{backGoodsBackTel,jdbcType=CHAR}, #{backGoodsBackLogisticsCompany,jdbcType=VARCHAR}, 
       #{backGoodsBackLogisticsNo,jdbcType=VARCHAR}, #{backGoodsBackPostage,jdbcType=INTEGER}, 
       #{backGoodsBackMachineNo,jdbcType=VARCHAR}, #{backGoodsDesc,jdbcType=VARCHAR}, 
-      #{backGoodsState,jdbcType=BIT}, #{backGoodsAlipay,jdbcType=VARCHAR}, #{backGoodsIsTransfer,jdbcType=BIT}, 
-      #{backGoodsCreateTime,jdbcType=TIMESTAMP}, #{backGoodsUpdateTime,jdbcType=TIMESTAMP}
+      #{backGoodsState,jdbcType=BIT}, #{backGoodsAlipay,jdbcType=VARCHAR}, #{backGoodsIsTransfer,jdbcType=BIT}
       )
   </insert>
   <insert id="insertSelective" parameterType="BackGoods" >

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

@@ -18,10 +18,14 @@
     where closed_fitting_id = #{closedFittingId,jdbcType=INTEGER}
   </select>
   <insert id="insert" parameterType="ClosedFitting" >
-    insert into tb_rst_closed_fitting (closed_fitting_id, relation_id, product_id, 
-      fittings_id, closed_fitting_number)
-    values (#{closedFittingId,jdbcType=INTEGER}, #{relationId,jdbcType=INTEGER}, #{productId,jdbcType=INTEGER}, 
-      #{fittingsId,jdbcType=INTEGER}, #{closedFittingNumber,jdbcType=INTEGER})
+    insert into tb_rst_closed_fitting
+    (
+      relation_id, product_id,fittings_id, closed_fitting_number,closed_fitting_type
+    )
+    values
+    <foreach collection="list" item="node" index="index" separator="," open="" close="">
+      ( #{node.relationId}, #{node.productId}, #{node.fittingsId}, #{node.closedFittingNumber},#{node.closedFittingType})
+    </foreach>
   </insert>
 
   <!-- 获取寄回配件集合 -->

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

@@ -21,12 +21,19 @@
     delete from tb_rst_closed_prodcue
     where closed_prodcue_id = #{closedProdcueId,jdbcType=INTEGER}
   </delete>
+
   <insert id="insert" parameterType="ClosedProdcue" >
-    insert into tb_rst_closed_prodcue (closed_prodcue_id, relation_id, product_id, 
-      color_id, closed_prodcue_number)
-    values (#{closedProdcueId,jdbcType=INTEGER}, #{relationId,jdbcType=INTEGER}, #{productId,jdbcType=INTEGER}, 
-      #{colorId,jdbcType=INTEGER}, #{closedProdcueNumber,jdbcType=INTEGER})
+    insert into tb_rst_closed_prodcue ( relation_id, product_id,
+      color_id, closed_prodcue_number,closed_prodcue_type)
+    values
+    <foreach collection="list" item="node" index="index" separator="," open="" close="">
+      (
+        #{node.relationId}, #{node.productId},
+       #{node.colorId}, #{node.closedProdcueNumber},#{node.closedProdcueType}
+      )
+    </foreach>
   </insert>
+
   <update id="updateByPrimaryKeySelective" parameterType="ClosedProdcue" >
     update tb_rst_closed_prodcue
     <set >

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

@@ -131,8 +131,7 @@
         detect_failure_classification, detect_failure_cause,
         detect_results, detect_point, detect_analysis,
         detect_revolution_produced,
-        detect_desc, signclosed_create_time, signclosed_update_time,
-        machine_no,detect_is_maintenance,detect_date,maintenance_results
+        detect_desc,machine_no,detect_is_maintenance,detect_date,maintenance_results
       )
     values
       <foreach collection="list" item="node" index="index" separator="," open="" close="">
@@ -143,8 +142,7 @@
           #{node.detectFailureClassification}, #{node.detectFailureCause},
           #{node.detectResults}, #{node.detectPoint}, #{node.detectAnalysis},
           #{node.detectRevolutionProduced},
-          #{node.detectDesc}, #{node.signclosedCreateTime}, #{node.signclosedUpdateTime}
-          ,#{node.machineNo},#{node.detectIsMaintenance},#{node.detectDate},#{node.maintenanceResults}
+          #{node.detectDesc},#{node.machineNo},#{node.detectIsMaintenance},#{node.detectDate},#{node.maintenanceResults}
         )
       </foreach>
   </insert>

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

@@ -178,8 +178,8 @@
       signclosed_is_into, signclosed_state, signclosed_objects_state, 
       signclosed_customer_id, signclosed_urged_num, 
       old_efast_id, new_efast_id, signclosed_customer_desc, 
-      signclosed_desc, signclosed_create_time, 
-      signclosed_update_time)
+      signclosed_desc
+      )
     values (#{signclosedType,jdbcType=BIT}, #{signclosedTypeName,jdbcType=VARCHAR},
       #{machineNo,jdbcType=VARCHAR}, #{signclosedLogistics,jdbcType=VARCHAR}, #{signclosedLogisticsNumber,jdbcType=VARCHAR}, 
       #{signclosedSendName,jdbcType=VARCHAR}, #{signclosedSendTel,jdbcType=VARCHAR}, 
@@ -188,8 +188,8 @@
       #{signclosedIsInto,jdbcType=BIT}, #{signclosedState,jdbcType=BIT}, #{signclosedObjectsState,jdbcType=BIT}, 
       #{signclosedCustomerId,jdbcType=INTEGER}, #{signclosedUrgedNum,jdbcType=INTEGER}, 
       #{oldEfastId,jdbcType=VARCHAR}, #{newEfastId,jdbcType=VARCHAR}, #{signclosedCustomerDesc,jdbcType=VARCHAR}, 
-      #{signclosedDesc,jdbcType=VARCHAR}, #{signclosedCreateTime,jdbcType=TIMESTAMP}, 
-      #{signclosedUpdateTime,jdbcType=TIMESTAMP})
+      #{signclosedDesc,jdbcType=VARCHAR}
+      )
   </insert>
   <update id="updateSignclosedById" parameterType="ComplaintSignclosedInfo" >
     update tb_rst_complaint_signclosed

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

@@ -52,6 +52,19 @@
       )
   </insert>
 
+  <insert id="insertList" parameterType="SignclosedProductInfo" >
+    insert into tb_rst_complaint_awaiting_signclosed_product
+      (
+          signclosed_id, product_name,product_num,signclosed_product_type,signclosed_product_id,signclosed_product_color
+      )
+    values
+    <foreach collection="list" item="node" index="index" separator="," open="" close="">
+      (
+        #{node.signclosedId}, #{node.productName},#{node.productNum},#{node.signclosedProductType}, #{node.signclosedProductId}, #{node.signclosedProductColor}
+      )
+    </foreach>
+  </insert>
+
   <update id="updateSignclosedById" parameterType="SignclosedProductInfo" >
     update tb_rst_complaint_signclosed_product
     <set >

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

@@ -58,22 +58,20 @@
     delete from tb_rst_noreason_back
     where noreason_back_id = #{noreasonBackId,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="NoreasonBack" >
+  <insert id="insert" parameterType="NoreasonBack" useGeneratedKeys="true"  keyProperty="noreasonBackId">
     insert into tb_rst_noreason_back (customer_id, order_id,
       signclosed_id, noreason_back_back_status, noreason_back_back_name, 
       noreason_back_back_tel, noreason_back_back_logistics_company, 
       noreason_back_back_logistics_no, noreason_back_back_postage, 
       noreason_back_back_machine_no, noreason_back_desc, 
-      noreason_back_state, noreason_back_alipay, noreason_back_is_transfer, 
-      noreason_back_create_time, noreason_back_update_time
+      noreason_back_state, noreason_back_alipay, noreason_back_is_transfer
       )
     values ( #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{signclosedId,jdbcType=INTEGER}, #{noreasonBackBackStatus,jdbcType=BIT}, #{noreasonBackBackName,jdbcType=VARCHAR}, 
       #{noreasonBackBackTel,jdbcType=CHAR}, #{noreasonBackBackLogisticsCompany,jdbcType=VARCHAR}, 
       #{noreasonBackBackLogisticsNo,jdbcType=VARCHAR}, #{noreasonBackBackPostage,jdbcType=INTEGER}, 
       #{noreasonBackBackMachineNo,jdbcType=VARCHAR}, #{noreasonBackDesc,jdbcType=VARCHAR}, 
-      #{noreasonBackState,jdbcType=BIT}, #{noreasonBackAlipay,jdbcType=VARCHAR}, #{noreasonBackIsTransfer,jdbcType=BIT}, 
-      #{noreasonBackCreateTime,jdbcType=TIMESTAMP}, #{noreasonBackUpdateTime,jdbcType=TIMESTAMP}
+      #{noreasonBackState,jdbcType=BIT}, #{noreasonBackAlipay,jdbcType=VARCHAR}, #{noreasonBackIsTransfer,jdbcType=BIT}
       )
   </insert>
 

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

@@ -56,22 +56,20 @@
     delete from tb_rst_reissue
     where reissue_id = #{reissueId,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="Reissue" >
+  <insert id="insert" parameterType="Reissue"   useGeneratedKeys="true"  keyProperty="reissueId">
     insert into tb_rst_reissue (customer_id, order_id,
       reissue_back_efast_order_id, reissue_send_status, 
       reissue_send_name, reissue_send_tel, province_number, 
       city_number, area_number, reissue_send_merge_address, 
       reissue_send_address, reissue_send_logistics_company, 
-      reissue_send_logistics_no, reissue_desc, reissue_state, 
-      reissue_create_time, reissue_update_time
+      reissue_send_logistics_no, reissue_desc, reissue_state
       )
     values ( #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{reissueBackEfastOrderId,jdbcType=VARCHAR}, #{reissueSendStatus,jdbcType=BIT}, 
       #{reissueSendName,jdbcType=VARCHAR}, #{reissueSendTel,jdbcType=CHAR}, #{provinceNumber,jdbcType=VARCHAR}, 
       #{cityNumber,jdbcType=VARCHAR}, #{areaNumber,jdbcType=VARCHAR}, #{reissueSendMergeAddress,jdbcType=VARCHAR}, 
       #{reissueSendAddress,jdbcType=VARCHAR}, #{reissueSendLogisticsCompany,jdbcType=VARCHAR}, 
-      #{reissueSendLogisticsNo,jdbcType=VARCHAR}, #{reissueDesc,jdbcType=VARCHAR}, #{reissueState,jdbcType=BIT}, 
-      #{reissueCreateTime,jdbcType=TIMESTAMP}, #{reissueUpdateTime,jdbcType=TIMESTAMP}
+      #{reissueSendLogisticsNo,jdbcType=VARCHAR}, #{reissueDesc,jdbcType=VARCHAR}, #{reissueState,jdbcType=BIT}
       )
   </insert>
   <insert id="insertSelective" parameterType="Reissue" >

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

@@ -110,7 +110,7 @@
     delete from tb_rst_renewed
     where renewed_id = #{renewedId,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="Renewed" >
+  <insert id="insert" parameterType="Renewed"  useGeneratedKeys="true"  keyProperty="renewedId">
     insert into tb_rst_renewed (customer_id, order_id,
       signclosed_id, renewed_back_efast_order_id, 
       renewed_back_status, renewed_back_name, renewed_back_tel, 
@@ -121,7 +121,7 @@
       renewed_send_merge_address, renewed_send_address, 
       renewed_send_logistics_company, renewed_send_logistics_no, 
       renewed_desc, renewed_state, renewed_alipay, 
-      renewed_is_transfer, renewed_create_time, renewed_update_time
+      renewed_is_transfer
       )
     values ( #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{signclosedId,jdbcType=INTEGER}, #{renewedBackEfastOrderId,jdbcType=VARCHAR}, 
@@ -133,7 +133,7 @@
       #{renewedSendMergeAddress,jdbcType=VARCHAR}, #{renewedSendAddress,jdbcType=VARCHAR}, 
       #{renewedSendLogisticsCompany,jdbcType=VARCHAR}, #{renewedSendLogisticsNo,jdbcType=VARCHAR}, 
       #{renewedDesc,jdbcType=VARCHAR}, #{renewedState,jdbcType=BIT}, #{renewedAlipay,jdbcType=VARCHAR}, 
-      #{renewedIsTransfer,jdbcType=BIT}, #{renewedCreateTime,jdbcType=TIMESTAMP}, #{renewedUpdateTime,jdbcType=TIMESTAMP}
+      #{renewedIsTransfer,jdbcType=BIT}
       )
   </insert>
 

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

@@ -100,7 +100,7 @@
     delete from tb_rst_repair
     where repair_id = #{repairId,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="Repair" >
+  <insert id="insert" parameterType="Repair" useGeneratedKeys="true"  keyProperty="repairId">
     insert into tb_rst_repair (customer_id, order_id,
       signclosed_id, repair_back_efast_order_id, repair_back_status, 
       repair_back_name, repair_back_tel, repair_back_logistics_company, 
@@ -110,7 +110,7 @@
       area_number, repair_send_merge_address, repair_send_address, 
       repair_send_logistics_company, repair_send_logistics_no, 
       repair_desc, repair_state, repair_alipay, 
-      repair_is_transfer, repair_create_time, repair_update_time
+      repair_is_transfer
       )
     values (#{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{signclosedId,jdbcType=INTEGER}, #{repairBackEfastOrderId,jdbcType=VARCHAR}, #{repairBackStatus,jdbcType=BIT}, 
@@ -121,7 +121,7 @@
       #{areaNumber,jdbcType=VARCHAR}, #{repairSendMergeAddress,jdbcType=VARCHAR}, #{repairSendAddress,jdbcType=VARCHAR}, 
       #{repairSendLogisticsCompany,jdbcType=VARCHAR}, #{repairSendLogisticsNo,jdbcType=VARCHAR}, 
       #{repairDesc,jdbcType=VARCHAR}, #{repairState,jdbcType=BIT}, #{repairAlipay,jdbcType=VARCHAR}, 
-      #{repairIsTransfer,jdbcType=BIT}, #{repairCreateTime,jdbcType=TIMESTAMP}, #{repairUpdateTime,jdbcType=TIMESTAMP}
+      #{repairIsTransfer,jdbcType=BIT}
       )
   </insert>
 

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

@@ -39,12 +39,19 @@
     delete from tb_rst_send_fitting
     where send_fitting_id = #{sendFittingId,jdbcType=INTEGER}
   </delete>
+
+
   <insert id="insert" parameterType="SendFitting" >
-    insert into tb_rst_send_fitting (send_fitting_id, relation_id, product_id, 
-      fittings_id, send_fitting_number)
-    values (#{sendFittingId,jdbcType=INTEGER}, #{relationId,jdbcType=INTEGER}, #{productId,jdbcType=INTEGER}, 
-      #{fittingsId,jdbcType=INTEGER}, #{sendFittingNumber,jdbcType=INTEGER})
+    insert into tb_rst_send_fitting ( relation_id, product_id,
+      fittings_id, send_fitting_number,send_fitting_type)
+    values
+    <foreach collection="list" item="node" index="index" separator="," open="" close="">
+      (#{node.relationId}, #{node.productId},
+      #{node.fittingsId}, #{node.sendFittingNumber}, #{node.sendFittingType})
+    </foreach>
   </insert>
+
+
   <insert id="insertSelective" parameterType="SendFitting" >
     insert into tb_rst_send_fitting
     <trim prefix="(" suffix=")" suffixOverrides="," >

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

@@ -40,12 +40,20 @@
     delete from tb_rst_send_prodcue
     where send_prodcue_id = #{sendProdcueId,jdbcType=INTEGER}
   </delete>
+
   <insert id="insert" parameterType="SendProdcue" >
-    insert into tb_rst_send_prodcue (send_prodcue_id, relation_id, product_id, 
-      color_id, send_prodcue_number)
-    values (#{sendProdcueId,jdbcType=INTEGER}, #{relationId,jdbcType=INTEGER}, #{productId,jdbcType=INTEGER}, 
-      #{colorId,jdbcType=INTEGER}, #{sendProdcueNumber,jdbcType=INTEGER})
+    insert into tb_rst_send_prodcue ( relation_id, product_id,
+      color_id, send_prodcue_number,send_produce_type)
+    values
+    <foreach collection="list" item="node" index="index" separator="," open="" close="">
+      (
+        #{node.relationId}, #{node.productId},
+        #{node.colorId}, #{node.sendProdcueNumber}, #{node.sendProduceType}
+      )
+    </foreach>
+
   </insert>
+
   <insert id="insertSelective" parameterType="SendProdcue" >
     insert into tb_rst_send_prodcue
     <trim prefix="(" suffix=")" suffixOverrides="," >

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

@@ -51,12 +51,11 @@
       visit_name, visit_tel, visit_date, 
       visit_time_select, visit_status, visit_complete_date, 
       visit_complete_name, visit_complete_tel, visit_complete_remark, 
-      visit_create_time, visit_update_time, visit_complete_sex)
+      visit_complete_sex)
     values (#{visitId,jdbcType=INTEGER}, #{customerId,jdbcType=INTEGER}, #{adminId,jdbcType=INTEGER}, 
       #{visitName,jdbcType=VARCHAR}, #{visitTel,jdbcType=CHAR}, #{visitDate,jdbcType=DATE}, 
       #{visitTimeSelect,jdbcType=BIT}, #{visitStatus,jdbcType=TINYINT}, #{visitCompleteDate,jdbcType=DATE}, 
       #{visitCompleteName,jdbcType=VARCHAR}, #{visitCompleteTel,jdbcType=CHAR}, #{visitCompleteRemark,jdbcType=VARCHAR}, 
-      #{visitCreateTime,jdbcType=TIMESTAMP}, #{visitUpdateTime,jdbcType=TIMESTAMP},
       #{visitCompleteSex})
   </insert>
   <!-- 修改回访信息内容 -->

+ 5 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/order/EfastOrderServiceImpl.java

@@ -256,7 +256,11 @@ public class EfastOrderServiceImpl implements EfastOrderService {
             for(OrderItem orderItem : itemList){
                 orders1 = new HashMap<String, Object>();
                 orders1.put("goods_name", orderItem.getItemProductName());	        // 产品名称
-                orders1.put("goods_number",1);	    		    	// 产品数量
+                if(orderItem.getItemProductNum() == null || orderItem.getItemProductNum() == 0){
+                    orders1.put("goods_number",1);	    		    	// 产品数量
+                }else{
+                    orders1.put("goods_number",orderItem.getItemProductNum());	 // 产品数量
+                }
                 orders1.put("goods_price", orderItem.getItemProductPrice() / 100);	// 产品原价
                 orders1.put("outer_sku", orderItem.getItemColorBar());		        // 产品SKU
                 orders1.put("payment_ft", orderItem.getItemProductPrice() / 100);   // 产品分摊价

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/product/ProductServiceImpl.java

@@ -119,7 +119,7 @@ public class ProductServiceImpl implements ProductService {
     }
 
     @Override
-    public Product getProduce(String productId) {
+    public Product getProduce(Integer productId) {
         return productMapper.getProduce(productId);
     }
 

+ 7 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/ProductMapper.java

@@ -51,7 +51,13 @@ public interface ProductMapper {
      * 获取单个水机  奶机
      * @return
      */
-    Product getProduce(String productId);
+    Product getProduce(Integer productId);
+
+    /**
+     * 获取单个颜色
+     * @return
+     */
+    ProductColor getProduceColor(Integer colorId);
 
     /**
      * 根据条件查询产品类型列表

+ 19 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/productMapper.xml

@@ -112,7 +112,25 @@
     <select id="getProduce"  resultType="product">
         select * from tb_rst_product_info where product_id = #{productId}
     </select>
-    
+
+    <select id="getProduceColor"  resultType="product">
+        SELECT
+            color_id,
+            color_product_id,
+            color_name,
+            color_discount,
+            color_price,
+            color_bar,
+            color_picture,
+            color_status,
+            color_cretae_time,
+            color_update_time
+        FROM
+            tb_rst_product_color
+        WHERE color_id = #{colorId}
+    </select>
+
+
     <select id="listProductAndColorAndfittings" parameterType="Product" resultMap="productColorFittingsMap">
         select * from
         tb_rst_product_info

+ 44 - 5
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -11,6 +11,7 @@ import com.iamberry.rst.faces.order.EfastOrderService;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sys.SysService;
 import com.iamberry.rst.utils.AdminUtils;
+import com.iamberry.rst.utils.OrderNoUtil;
 import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.tools.ResponseJson;
 import net.sf.json.JSONArray;
@@ -66,6 +67,8 @@ public class AdminCustomerController {
     private EfastOrderService efastOrderService;
     @Autowired
     private NoreasonBackService noreasonBackService;
+    @Autowired
+    private ComplaintQuestionInfoService complaintQuestionInfoService;
 
     private Object lock = new Object();
 
@@ -439,10 +442,10 @@ public class AdminCustomerController {
                                     String sendProdcuesJson, String sendFittingsJson, String closedProdcuesJson, String closedFittingsJson) throws Exception {
         Integer flag = 0;
         JSONArray jsonArray;
-        List<SendProdcue> sendProdcueList = new ArrayList<>();
-        List<SendFitting> sendFittingList = new ArrayList<>();
-        List<ClosedProdcue> closedProdcueList = new ArrayList<>();
-        List<ClosedFitting> closedFittingList = new ArrayList<>();
+        List<SendProdcue> sendProdcueList ;
+        List<SendFitting> sendFittingList ;
+        List<ClosedProdcue> closedProdcueList ;
+        List<ClosedFitting> closedFittingList ;
 
         jsonArray = JSONArray.fromObject(sendProdcuesJson);
         sendProdcueList = (List) JSONArray.toCollection(jsonArray, SendProdcue.class);
@@ -462,7 +465,12 @@ public class AdminCustomerController {
         customerCommon.setClosedFittings(closedFittingList);
 
         customerInfo.setCustomerCommon(customerCommon);
-
+        String orderId = "";
+        if(customerInfo.getCustomerIsSolve() == 3  || customerInfo.getCustomerIsSolve() == 4 || customerInfo.getCustomerIsSolve() == 5 ){
+            Integer adminId = AdminUtils.getLoginAdminId();
+            orderId = OrderNoUtil.createOrderCode(adminId);
+        }
+        customerInfo.setTransactionNumber(orderId);
         flag = customerService.saveCustomerInfo(customerInfo, salesOrder);
 
         if (flag < 1) {
@@ -486,6 +494,37 @@ public class AdminCustomerController {
         return flag;
     }
 
+    /**
+     * 添加客诉
+     *
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:add:customer")
+    @RequestMapping("/send_phone_sms")
+    public ResponseJson sendPhoneSms(HttpServletRequest request,String type,String phone,ComplaintQuestionInfo complaintQuestionInfo) throws Exception {
+        String url = "https://rst.iamberry.com/QA";
+        Integer flag = 1;
+        if(type != null && !"".equals(type)){
+            if( "p".equals(type)){
+
+                flag =  complaintQuestionInfoService.updateQuestionById(complaintQuestionInfo);
+
+                url += "/problem?questionId="+complaintQuestionInfo.getQuestionId();
+            }else if( "m".equals(type)){
+                url += "/adress";
+
+            }
+        }
+
+        if (flag < 1) {
+            return new ResponseJson(500, "发送短信失败!", 500);
+        } else {
+            return new ResponseJson(200, "发送短信成功!", 200);
+        }
+    }
+
 
     /**
      * 添加回访完成内容

+ 1 - 3
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminDetectController.java

@@ -44,8 +44,6 @@ public class AdminDetectController {
     @Autowired
     private ProductService productService;
     @Autowired
-    private FittingsInfoService fittingsInfoService;
-    @Autowired
     private ComplaintSignclosedInfoMapper complaintSignclosedInfoMapper;
     @Autowired
     private ComplaintSignclosedProductInfoService signclosedProductInfoService;
@@ -161,7 +159,7 @@ public class AdminDetectController {
             detectInfo.setMachineNo(request.getParameter("maintenanceEquipmentNumber"+detectInfo.getProductId()));
 
         }
-        Product product = productService.getProduce(String.valueOf(detectInfo.getProductId()));
+        Product product = productService.getProduce(detectInfo.getProductId());
         detectInfo.setDetectProductNumber(product.getProductNumber());
         String detectDate = request.getParameter("detect_date");
         if(detectDate == null){

+ 19 - 7
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/ComplaintMaintenanceController.java

@@ -6,10 +6,7 @@ import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsSalesCompany;
-import com.iamberry.rst.faces.cm.ComplaintMaintenanceInfoService;
-import com.iamberry.rst.faces.cm.ComplaintQuestionInfoService;
-import com.iamberry.rst.faces.cm.ComplaintSmallClassInfoService;
-import com.iamberry.rst.faces.cm.ComplaintTypeInfoService;
+import com.iamberry.rst.faces.cm.*;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.pts.MachineService;
 import com.iamberry.rst.faces.pts.PtsSalesCompanyService;
@@ -46,7 +43,8 @@ public class ComplaintMaintenanceController {
     private ProductService productService;
     @Autowired
     private PtsSalesCompanyService ptsSalesCompanyService;
-
+    @Autowired
+    private ComplaintDetectInfoService complaintDetectInfoService;
 
     /**
      * 客诉 - 查询签收/仓储列表
@@ -101,7 +99,7 @@ public class ComplaintMaintenanceController {
             maintenanceInfo.setMaintenanceEquipmentNumber(request.getParameter("maintenanceEquipmentNumber"+maintenanceInfo.getProductId()));
 
         }
-        Product product = productService.getProduce(String.valueOf(maintenanceInfo.getProductId()));
+        Product product = productService.getProduce(maintenanceInfo.getProductId());
         maintenanceInfo.setMaintenanceProductNumber(product.getProductNumber());
         Integer num = complaintMaintenanceInfoService.updateMaintenanceById(maintenanceInfo);
         if (num < 1) {
@@ -176,7 +174,7 @@ public class ComplaintMaintenanceController {
             maintenanceInfo.setMaintenanceEquipmentNumber(request.getParameter("maintenanceEquipmentNumber"+maintenanceInfo.getProductId()));
 
         }
-        Product product = productService.getProduce(String.valueOf(maintenanceInfo.getProductId()));
+        Product product = productService.getProduce(maintenanceInfo.getProductId());
         maintenanceInfo.setMaintenanceProductNumber(product.getProductNumber());
         Integer num = complaintMaintenanceInfoService.insert(maintenanceInfo);
         if (num < 1) {
@@ -326,4 +324,18 @@ public class ComplaintMaintenanceController {
         }
         return msg;
     }
+
+    /**
+     * 跳转到查看品检页面
+     *
+     * @return
+     */
+    @RequiresPermissions("maintenance:update:maintenance")
+    @RequestMapping(value = "/to_view_detect")
+    public ModelAndView toViewDetect(HttpServletRequest request,Integer detectId) {
+        ModelAndView mv = new ModelAndView("cm/maintenance/view_detect");
+        ComplaintDetectInfo complaintDetectInfo = complaintDetectInfoService.getComplaintDetectById(detectId);
+        mv.addObject("detectInfo",complaintDetectInfo);
+        return mv;
+    }
 }

+ 1 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/ComplaintQuestionInfoController.java

@@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;

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

@@ -0,0 +1,45 @@
+package com.iamberry.rst.controllers.cm.app;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Created by wxm
+ * 问题
+ */
+@Controller
+@RequestMapping("/QA")
+public class AppComplaintQuestionInfoController {
+
+
+    /**
+     * 进入客诉问题描述
+     *
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @RequestMapping("/problem")
+    public ModelAndView problem(HttpServletRequest request) throws Exception {
+        ModelAndView mv = new ModelAndView("wap/cm/request_message");
+        String questionId = request.getParameter("questionId");
+        mv.addObject("questionId", questionId);
+        return mv;
+    }
+
+    /**
+     * 进入客诉问题描述
+     *
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @RequestMapping("/adress")
+    public ModelAndView adress(HttpServletRequest request) throws Exception {
+        ModelAndView mv = new ModelAndView("wap/cm/send_message");
+        return mv;
+    }
+}

+ 1 - 1
watero-rst-web/src/main/java/com/iamberry/rst/utils/StitchAttrUtil.java

@@ -101,7 +101,7 @@ public class StitchAttrUtil {
      */
     public static void addNoPro(String...pros){
         for(String pro : pros){
-            if(pro != null && "".equals(pro))
+            if(pro != null && !"".equals(pro))
                 propertySet.add(pro);
         }
     }

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

@@ -50,6 +50,10 @@
         .color-div{height: 30px;}
 
         .table-td-color{}
+        .msg-phone{
+            height: 35px;
+            line-height: 35px;
+        }
     </style>
     <title>添加客诉 - 客诉管理 - RST</title>
 </head>
@@ -182,10 +186,13 @@
             <div class="row cl">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="" placeholder="请输入手机号" id="" name="">
+                    <input type="text" class="input-text" value="" placeholder="请输入手机号" id="p-phone" name="">
                 </div>
-                <div class="formControls col-2 col-sm-2">
-                    <input type="button" class="btn btn-primary" value="发短信給用户">
+                <div class="formControls col-2 col-sm-2" style="width: 10%">
+                    <input type="button" class="btn btn-primary" value="发短信給用户" onclick="sendPhone('p',$('#p-msg'));">
+                </div>
+                <div class="formControls col-2 col-sm-2 msg-phone">
+                    <div id="p-msg" style="color: #e00"></div>
                 </div>
             </div>
             <div class="row cl">
@@ -410,10 +417,13 @@
             <div class="row cl" id="sendAddressByPhone" style="display: none;">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="" placeholder="请输入手机号" id="" name="">
+                    <input type="text" class="input-text" value="" placeholder="请输入手机号" id="m-phone" name="">
                 </div>
-                <div class="formControls col-2 col-sm-2">
-                    <input type="button" class="btn btn-primary" value="发短信給用户">
+                <div class="formControls col-2 col-sm-2" style="width: 10%">
+                    <input type="button" class="btn btn-primary" value="发短信給用户" onclick="sendPhone('m',);">
+                </div>
+                <div class="formControls col-2 col-sm-2 msg-phone">
+                    <div id="m-msg" style="color: #e00"></div>
                 </div>
             </div>
             <div class="row cl" id="updateProduct" style="display: none;">
@@ -532,7 +542,6 @@
 <script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.parse.js"></script>
 <script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/lang/zh-cn/zh-cn.js"></script>
 
-
 <script type="text/javascript">
     $(function(){
 
@@ -602,6 +611,8 @@
 
     /*初始化页面参数*/
     $(function () {
+
+
         /* 初始化单选框样式 */
         initCheck();
 
@@ -669,7 +680,6 @@
             }
         })
 
-
         /*监听回访选择客服的选择事件*/
         $(document).on('change', '#visitAdminId', function() {
             var visitAdminName = $("#visitAdminId").find("option:selected").text();
@@ -1046,12 +1056,56 @@
 
     /**
      * 发送短信
-     * @param phone  手机号码
-     * @param desc   发送内容
+     * @param type 类型: "problem" 问题处理;  mailAddress:邮寄地址;
      * @param node   返回结果显示节点
      */
-    function sendPhone(phone,desc,node){
+    function sendPhone(type,node){
+        var index = layer.load(1, {
+            shade: [0.5,'#fff'] //0.1透明度的白色背景
+        });
+        var desc = "";
+        var phone = "";
+        var questionId = "";
+        var describeTitle = "";
+        if(type == "p"){
+            phone = $("#p-phone").val();
+            questionId = $("#questionId").val();
+            describeTitle = $("#describeTitle").val();
+            desc = UE.getEditor('describeContentText').getContent();
+        }else if(type == "m"){
+            phone = $("#m-phone").val();
+        }else{
+            layer.close(index);
+            layer.msg("发送报错", {icon: 5, time: 3000});
+            return false;
+        }
+        $.ajax({
+            type: "POST",
+            data: {
+                type : type,
+                phone : phone,
+                questionId : questionId,
+                questionName : describeTitle,
+                questionProfile : desc       //回复内容
+            },
+            url: "${path}/admin/customer/send_phone_sms",
+            async: true,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    if(type == "p"){
+                        $("#p-msg").html(data.resultMsg);
+                    }else  if(type == "m"){
+                        $("#m-msg").html(data.resultMsg);
+                    }
+                }else{
 
+                }
+                layer.close(index);
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+                layer.close(index);
+            }
+        });
     }
 
     /***
@@ -1379,7 +1433,7 @@
 
         $("#addProduct").html(html);
 
-        initCheck(); //因为需要展示产品,所以再次初始化多选框
+//        initCheck(); //因为需要展示产品,所以再次初始化多选框
 
         setBackProduct(html);  //设置寄回产品
 
@@ -1470,13 +1524,12 @@
                 addCustomerReady();
             },
             callback: function (data) {//异步回调函数
-                return ;
                 if (data) {
                     var index = layer.alert(data.resultMsg, function () {
                         if (data.resultCode == 200) {
-                            //location.href = "${path}/admin/bom/_bom_list";
+                            location.href = "${path}/admin/customer/select_customer_list";
                         } else {
-                            //layer.close(index);
+                            layer.close(index);
                         }
                         return ;
                     });
@@ -1533,11 +1586,12 @@
                 var product = new Object();
                 product.productId = $(this).parent().find(".input-produce-id").val();
                 product.colorId = $(this).parent().find(".input-color-id").val();
-                product.closedProdcueNumber = $(this).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);
                 }
             }
@@ -1549,11 +1603,12 @@
                 var fittings = new Object();
                 fittings.productId = $(this).parent().find(".input-produce-id").val();
                 fittings.fittingsId = $(this).parent().find(".input-fittings-id").val();
-                fittings.sendFittingNumber = $(this).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);
                 }
             }
@@ -1566,8 +1621,8 @@
                 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 = $(this).val();
+                    fittings.colorId = $(this).parent().find(".input-color-id").val();
+                    fittings.sendProdcueNumber = number;
                     sendProdcues.push(fittings);
                 }
             }
@@ -1581,7 +1636,7 @@
                     var fittings = new Object();
                     fittings.productId = $(this).parent().find(".input-produce-id").val();
                     fittings.fittingsId = $(this).parent().find(".input-fittings-id").val();
-                    fittings.sendFittingNumber = $(this).val();
+                    fittings.sendFittingNumber = number;
                     sendFittings.push(fittings);
                 }
             }

+ 4 - 19
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_detect.ftl

@@ -53,25 +53,10 @@
 
             </div>
         </div>
-
-        <#--<div class="input-box">
-            <span class="input-dic" style="margin-top: 0">&nbsp;</span>
-
-            <label for="radio-2" style="margin-left: 50px;">
-                <input type="radio" id="radio-2" name="detectProductType" value="2"/>配件
-                <select name="productId2" class="select" style="width:100px">
-                <#if (listFittings ?size > 0)>
-                    <#list listFittings as list>
-                        <option value ="${list.fittingsId}">${list.fittingsName}</option>
-                    </#list>
-                <#else >
-                    <option value ="">暂无配件,请先添加配件</option>
-                </#if>
-                </select>
-            </label>
-        </div>-->
-
-        <div class="input-box"><span class="input-dic spanhidth">检测日期</span><input class="my-input-date" type="text" style="width: 76%;"  name="detect_date" id="detectDate" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})" placeholder="请选择检测日期" readonly="readonly"/> </div>
+        <div class="input-box">
+            <span class="input-dic spanhidth">检测日期</span>
+            <input class="my-input-date" type="text" style="width: 76%;"  name="detect_date" id="detectDate" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})" placeholder="请选择检测日期" readonly="readonly"/>
+        </div>
 
         <div class="input-box">
             <span class="input-dic" style="margin-top: 0">检测结果</span>

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/cm/maintenance/add_maintenance.ftl

@@ -32,8 +32,8 @@
 <article class="page-container">
     <form class="form form-horizontal" id="form-admin-add">
         <div class="input-box">
-            <label class="form-label col-2 col-sm-2 huanhang">维修产品:</label>
-            <div class="formControls col-10 col-sm-10 text-c huanhang">
+            <label class="form-label col-3 col-sm-3 huanhang">维修产品:</label>
+            <div class="formControls col-9 col-sm-9 text-c huanhang">
 
             <#if (productList?size > 0)>
                 <#list productList as product>

+ 4 - 16
watero-rst-web/src/main/webapp/WEB-INF/views/cm/maintenance/maintenance_list.ftl

@@ -145,24 +145,12 @@
                            onclick="add_maintenance('完成返修','${path}/admin/maintenance/to_complete_reorder?maintenanceId=${maintenanceInfo.maintenanceId!''}','570','450');">
                             <i class="Hui-iconfont">&#xe676;</i>
                         </a>
-                        <#--<#if signclosed.signclosedState == 2>
-                            <a style="text-decoration:none" href="javascript:;" title="签收"
-                               onclick="update_info('${path}/admin/signclosed/to_complete_signclosed?signclosedId=${signclosed.signclosedId!''}');">
-                                <i class="Hui-iconfont">&#xe6df;</i>
-                            </a>
-                        </#if>
-                        <a style="text-decoration:none" href="javascript:;" title="修改备注"
-                           onclick="add_remark('修改备注','${path}/admin/signclosed/to_update_remark?signclosedId=${signclosed.signclosedId!''}','570','450');">
-                            <i class="Hui-iconfont">&#xe676;</i>
+                        <#if maintenanceInfo.detectId??>
+                        <a style="text-decoration:none" href="javascript:;" title="查看品检内容"
+                           onclick="add_maintenance('查看品检内容','${path}/admin/maintenance/to_view_detect?detectId=${maintenanceInfo.detectId!''}','570','450');">
+                            <i class="Hui-iconfont">&#xe709;</i>
                         </a>
-
-                        <#if signclosed.signclosedIsInto == 2>
-                            <a style="text-decoration:none" href="javascript:;" title="转入品检"
-                               onclick="into_complaint('${signclosed.signclosedId!''}');">
-                                <i class="Hui-iconfont">&#xe644;</i>
-                            </a>
                         </#if>
--->
                     </td>
                 </tr>
                 </#list>

+ 80 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/maintenance/view_detect.ftl

@@ -0,0 +1,80 @@
+<!DOCTYPE HTML>
+<html xmlns="http://www.w3.org/1999/html">
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+<#include "/base/add_base.ftl">
+    <title>查看品质检测内容</title>
+    <style>
+        .my-title{font-weight: 500;padding-left: 15px;position: relative;}
+        .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
+        .my-input{padding: 8px 5px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-input-date{padding: 8px 10px;border:1px solid rgba(0,0,0,.1);width: 80%;background: url(http://s.iamberry.com/images/rili-1.png) 98.5% center no-repeat; background-size:auto 50%;}
+        .input-box{margin: 18px 0;}
+        .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
+        .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
+        .add-list>li{margin: 10px 0;}
+        .my-textarea{padding: 5px 10px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(http://s.iamberry.com/images/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        .buttoncolor{background-color: #A0A0A0;}
+        .huanhang{ float:left}
+    </style>
+    <meta name="keywords" content="${path}">
+    <meta name="description" content="H-ui.admin v3.0,是一款由国人开发的轻量级扁平化网站后台模板,完全免费开源的网站后台管理系统模版,适合中小型CMS后台系统。">
+</head>
+<body>
+<article class="page-container">
+    <form class="form form-horizontal" id="form-admin-add">
+        <div class="input-box">
+            <label class="form-label col-3 col-sm-3 huanhang" style="font-weight: bold;margin-left: 40px;">检测现象</label>
+            <div class="formControls col-9 col-sm-9 text-c huanhang" style="margin-left: -40px;">
+                <div style=" text-align: left; margin-top: 4px;">${detectInfo.detectPhenomenon!''}</div>
+            </div>
+        </div>
+        <div class="input-box">
+            <label class="form-label col-3 col-sm-3 huanhang" style="font-weight: bold;margin-left: 40px;">故障分类</label>
+            <div class="formControls col-9 col-sm-9 text-c huanhang" style="margin-left: -40px;">
+                <div style=" text-align: left; margin-top: 4px;">${detectInfo.detectFailureClassification!''}</div>
+            </div>
+        </div>
+        <div class="input-box">
+            <label class="form-label col-3 col-sm-3 huanhang" style="font-weight: bold;margin-left: 40px;">故障原因</label>
+            <div class="formControls col-9 col-sm-9 text-c huanhang" style="margin-left: -40px;">
+                <div style=" text-align: left; margin-top: 4px;">${detectInfo.detectFailureCause!''}</div>
+            </div>
+        </div>
+        <div class="input-box">
+            <label class="form-label col-3 col-sm-3 huanhang" style="font-weight: bold;margin-left: 40px;">判断结果</label>
+            <div class="formControls col-9 col-sm-9 text-c huanhang" style="margin-left: -40px;">
+                <div style=" text-align: left; margin-top: 4px;">${detectInfo.detectResults!''}</div>
+            </div>
+        </div>
+        <div class="input-box">
+            <label class="form-label col-3 col-sm-3 huanhang" style="font-weight: bold;margin-left: 40px;">故障指向</label>
+            <div class="formControls col-9 col-sm-9 text-c huanhang" style="margin-left: -40px;">
+                <div style=" text-align: left; margin-top: 4px;">${detectInfo.detectPoint!''}</div>
+            </div>
+        </div>
+        <div class="input-box">
+            <label class="form-label col-3 col-sm-3 huanhang" style="font-weight: bold;margin-left: 40px;">故障原因</label>
+            <div class="formControls col-9 col-sm-9 text-c huanhang" style="margin-left: -40px;">
+                <div style=" text-align: left; margin-top: 4px;">${detectInfo.detectAnalysis!''}</div>
+            </div>
+        </div>
+        <div >
+            <label class="form-label col-5 col-sm-5 huanhang" style="margin-left: 40px;margin-top: 100px;">提示:<br>
+                此内容由QA同事填写。</label>
+        </div>
+    </form>
+</article>
+<script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
+
+</body>
+</html>

+ 154 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/wap/cm/request_message.ftl

@@ -0,0 +1,154 @@
+<!DOCTYPE HTML>
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<#assign path="${request.contextPath}">
+		<link href="${path}/common/static/h-ui/css/H-ui.min.css" rel="stylesheet" type="text/css" />
+		<link href="${path}/common/lib/mui/css/mui.min.css" rel="stylesheet" type="text/css" />
+		<link href="${path}/common/lib/mui/css/mui.picker.min.css" rel="stylesheet" type="text/css" />
+		<link href="${path}/common/lib/mui/css/mui.poppicker.css" rel="stylesheet" type="text/css" />
+		<link href="${path}/common/css/input_order/input_order1.css" rel="stylesheet" type="text/css" />
+		<link rel="stylesheet" type="text/css" href="//css.iamberry.com/wateroPF/new/css/iconfont.css?v=2017072401" />
+		<title>回复消息</title>
+		<style>
+			body{background-color: #fff;}
+			.mui-content{background-color: #fff;}
+			.my-content{margin:10px 0;padding:10px 5px; background-color: #f4f4f4;border-radius: 5px;}
+			.icon-wen{display: inline-block; width: 30px;height: 30px;line-height: 30px;text-align: center;background-color: #f74949;color: #fff;border-radius: 50%;margin-right: 5px;}
+			.icon-ji{display: inline-block; width: 30px;height: 30px;line-height: 30px;text-align: center;background-color: #30c9aa;color: #fff;border-radius: 50%;margin-right: 5px;}
+			.tit{color: #33a2d8;font-size: 14px;}
+			.ul-list{list-style: none;margin: 0;padding: 0;font-size: 12px;}
+			.ul-list>li{margin: 10px 0;line-height: 1.5;white-space: pre-wrap;word-break: break-all;}
+			.my-btn{color: #33a2d8;border: 1px solid #33a2d8;background-color: #fff;border-radius: 0;padding:6px 30px;margin: 0 10px;}
+			.my-btn:active{color: #fff;background-color: #33a2d8 !important;}
+		</style>
+	</head>
+<body>	
+<div class="mui-content">
+	<div class="mui-content-padded">
+		<strong>尊敬的客户,您好!</strong>
+		<div style="padding: 10px 0;">
+			感谢您的来访,关于您提出的问题:
+		</div>
+		<div class="my-content">
+			<div style="margin: 10px 0;">
+			<label class="tit"><div class="icon-wen">问</div><span id="questionName"></span></label>
+			</div>
+			<label class="tit"><div class="icon-ji">答</div></label>
+			<ul class="ul-list">
+				<!--<li>01.拧开背部排水口阀门螺母,拔掉硅胶塞,套上配备的出水硅胶管,放置接水容器</li>
+				<li>02.插上电源,开启设备背部电源开关,面板所有指示灯亮起</li>
+				<li>03.机器开始制水,制水时,显示屏风扇符号亮起</li>
+				<li>04.机器开始制水,制好的水直接通过出水口排出,水箱中剩余的水要倒掉,接一桶新的自来水</li>
+				<li>05.按以上步骤重复盛装3桶水,制水完成并排完后,取下硅胶管塞紧硅胶塞,拧紧排水口阀门螺母</li>-->
+			</ul>
+		</div>
+		<p>如因问题对您的生活造成影响,敬请谅解!我们会持续改进,为您提供更好的服务!</p>
+	</div>
+			<div style="padding:20px 0 35px 0;text-align: center;border-bottom: 1px solid #ccc;margin-bottom:10px;">
+			售后热线:<a href="tel:4008006692">400-800-6692</a>
+		</div>
+		<div style="text-align: center;">
+			<p>以上信息是否解决了您的问题?</p>
+		</div>
+		<div style="text-align: center;">
+			<button type="button" class="mui-btn my-btn no">未解决</button>
+			<button type="button" class="mui-btn my-btn yes">已解决</button>
+		</div>
+</div>	
+<script type="text/javascript" src="../lib/mui/js/mui.min.js"></script>
+<script type="text/javascript" src="../lib/jquery/1.9.1/jquery.min.js"></script>
+<script>
+	var questionId=getQueryString("questionId");
+	//自己写的js
+	mui.ready(function() {
+		if(questionId!=null){
+		$.ajax('${path}/admin/complaintQuestion/get_question?dates=' + new Date().getTime(), {
+						data: {
+							"questionId":questionId
+						},
+						dataType: 'json',
+						xhrFields: {
+							withCredentials: true
+						},
+						crossDomain: true,
+						type: 'post',
+						timeout: 15000,
+						success: function(dt) {
+							console.log(dt);
+							if(dt.isRedirect) {
+								location.href = dt.redirectURL;
+							} else {
+								if(dt.returnCode == "200") {
+									$(".my-btn").attr("name",dt.complaintQuestionInfo.questionId);
+									$("#questionName").text(dt.complaintQuestionInfo.questionName);
+									$(".ul-list").html('<li>'+dt.complaintQuestionInfo.questionProfile+'</li>');
+								}else {
+									mui.alert("获取数据失败!")
+								}
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+							console.log(xhr);
+							mui.alert("获取数据失败!请检查网络");
+						}
+		});
+		}
+	});
+	$(document).on('tap', '.my-btn', function() {
+		var th=$(this),parameter = {},questionid=th.attr("name");
+		if(typeof(questionid)!="undefined"){
+		parameter["questionId"] = questionid;
+		if(th.hasClass("yes")){
+			parameter["questionResolvedNum"] = 1;
+		}else{
+			parameter["questionNotSolvedNum"] = 1;
+		}
+		
+		$.ajax('${path}/admin/complaintQuestion/update_question_num?dates=' + new Date().getTime(), {
+						data:parameter,
+						dataType: 'json',
+						xhrFields: {
+							withCredentials: true
+						},
+						crossDomain: true,
+						type: 'post',
+						timeout: 15000,
+						success: function(dt) {
+							console.log(dt);
+							if(dt.isRedirect) {
+								location.href = dt.redirectURL;
+							} else {
+								if(dt.returnCode == "200") {
+									$('.my-btn').attr('disabled','disabled');
+									mui.alert("提交成功!",function(){
+										//do something
+									});
+								}else {
+									mui.alert("提交失败!")
+								}
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+							console.log(xhr);
+							mui.alert("提交失败!请检查网络");
+						}
+				});
+			}else{
+				mui.alert("提交失败!")
+			}
+	});	
+	
+function getQueryString(name) { 
+var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
+var r = window.location.search.substr(1).match(reg); 
+if (r != null) return unescape(r[2]); return null; 
+} 
+</script>
+</body>
+
+</html>

+ 139 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/wap/cm/send_message.ftl

@@ -0,0 +1,139 @@
+<!DOCTYPE HTML>
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<#assign path="${request.contextPath}">
+		<link href="${path}/common/static/h-ui/css/H-ui.min.css" rel="stylesheet" type="text/css" />
+		<link href="${path}/common/lib/mui/css/mui.min.css" rel="stylesheet" type="text/css" />
+		<link href="${path}/common/lib/mui/css/mui.picker.min.css" rel="stylesheet" type="text/css" />
+		<link href="${path}/common/lib/mui/css/mui.poppicker.css" rel="stylesheet" type="text/css" />
+		<link href="${path}/common/css/input_order/input_order1.css" rel="stylesheet" type="text/css" />
+		<link rel="stylesheet" type="text/css" href="//css.iamberry.com/wateroPF/new/css/iconfont.css?v=2017072401" />
+		<title>邮寄信息</title>
+		<style>
+			body{background-color: #fff;}
+			.mui-content{background-color: #fff;}
+			.my-content{margin:10px 0;padding:10px 5px; background-color: #f4f4f4;border-radius: 5px;}
+			.icon-ji{display: inline-block; width: 30px;height: 30px;line-height: 30px;text-align: center;background-color: #30c9aa;color: #fff;border-radius: 50%;margin-right: 5px;}
+			.tit{color: #33a2d8;font-size: 14px;}
+			.ul-list{list-style: none;margin: 0;padding: 0;font-size: 12px;}
+			.ul-list>li{margin: 10px 0;line-height: 1.5;white-space:pre-wrap;word-break: break-all;}
+			.my-btn{color: #33a2d8;border: 1px solid #33a2d8;background-color: #fff;border-radius: 0;padding:6px 30px;margin: 0 10px;}
+			.my-btn:active{color: #fff;background-color: #33a2d8 !important;}
+			.tel{padding: 30px 0;text-align: center;border-bottom: 1px solid #ccc;margin-bottom:10px;}
+		</style>
+	</head>
+<body>	
+<div class="mui-content">
+	<div class="mui-content-padded">
+		<strong>尊敬的客户,您好!对此结果我们非常遗憾!</strong>
+		<div style="padding: 10px 0;">
+			我们会持续改进我们的服务、产品,希望为您提供更好的服务!
+		</div>
+		<div class="my-content">
+			<label class="tit"><div class="icon-ji">寄</div>邮寄信息</label>
+			<ul class="ul-list">
+				<!--<li><strong>地址:</strong>东莞清溪三中金龙工业区徐福记对面优尼雅电子科技</li>
+				<li><strong>收货人:</strong>杨春有 &nbsp;&nbsp;<strong>电话:</strong>13592708169</li>
+				<li><strong>邮寄备注:</strong>您好,麻烦您那边把机器邮寄前请将水箱、接水台中的水倒掉并擦干,不要留有水渍,避免运输途中水或奶粉溅入机器内部造成不必要的损失。</li>
+				<li>用原包装或泡沫等材质包裹好机身。避免运输途中造成机器磕碰、损坏。</li>
+				<li>请勿寄顺丰、圆通、EMS以及到付件快递,其他快递物流随意,寄回时,麻烦您在产品里面留下故障原因说明。</li>
+				<li><strong>提示:</strong>产品寄回后请把单号和您的姓名、地址、电话等信息提供给客服,方便我们修好后给您寄回去。</li>-->
+			</ul>
+		</div>
+	</div>
+		<div class="tel">
+			售后热线:<a href="tel:4008006692">400-800-6692</a>
+		</div>
+		<div style="text-align: center;">
+			<p>以上信息是否解决了您的问题?</p>
+		</div>
+		<div style="text-align: center;">
+			<button type="button" class="mui-btn my-btn no">未解决</button>
+			<button type="button" class="mui-btn my-btn yes">已解决</button>
+		</div>
+</div>	
+<script type="text/javascript" src="../lib/mui/js/mui.min.js"></script>
+<script type="text/javascript" src="../lib/jquery/1.9.1/jquery.min.js"></script>
+<script>
+	//自己写的js
+	mui.ready(function() {
+		$.ajax('${path}/admin/complaintQuestion/get_back_out_question?dates=' + new Date().getTime(), {
+						data: {},
+						dataType: 'json',
+						xhrFields: {
+							withCredentials: true
+						},
+						crossDomain: true,
+						type: 'post',
+						timeout: 15000,
+						success: function(dt) {
+							console.log(dt);
+							if(dt.isRedirect) {
+								location.href = dt.redirectURL;
+							} else {
+								if(dt.returnCode == "200") {
+									$(".my-btn").attr("name",dt.complaintQuestionInfo.questionId);
+									$(".ul-list").html('<li>'+dt.complaintQuestionInfo.questionProfile+'</li>');
+								}else {
+									mui.alert("获取数据失败!")
+								}
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+							console.log(xhr);
+							mui.alert("获取数据失败!请检查网络");
+						}
+		});
+	});
+	$(document).on('tap', '.my-btn', function() {
+		var th=$(this),parameter = {},questionId=th.attr("name");
+		if(typeof(questionId)!="undefined"){
+		parameter["questionId"] = questionId;
+		if(th.hasClass("yes")){
+			parameter["questionResolvedNum"] = 1;
+		}else{
+			parameter["questionNotSolvedNum"] = 1;
+		}
+		
+		$.ajax('${path}/admin/complaintQuestion/update_question_num?dates=' + new Date().getTime(), {
+						data:parameter,
+						dataType: 'json',
+						xhrFields: {
+							withCredentials: true
+						},
+						crossDomain: true,
+						type: 'post',
+						timeout: 15000,
+						success: function(dt) {
+							console.log(dt);
+							if(dt.isRedirect) {
+								location.href = dt.redirectURL;
+							} else {
+								if(dt.returnCode == "200") {
+									$('.my-btn').attr('disabled','disabled');
+									mui.alert("提交成功!",function(){
+										//do something
+									});
+								}else {
+									mui.alert("提交失败!")
+								}
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+							console.log(xhr);
+							mui.alert("提交失败!请检查网络");
+						}
+				});
+			}else{
+				mui.alert("提交失败!")
+			}
+	});	
+</script>
+</body>
+
+</html>