Quellcode durchsuchen

Merge remote-tracking branch 'liujiankang/master'

# Conflicts:
#	watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl
liujiankang vor 7 Jahren
Ursprung
Commit
64b1cc568d
50 geänderte Dateien mit 1450 neuen und 223 gelöschten Zeilen
  1. 27 27
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/BackGoods.java
  2. 118 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java
  3. 27 27
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/NoreasonBack.java
  4. 110 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java
  5. 17 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CompanyInfoService.java
  6. 11 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java
  7. 23 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java
  8. 8 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/product/ProductService.java
  9. 7 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/sys/SysService.java
  10. 24 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CompanyInfoServiceImpl.java
  11. 94 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  12. 37 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java
  13. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/BackGoodsMapper.java
  14. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/CompanyInfoMapper.java
  15. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/CustomerInfoMapper.java
  16. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/NoreasonBackMapper.java
  17. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ReissueMapper.java
  18. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/RenewedMapper.java
  19. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/RepairMapper.java
  20. 29 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java
  21. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/backGoodsMapper.xml
  22. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/companyInfoMapper.xml
  23. 55 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml
  24. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/noreasonBackMapper.xml
  25. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/reissueMapper.xml
  26. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/renewedMapper.xml
  27. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/repairMapper.xml
  28. 85 8
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  29. 4 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/storeInfoMapper.xml
  30. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/order/EfastOrderServiceImpl.java
  31. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/product/ProductServiceImpl.java
  32. 8 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/ProductMapper.java
  33. 13 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/productMapper.xml
  34. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/sys/SysServiceImpl.java
  35. 3 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/sys/mapper/sysMapper.xml
  36. 118 3
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  37. 34 21
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java
  38. 2 0
      watero-rst-web/src/main/resources/platform.properties
  39. 1 1
      watero-rst-web/src/main/resources/watero-rst-ioc.xml
  40. 2 1
      watero-rst-web/src/main/webapp/WEB-INF/views/base/add_base.ftl
  41. 2 0
      watero-rst-web/src/main/webapp/WEB-INF/views/base/list_base.ftl
  42. 74 4
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  43. 98 30
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_list.ftl
  44. 187 67
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl
  45. 10 0
      watero-rst-web/src/main/webapp/WEB-INF/views/login.ftl
  46. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/addRenovationMachine.ftl
  47. 10 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl
  48. 11 11
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/save_produce.ftl
  49. 12 12
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/update_produce.ftl
  50. 60 0
      watero-rst-web/src/main/webapp/common/js/common/common.js

+ 27 - 27
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/BackGoods.java

@@ -13,7 +13,7 @@ public class BackGoods  implements Serializable {
 
     private Integer signclosedId;
 
-    private Boolean backGoodsBackStatus;
+    private Integer backGoodsBackStatus;
 
     private String backGoodsBackName;
 
@@ -29,16 +29,40 @@ public class BackGoods  implements Serializable {
 
     private String backGoodsDesc;
 
-    private Boolean backGoodsState;
+    private Integer backGoodsState;
 
     private String backGoodsAlipay;
 
-    private Boolean backGoodsIsTransfer;
+    private Integer backGoodsIsTransfer;
 
     private Date backGoodsCreateTime;
 
     private Date backGoodsUpdateTime;
 
+    public Integer getBackGoodsBackStatus() {
+        return backGoodsBackStatus;
+    }
+
+    public void setBackGoodsBackStatus(Integer backGoodsBackStatus) {
+        this.backGoodsBackStatus = backGoodsBackStatus;
+    }
+
+    public Integer getBackGoodsState() {
+        return backGoodsState;
+    }
+
+    public void setBackGoodsState(Integer backGoodsState) {
+        this.backGoodsState = backGoodsState;
+    }
+
+    public Integer getBackGoodsIsTransfer() {
+        return backGoodsIsTransfer;
+    }
+
+    public void setBackGoodsIsTransfer(Integer backGoodsIsTransfer) {
+        this.backGoodsIsTransfer = backGoodsIsTransfer;
+    }
+
     public Integer getBackGoodsId() {
         return backGoodsId;
     }
@@ -71,14 +95,6 @@ public class BackGoods  implements Serializable {
         this.signclosedId = signclosedId;
     }
 
-    public Boolean getBackGoodsBackStatus() {
-        return backGoodsBackStatus;
-    }
-
-    public void setBackGoodsBackStatus(Boolean backGoodsBackStatus) {
-        this.backGoodsBackStatus = backGoodsBackStatus;
-    }
-
     public String getBackGoodsBackName() {
         return backGoodsBackName;
     }
@@ -135,14 +151,6 @@ public class BackGoods  implements Serializable {
         this.backGoodsDesc = backGoodsDesc == null ? null : backGoodsDesc.trim();
     }
 
-    public Boolean getBackGoodsState() {
-        return backGoodsState;
-    }
-
-    public void setBackGoodsState(Boolean backGoodsState) {
-        this.backGoodsState = backGoodsState;
-    }
-
     public String getBackGoodsAlipay() {
         return backGoodsAlipay;
     }
@@ -151,14 +159,6 @@ public class BackGoods  implements Serializable {
         this.backGoodsAlipay = backGoodsAlipay == null ? null : backGoodsAlipay.trim();
     }
 
-    public Boolean getBackGoodsIsTransfer() {
-        return backGoodsIsTransfer;
-    }
-
-    public void setBackGoodsIsTransfer(Boolean backGoodsIsTransfer) {
-        this.backGoodsIsTransfer = backGoodsIsTransfer;
-    }
-
     public Date getBackGoodsCreateTime() {
         return backGoodsCreateTime;
     }

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

@@ -47,6 +47,124 @@ public class CustomerInfo  implements Serializable {
     //  问题标题
     private String customerQuestionTitle;
 
+    private String productName;         //客诉产品
+    private String complaintClassName;  //客诉类型名称
+    private String smallClassName;      //客诉小类名称
+    private String describeTitle;       //客诉问题标题
+    private String companyName;         //销售公司名称
+    private String storeName;           //店铺名称
+    private Integer detectState;        //检测状态
+    private Integer typeId;             //产品类型
+    private String typeName;            //产品类型名称
+    private String adminName;           //客服名称
+    private Date salesTime;             //购买日期
+    private Integer backStatus;         //寄回状态
+    private Integer sendStatus;         //寄送状态
+
+    public Integer getBackStatus() {
+        return backStatus;
+    }
+
+    public void setBackStatus(Integer backStatus) {
+        this.backStatus = backStatus;
+    }
+
+    public Integer getSendStatus() {
+        return sendStatus;
+    }
+
+    public void setSendStatus(Integer sendStatus) {
+        this.sendStatus = sendStatus;
+    }
+
+    public Date getSalesTime() {
+        return salesTime;
+    }
+
+    public void setSalesTime(Date salesTime) {
+        this.salesTime = salesTime;
+    }
+
+    public String getAdminName() {
+        return adminName;
+    }
+
+    public void setAdminName(String adminName) {
+        this.adminName = adminName;
+    }
+
+    public Integer getTypeId() {
+        return typeId;
+    }
+
+    public void setTypeId(Integer typeId) {
+        this.typeId = typeId;
+    }
+
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
+    }
+
+    public String getProductName() {
+        return productName;
+    }
+
+    public void setProductName(String productName) {
+        this.productName = productName;
+    }
+
+    public String getComplaintClassName() {
+        return complaintClassName;
+    }
+
+    public void setComplaintClassName(String complaintClassName) {
+        this.complaintClassName = complaintClassName;
+    }
+
+    public String getSmallClassName() {
+        return smallClassName;
+    }
+
+    public void setSmallClassName(String smallClassName) {
+        this.smallClassName = smallClassName;
+    }
+
+    public String getDescribeTitle() {
+        return describeTitle;
+    }
+
+    public void setDescribeTitle(String describeTitle) {
+        this.describeTitle = describeTitle;
+    }
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
+
+    public Integer getDetectState() {
+        return detectState;
+    }
+
+    public void setDetectState(Integer detectState) {
+        this.detectState = detectState;
+    }
+
     public Integer getCustomerId() {
         return customerId;
     }

+ 27 - 27
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/NoreasonBack.java

@@ -13,7 +13,7 @@ public class NoreasonBack  implements Serializable {
 
     private Integer signclosedId;
 
-    private Boolean noreasonBackBackStatus;
+    private Integer noreasonBackBackStatus;
 
     private String noreasonBackBackName;
 
@@ -29,11 +29,11 @@ public class NoreasonBack  implements Serializable {
 
     private String noreasonBackDesc;
 
-    private Boolean noreasonBackState;
+    private Integer noreasonBackState;
 
     private String noreasonBackAlipay;
 
-    private Boolean noreasonBackIsTransfer;
+    private Integer noreasonBackIsTransfer;
 
     private Date noreasonBackCreateTime;
 
@@ -71,14 +71,6 @@ public class NoreasonBack  implements Serializable {
         this.signclosedId = signclosedId;
     }
 
-    public Boolean getNoreasonBackBackStatus() {
-        return noreasonBackBackStatus;
-    }
-
-    public void setNoreasonBackBackStatus(Boolean noreasonBackBackStatus) {
-        this.noreasonBackBackStatus = noreasonBackBackStatus;
-    }
-
     public String getNoreasonBackBackName() {
         return noreasonBackBackName;
     }
@@ -135,14 +127,6 @@ public class NoreasonBack  implements Serializable {
         this.noreasonBackDesc = noreasonBackDesc == null ? null : noreasonBackDesc.trim();
     }
 
-    public Boolean getNoreasonBackState() {
-        return noreasonBackState;
-    }
-
-    public void setNoreasonBackState(Boolean noreasonBackState) {
-        this.noreasonBackState = noreasonBackState;
-    }
-
     public String getNoreasonBackAlipay() {
         return noreasonBackAlipay;
     }
@@ -151,14 +135,6 @@ public class NoreasonBack  implements Serializable {
         this.noreasonBackAlipay = noreasonBackAlipay == null ? null : noreasonBackAlipay.trim();
     }
 
-    public Boolean getNoreasonBackIsTransfer() {
-        return noreasonBackIsTransfer;
-    }
-
-    public void setNoreasonBackIsTransfer(Boolean noreasonBackIsTransfer) {
-        this.noreasonBackIsTransfer = noreasonBackIsTransfer;
-    }
-
     public Date getNoreasonBackCreateTime() {
         return noreasonBackCreateTime;
     }
@@ -174,4 +150,28 @@ public class NoreasonBack  implements Serializable {
     public void setNoreasonBackUpdateTime(Date noreasonBackUpdateTime) {
         this.noreasonBackUpdateTime = noreasonBackUpdateTime;
     }
+
+    public Integer getNoreasonBackBackStatus() {
+        return noreasonBackBackStatus;
+    }
+
+    public void setNoreasonBackBackStatus(Integer noreasonBackBackStatus) {
+        this.noreasonBackBackStatus = noreasonBackBackStatus;
+    }
+
+    public Integer getNoreasonBackState() {
+        return noreasonBackState;
+    }
+
+    public void setNoreasonBackState(Integer noreasonBackState) {
+        this.noreasonBackState = noreasonBackState;
+    }
+
+    public Integer getNoreasonBackIsTransfer() {
+        return noreasonBackIsTransfer;
+    }
+
+    public void setNoreasonBackIsTransfer(Integer noreasonBackIsTransfer) {
+        this.noreasonBackIsTransfer = noreasonBackIsTransfer;
+    }
 }

+ 110 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java

@@ -1,7 +1,12 @@
 package com.iamberry.rst.core.cm;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 客诉订单实体类
@@ -16,7 +21,7 @@ public class SalesOrder implements Serializable {
     private Integer salesDiscountMoney;     //优惠金额
     private Integer salesPledgeMoney;       //押金金额
     private Integer salesRemainDeposit;     //待提取金额
-    private Integer salesStatus;            //订单状态
+    private Integer salesStatus;            //确认状态
     private Integer salesSendType;          //送货方式
     private Date salesSendTime;             //发货时间
     private Date salesSalesTime;            //订购时间
@@ -32,6 +37,8 @@ public class SalesOrder implements Serializable {
     private Integer salesLastMoney;         //本次支付金额
     private Integer salesShippingFee;       //邮费
     private Date salesPayTime;              //支付时间
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date salesCreateTime;           //创建时间
     private String salesAdminRemark;        //后台的备注
     private String salesUserRemark;         //用户备注
@@ -39,6 +46,84 @@ public class SalesOrder implements Serializable {
     private Integer salesStoreId;           //店铺id
     private Integer salesCompanyId;         //销售公司id
     private Integer salesType;              //订单类型
+    private String salesDealCode;           //交易号
+    private Integer salesOrderStatus;       //订单状态
+    private Integer salesShippingStatus;    //发货状态
+    private Integer salesPayStatus;         //付款状态
+    private Integer salesProcessStatus;     //单据状态
+    private Integer salesIsSend;            //是否通知配货
+    private Integer salesIsLocked;          //是否锁定
+    private Integer salesIsSeparate;        //是否缺货
+
+
+    private String companyName;             //销售公司名称
+    private String storeName;               //店铺名称
+
+    private List<SalesOrderItem> salesOrderItemList = new ArrayList<SalesOrderItem>();
+
+    public String getSalesDealCode() {
+        return salesDealCode;
+    }
+
+    public void setSalesDealCode(String salesDealCode) {
+        this.salesDealCode = salesDealCode;
+    }
+
+    public Integer getSalesOrderStatus() {
+        return salesOrderStatus;
+    }
+
+    public void setSalesOrderStatus(Integer salesOrderStatus) {
+        this.salesOrderStatus = salesOrderStatus;
+    }
+
+    public Integer getSalesShippingStatus() {
+        return salesShippingStatus;
+    }
+
+    public void setSalesShippingStatus(Integer salesShippingStatus) {
+        this.salesShippingStatus = salesShippingStatus;
+    }
+
+    public Integer getSalesPayStatus() {
+        return salesPayStatus;
+    }
+
+    public void setSalesPayStatus(Integer salesPayStatus) {
+        this.salesPayStatus = salesPayStatus;
+    }
+
+    public Integer getSalesProcessStatus() {
+        return salesProcessStatus;
+    }
+
+    public void setSalesProcessStatus(Integer salesProcessStatus) {
+        this.salesProcessStatus = salesProcessStatus;
+    }
+
+    public Integer getSalesIsSend() {
+        return salesIsSend;
+    }
+
+    public void setSalesIsSend(Integer salesIsSend) {
+        this.salesIsSend = salesIsSend;
+    }
+
+    public Integer getSalesIsLocked() {
+        return salesIsLocked;
+    }
+
+    public void setSalesIsLocked(Integer salesIsLocked) {
+        this.salesIsLocked = salesIsLocked;
+    }
+
+    public Integer getSalesIsSeparate() {
+        return salesIsSeparate;
+    }
+
+    public void setSalesIsSeparate(Integer salesIsSeparate) {
+        this.salesIsSeparate = salesIsSeparate;
+    }
 
     public Integer getSalesId() {
         return salesId;
@@ -271,4 +356,28 @@ public class SalesOrder implements Serializable {
     public void setSalesType(Integer salesType) {
         this.salesType = salesType;
     }
+
+    public List<SalesOrderItem> getSalesOrderItemList() {
+        return salesOrderItemList;
+    }
+
+    public void setSalesOrderItemList(List<SalesOrderItem> salesOrderItemList) {
+        this.salesOrderItemList = salesOrderItemList;
+    }
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
 }

+ 17 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CompanyInfoService.java

@@ -0,0 +1,17 @@
+package com.iamberry.rst.faces.cm;
+
+import com.iamberry.rst.core.cm.CompanyInfo;
+
+import java.util.List;
+
+/**
+ * 销售公司
+ */
+public interface CompanyInfoService {
+
+    /**
+     * 查询销售公司集合
+     */
+    List<CompanyInfo> listCompanyInfo(CompanyInfo companyInfo);
+
+}

+ 11 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java

@@ -1,9 +1,19 @@
 package com.iamberry.rst.faces.cm;
 
+import com.iamberry.rst.core.cm.CustomerInfo;
+import com.iamberry.rst.core.page.PagedResult;
+
+import java.util.List;
+
 /**
  * 客诉基本信息
  */
 public interface CustomerService {
 
-
+    /**
+     *  查询客诉基本信息列表
+     * @param customerInfo
+     * @return
+     */
+    PagedResult<CustomerInfo> listCustomer(int pageNO, int pageSize, CustomerInfo customerInfo, boolean isTotalNum);
 }

+ 23 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.faces.cm;
 
 import com.iamberry.rst.core.cm.SalesOrder;
+import com.iamberry.rst.core.cm.SalesOrderItem;
 
 import java.util.List;
 
@@ -36,4 +37,26 @@ public interface SalesOrderService {
      * @return
      */
     Integer addSalesOrderList(List<SalesOrder> list);
+
+    /**
+     * 添加订单和订单项
+     * @param list
+     * @return
+     */
+    boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list);
+
+    /**
+     * 获取订单集合
+     * @param salesOrder
+     * @return
+     */
+    List<SalesOrder> listSalesOrder (SalesOrder salesOrder);
+
+    /**
+     * 获取订单项集合
+     * @param salesOrderItem
+     * @return
+     */
+    List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem);
+
 }

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

@@ -2,6 +2,7 @@ package com.iamberry.rst.faces.product;
 
 import com.iamberry.rst.core.order.Product;
 import com.iamberry.rst.core.order.ProductColor;
+import com.iamberry.rst.core.order.ProductType;
 import com.iamberry.rst.core.product.Gift;
 import com.iamberry.rst.core.product.OrderGift;
 
@@ -58,4 +59,11 @@ public interface ProductService {
      * @return
      */
     Product getProduce(String productId);
+
+    /**
+     * 根据条件查询产品类型列表
+     * @param productType
+     * @return
+     */
+    List<ProductType> listProductType(ProductType productType);
 }

+ 7 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/sys/SysService.java

@@ -56,6 +56,13 @@ public interface SysService {
     PagedResult<Admin> listAdmin(PageRequest<Admin> pageRequest);
 
     /**
+     * 不分页查询管理员
+     * @param admin
+     * @return
+     */
+    List<Admin> listSelectAdmin(Admin admin);
+
+    /**
      * 获取管理员信息
      * @param admin
      * @return

+ 24 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CompanyInfoServiceImpl.java

@@ -0,0 +1,24 @@
+package com.iamberry.rst.service.cm;
+
+import com.iamberry.rst.core.cm.CompanyInfo;
+import com.iamberry.rst.faces.cm.CompanyInfoService;
+import com.iamberry.rst.service.cm.mapper.CompanyInfoMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 销售公司
+ */
+@Service
+public class CompanyInfoServiceImpl implements CompanyInfoService{
+
+    @Autowired
+    private CompanyInfoMapper companyInfoMapper;
+
+    @Override
+    public List<CompanyInfo> listCompanyInfo(CompanyInfo companyInfo) {
+        return companyInfoMapper.listCompanyInfo(companyInfo);
+    }
+}

+ 94 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -1,4 +1,97 @@
 package com.iamberry.rst.service.cm;
 
-public class CustomerServiceImpl {
+import com.github.pagehelper.PageHelper;
+import com.iamberry.rst.core.cm.*;
+import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.core.pts.PtsSupplier;
+import com.iamberry.rst.faces.cm.CustomerService;
+import com.iamberry.rst.service.cm.mapper.*;
+import com.iamberry.rst.util.PageUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class CustomerServiceImpl implements CustomerService {
+
+    @Autowired
+    private CustomerInfoMapper customerInfoMapper;
+    @Autowired
+    private RepairMapper repairMapper;
+    @Autowired
+    private BackGoodsMapper backGoodsMapper;
+    @Autowired
+    private NoreasonBackMapper noreasonBackMapper;
+    @Autowired
+    private ReissueMapper reissueMapper;
+    @Autowired
+    private RenewedMapper renewedMapper;
+
+    @Override
+    public PagedResult<CustomerInfo> listCustomer(int pageNO, int pageSize, CustomerInfo customerInfo, boolean isTotalNum) {
+        PageHelper.startPage(pageNO, pageSize, isTotalNum);
+        //查询客诉列表
+        List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
+        //查询售后维修集合
+        List<Repair> repairList = repairMapper.listRepair(new Repair());
+        //查询售后退货集合
+        List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(new BackGoods());
+        //查询售后无理由退货集合
+        List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(new NoreasonBack());
+        //查询售后补发集合
+        List<Reissue> reissueList = reissueMapper.listReissue(new Reissue());
+        //查询售后换新集合
+        List<Renewed> renewedList = renewedMapper.listRenewed(new Renewed());
+
+        if (customerList != null && customerList.size() > 0) {
+            for (CustomerInfo customer : customerList) {
+                switch (customer.getCustomerIsSolve().intValue()) {
+                    case 3: //换新
+                        for (Renewed renewed : renewedList) {
+                            if (renewed.getCustomerId().intValue() == customer.getCustomerId()) {
+                                customer.setBackStatus(renewed.getRenewedBackStatus());
+                                customer.setSendStatus(renewed.getRenewedSendStatus());
+                                break;
+                            }
+                        }
+                        break;
+                    case 4: //维修
+                        for (Repair repair : repairList) {
+                            if (repair.getCustomerId().intValue() == customer.getCustomerId()) {
+                                customer.setBackStatus(repair.getRepairBackStatus());
+                                customer.setSendStatus(repair.getRepairSendStatus());
+                                break;
+                            }
+                        }
+                        break;
+                    case 5: //补发
+                        for (Reissue reissue : reissueList) {
+                            if (reissue.getCustomerId().intValue() == customer.getCustomerId()) {
+                                customer.setSendStatus(reissue.getReissueSendStatus());
+                                break;
+                            }
+                        }
+                        break;
+                    case 6: //退货
+                        for (BackGoods backGoods : backGoodsList) {
+                            if (backGoods.getCustomerId().intValue() == customer.getCustomerId()) {
+                                customer.setBackStatus(backGoods.getBackGoodsBackStatus());
+                                break;
+                            }
+                        }
+                        break;
+                    case 7: //无理由退货
+                        for (NoreasonBack noreasonBack : noreasonBackList) {
+                            if (noreasonBack.getCustomerId().intValue() == customer.getCustomerId()) {
+                                customer.setBackStatus(noreasonBack.getNoreasonBackBackStatus());
+                                break;
+                            }
+                        }
+                        break;
+                }
+            }
+        }
+        return PageUtil.getPage(customerList);
+    }
 }

+ 37 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.service.cm;
 
 import com.iamberry.rst.core.cm.SalesOrder;
+import com.iamberry.rst.core.cm.SalesOrderItem;
 import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,4 +37,40 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     public Integer addSalesOrderList(List<SalesOrder> list) {
         return salesOrderMapper.addSalesOrderList(list);
     }
+
+    @Override
+    public List<SalesOrder> listSalesOrder(SalesOrder salesOrder) {
+        return salesOrderMapper.listSalesOrder(salesOrder);
+    }
+
+    @Override
+    public boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list) {
+        if (list == null || list.size() == 0) {
+            return false;
+        }
+        //查询该订单是否存在,如果存在,不需要再次添加到订单中
+        int count = salesOrderMapper.getOrderInfoCount(salesOrder);
+        if (count > 0) {
+            return true;
+        }
+        //添加订单数据
+        int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
+        if (orderNum <= 0) {
+            return false;
+        }
+        for (SalesOrderItem item : list) {
+            item.setItemOrderId(salesOrder.getSalesId());
+        }
+        //批量添加订单项数据
+        int itemNum = salesOrderMapper.addOrderItemList(list);
+        if (itemNum <= 0) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
+        return salesOrderMapper.listSalesOrderItem(salesOrderItem);
+    }
 }

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/BackGoodsMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.BackGoods;
 
+import java.util.List;
+
 
 public interface BackGoodsMapper {
     int deleteByPrimaryKey(Integer backGoodsId);
@@ -15,4 +17,11 @@ public interface BackGoodsMapper {
     int updateByPrimaryKeySelective(BackGoods record);
 
     int updateByPrimaryKey(BackGoods record);
+
+    /**
+     * 查询售后退货集合
+     * @param backGoods
+     * @return
+     */
+    List<BackGoods> listBackGoods(BackGoods backGoods);
 }

+ 7 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/CompanyInfoMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.CompanyInfo;
 
+import java.util.List;
+
 public interface CompanyInfoMapper {
 
     /**
@@ -24,4 +26,9 @@ public interface CompanyInfoMapper {
      * @return
      */
     Integer updateCompanyInfo(CompanyInfo companyInfo);
+
+    /**
+     * 查询销售公司集合
+     */
+    List<CompanyInfo> listCompanyInfo(CompanyInfo companyInfo);
 }

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/CustomerInfoMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.CustomerInfo;
 
+import java.util.List;
+
 public interface CustomerInfoMapper {
     int deleteByPrimaryKey(Integer customerId);
 
@@ -14,4 +16,11 @@ public interface CustomerInfoMapper {
     int updateByPrimaryKeySelective(CustomerInfo record);
 
     int updateByPrimaryKey(CustomerInfo record);
+
+    /**
+     *  查询客诉基本信息列表
+     * @param customerInfo
+     * @return
+     */
+    List<CustomerInfo> listCustomer(CustomerInfo customerInfo);
 }

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/NoreasonBackMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.NoreasonBack;
 
+import java.util.List;
+
 public interface NoreasonBackMapper {
     int deleteByPrimaryKey(Integer noreasonBackId);
 
@@ -14,4 +16,11 @@ public interface NoreasonBackMapper {
     int updateByPrimaryKeySelective(NoreasonBack record);
 
     int updateByPrimaryKey(NoreasonBack record);
+
+    /**
+     * 查询售后无理由退货集合
+     * @param noreasonBack
+     * @return
+     */
+    List<NoreasonBack> listNoreasonBack(NoreasonBack noreasonBack);
 }

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ReissueMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.Reissue;
 
+import java.util.List;
+
 public interface ReissueMapper {
     int deleteByPrimaryKey(Integer reissueId);
 
@@ -14,4 +16,11 @@ public interface ReissueMapper {
     int updateByPrimaryKeySelective(Reissue record);
 
     int updateByPrimaryKey(Reissue record);
+
+    /**
+     * 查询售后补发集合
+     * @param reissue
+     * @return
+     */
+    List<Reissue> listReissue(Reissue reissue);
 }

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/RenewedMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.Renewed;
 
+import java.util.List;
+
 public interface RenewedMapper {
     int deleteByPrimaryKey(Integer renewedId);
 
@@ -14,4 +16,11 @@ public interface RenewedMapper {
     int updateByPrimaryKeySelective(Renewed record);
 
     int updateByPrimaryKey(Renewed record);
+
+    /**
+     * 查询售后换新集合
+     * @param renewed
+     * @return
+     */
+    List<Renewed> listRenewed(Renewed renewed);
 }

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/RepairMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.Repair;
 
+import java.util.List;
+
 public interface RepairMapper {
     int deleteByPrimaryKey(Integer repairId);
 
@@ -14,4 +16,11 @@ public interface RepairMapper {
     int updateByPrimaryKeySelective(Repair record);
 
     int updateByPrimaryKey(Repair record);
+
+    /**
+     * 查询售后维修集合
+     * @param repair
+     * @return
+     */
+    List<Repair> listRepair(Repair repair);
 }

+ 29 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.SalesOrder;
+import com.iamberry.rst.core.cm.SalesOrderItem;
 
 import java.util.List;
 
@@ -33,4 +34,32 @@ public interface SalesOrderMapper {
      * @return
      */
     Integer addSalesOrderList(List<SalesOrder> list);
+
+    /**
+     * 获取订单集合
+     * @param salesOrder
+     * @return
+     */
+    List<SalesOrder> listSalesOrder (SalesOrder salesOrder);
+
+    /**
+     * 获取订单项集合
+     * @param salesOrderItem
+     * @return
+     */
+    List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem);
+
+    /**
+     * 批量添加订单项
+     * @param list
+     * @return
+     */
+    Integer addOrderItemList(List<SalesOrderItem> list);
+
+    /**
+     * 根据条件查询订单数量
+     * @param salesOrder
+     * @return
+     */
+    Integer getOrderInfoCount(SalesOrder salesOrder);
 }

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

@@ -32,6 +32,15 @@
     from tb_rst_back_goods
     where back_goods_id = #{backGoodsId,jdbcType=INTEGER}
   </select>
+
+  <!-- 查询售后退货集合 -->
+  <select id="listBackGoods" resultType="BackGoods" parameterType="BackGoods">
+    select
+      *
+    from
+      tb_rst_back_goods
+  </select>
+
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
     delete from tb_rst_back_goods
     where back_goods_id = #{backGoodsId,jdbcType=INTEGER}

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

@@ -23,6 +23,15 @@
     where company_id = #{companyId,jdbcType=INTEGER}
   </select>
 
+  <select id="listCompanyInfo" resultType="CompanyInfo" parameterType="CompanyInfo" >
+    select
+    <include refid="companyInfo" />
+    from tb_rst_sales_company
+    where
+      company_status = 1
+  </select>
+
+
   <!-- 添加销售公司信息 -->
   <insert id="addCompanyInfo" parameterType="CompanyInfo" useGeneratedKeys="true" keyProperty="companyId">
     insert into tb_rst_sales_company (company_id, company_name, company_abbreviation, 

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

@@ -35,6 +35,61 @@
     delete from tb_rst_customer_info
     where customer_id = #{customerId,jdbcType=INTEGER}
   </delete>
+
+  <!-- 查询客诉基本信息列表 -->
+  <select id="listCustomer" parameterType="CustomerInfo" resultType="CustomerInfo">
+    select
+      c.customer_id customerId,
+      c.customer_source_type customerSourceType,
+      a.admin_name adminName,
+      c.customer_name customerName,
+      c.customer_tel customerTel,
+      c.customer_source_type customerSourceType,
+      c.customer_source customerSource,
+      t.type_name typeName,
+      ct.complaint_class_name complaintClassName,
+      sc.small_class_name smallClassName,
+      d.describe_title describeTitle,
+      sc.company_name companyName,
+      si.store_name storeName,
+      c.customer_area customerArea,
+      c.customer_in_TDS customerInTDS,
+      c.customer_out_TDS customerOutTDS,
+      c.customer_is_solve customerIsSolve,
+      c.customer_is_visit customerIsVisit,
+      c.customer_create_time customerCreateTime
+    from
+      tb_rst_customer_info c
+    LEFT JOIN tb_rst_question_describe d ON c.customer_id = d.customer_id
+    LEFT JOIN tb_rst_product_type t ON c.type_id = t.type_id
+    LEFT JOIN tb_rst_complaint_question q ON c.question_id = q.question_id
+    LEFT JOIN tb_rst_complaint_small_class s ON q.small_class_id = s.small_class_id
+    LEFT JOIN tb_rst_complaint_type ct ON s.complaint_id = ct.complaint_id
+    LEFT JOIN tb_rst_sales_company sc ON c.company_id = sc.company_id
+    LEFT JOIN tb_rst_store_info si ON c.store_id = si.store_id
+    LEFT JOIN tb_rst_sys_admin a ON c.admin_id = a.admin_id
+    <where>
+      <if test="customerName != null and customerName != ''">
+        customer_name = #{customerName}
+      </if>
+      <if test="customerTel != null and customerTel != ''">
+        and customer_tel = #{customerTel}
+      </if>
+      <if test="customerName != null and customerName != ''">
+        customer_name = #{customerName}
+      </if>
+      <if test="customerName != null and customerName != ''">
+        customer_name = #{customerName}
+      </if>
+      <if test="customerName != null and customerName != ''">
+        customer_name = #{customerName}
+      </if>
+      <if test="customerName != null and customerName != ''">
+        customer_name = #{customerName}
+      </if>
+    </where>
+  </select>
+
   <insert id="insert" parameterType="CustomerInfo" >
     insert into tb_rst_customer_info (customer_id, admin_id, question_id, 
       company_id, store_id, customer_source_type, 

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

@@ -33,6 +33,15 @@
     from tb_rst_noreason_back
     where noreason_back_id = #{noreasonBackId,jdbcType=INTEGER}
   </select>
+
+  <!-- 查询售后无理由退货集合 -->
+  <select id="listNoreasonBack" resultType="NoreasonBack" parameterType="NoreasonBack">
+    select
+      *
+    from
+      tb_rst_noreason_back
+  </select>
+
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
     delete from tb_rst_noreason_back
     where noreason_back_id = #{noreasonBackId,jdbcType=INTEGER}

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

@@ -33,6 +33,15 @@
     from tb_rst_reissue
     where reissue_id = #{reissueId,jdbcType=INTEGER}
   </select>
+
+  <!-- 查询售后补发集合 -->
+  <select id="listReissue" resultType="Reissue" parameterType="Reissue">
+    select
+      *
+    from
+      tb_rst_reissue
+  </select>
+
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
     delete from tb_rst_reissue
     where reissue_id = #{reissueId,jdbcType=INTEGER}

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

@@ -46,6 +46,15 @@
     from tb_rst_renewed
     where renewed_id = #{renewedId,jdbcType=INTEGER}
   </select>
+
+  <!-- 查询售后换新集合 -->
+  <select id="listRenewed" resultType="Renewed" parameterType="Renewed">
+    select
+      *
+    from
+      tb_rst_renewed
+  </select>
+
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
     delete from tb_rst_renewed
     where renewed_id = #{renewedId,jdbcType=INTEGER}

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

@@ -45,6 +45,15 @@
     from tb_rst_repair
     where repair_id = #{repairId,jdbcType=INTEGER}
   </select>
+
+  <!-- 查询售后维修集合 -->
+  <select id="listRepair" resultType="Repair" parameterType="Repair">
+    select
+      *
+    from
+      tb_rst_repair
+  </select>
+
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
     delete from tb_rst_repair
     where repair_id = #{repairId,jdbcType=INTEGER}

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

@@ -49,6 +49,66 @@
     where sales_id = #{salesId,jdbcType=INTEGER}
   </select>
 
+  <!-- 订单集合 -->
+  <select id="listSalesOrder" resultType="SalesOrder" parameterType="SalesOrder" >
+    select
+    tb_rst_sales_order_info.*,
+    trsc.company_name companyName,
+    trsi.store_name  storeName
+    from tb_rst_sales_order_info
+    LEFT JOIN tb_rst_sales_company trsc ON tb_rst_sales_order_info.sales_company_id = trsc.company_id
+    LEFT JOIN tb_rst_store_info trsi ON tb_rst_sales_order_info.sales_store_id = trsi.store_id
+    <where>
+      <if test="salesStatus !=null and salesStatus !=''">
+        AND sales_status = #{salesStatus}
+      </if>
+      <if test="salesStoreId !=null and salesStoreId !=''">
+        AND sales_store_id = #{salesStoreId}
+      </if>
+      <if test="salesCompanyId !=null and salesCompanyId !=''">
+        AND sales_company_id = #{salesCompanyId}
+      </if>
+      <if test="salesId !=null">
+        AND sales_id like CONCAT('%',#{salesId},'%')
+      </if>
+      <if test="salesOrderId !=null and salesOrderId !=''">
+        AND sales_orderId like CONCAT('%',#{salesOrderId},'%')
+      </if>
+      <if test="salesAddressTel !=null and salesAddressTel !=''">
+        AND sales_address_tel like CONCAT('%',#{salesAddressTel},'%')
+      </if>
+      <if test="salesAddressName !=null and salesAddressName !=''">
+        AND sales_address_name like CONCAT('%',#{salesAddressName},'%')
+      </if>
+    </where>
+    ORDER BY sales_create_time DESC
+  </select>
+
+  <!-- 订单项集合 -->
+  <select id="listSalesOrderItem" resultType="SalesOrderItem" parameterType="SalesOrderItem" >
+        SELECT
+            item_id,
+            item_order_id,
+            item_product_id,
+            item_num,
+            item_color_id,
+            item_product_type,
+            item_product_name,
+            item_product_pic,
+            item_product_color,
+            item_color_bar,
+            item_product_price,
+            item_product_discount,
+            item_create_time
+        FROM
+            tb_rst_sales_order_item
+      <where>
+          <if test="itemOrderId !=null and itemOrderId !=''">
+              AND item_order_id = #{itemOrderId}
+          </if>
+      </where>
+  </select>
+
   <!-- 添加订单信息 -->
   <insert id="addSalesOrder" parameterType="SalesOrder" keyProperty="salesId" useGeneratedKeys="true" >
     insert into tb_rst_sales_order_info (sales_id, sales_orderId, sales_openId, 
@@ -60,8 +120,9 @@
       sales_wait_money, sales_last_money, sales_shipping_fee, 
       sales_pay_time, sales_create_time, sales_admin_remark, 
       sales_user_remark, sales_pay_number, sales_store_id, 
-      sales_company_id, sales_type)
-    values (#{salesId,jdbcType=INTEGER}, #{salesOrderid,jdbcType=VARCHAR}, #{salesOpenid,jdbcType=VARCHAR}, 
+      sales_company_id, sales_type,sales_deal_code,sales_order_status,sales_shipping_status,
+      sales_pay_status,sales_process_status,sales_is_send,sales_is_locked,sales_is_separate)
+    values (#{salesId,jdbcType=INTEGER}, #{salesOrderId,jdbcType=VARCHAR}, #{salesOpenId,jdbcType=VARCHAR},
       #{salesDiscountMoney,jdbcType=INTEGER}, #{salesPledgeMoney,jdbcType=INTEGER}, #{salesRemainDeposit,jdbcType=INTEGER}, 
       #{salesStatus,jdbcType=INTEGER}, #{salesSendType,jdbcType=INTEGER}, #{salesSendTime,jdbcType=TIMESTAMP}, 
       #{salesSalesTime,jdbcType=TIMESTAMP}, #{salesPostNum,jdbcType=VARCHAR}, #{salesPostFirm,jdbcType=VARCHAR}, 
@@ -70,15 +131,28 @@
       #{salesWaitMoney,jdbcType=INTEGER}, #{salesLastMoney,jdbcType=INTEGER}, #{salesShippingFee,jdbcType=INTEGER}, 
       #{salesPayTime,jdbcType=TIMESTAMP}, #{salesCreateTime,jdbcType=TIMESTAMP}, #{salesAdminRemark,jdbcType=VARCHAR},
       #{salesUserRemark,jdbcType=VARCHAR}, #{salesPayNumber,jdbcType=VARCHAR}, #{salesStoreId,jdbcType=INTEGER}, 
-      #{salesCompanyId,jdbcType=INTEGER}, #{salesType,jdbcType=INTEGER})
+      #{salesCompanyId,jdbcType=INTEGER}, #{salesType,jdbcType=INTEGER},#{salesDealCode},#{salesOrderStatus},
+      #{salesShippingStatus},#{salesPayStatus},#{salesProcessStatus},#{salesIsSend},#{salesIsLocked},
+      #{salesIsSeparate})
   </insert>
 
-  <!--<insert id="addOrderItemList" parameterType="ArrayList">
+  <!-- 批量添加订单项数据 -->
+  <insert id="addOrderItemList" parameterType="ArrayList">
     INSERT INTO tb_rst_sales_order_item
       (
-
+        item_order_id,item_product_id,item_num,item_color_id,item_product_type,
+        item_product_name,item_product_pic,item_product_color,item_color_bar,
+        item_product_price,item_product_discount,item_create_time
       )
-  </insert>-->
+    VALUES
+    <foreach collection="list" item="item" separator=",">
+      (
+        #{item.itemOrderId},#{item.itemProductId},#{item.itemNum},#{item.itemColorId},
+        #{item.itemProductType},#{item.itemProductName},#{item.itemProductPic},#{item.itemProductColor},
+        #{item.itemColorBar},#{item.itemProductPrice},#{item.itemProductDiscount},#{item.itemCreateTime}
+      )
+    </foreach>
+  </insert>
 
   <!-- 批量添加订单信息 -->
   <insert id="addSalesOrderList" parameterType="ArrayList" >
@@ -92,7 +166,8 @@
       sales_wait_money, sales_last_money, sales_shipping_fee,
       sales_pay_time, sales_create_time, sales_admin_remark,
       sales_user_remark, sales_pay_number, sales_store_id,
-      sales_company_id, sales_type)
+      sales_company_id, sales_type,sales_deal_code,sales_order_status,sales_shipping_status,
+      sales_pay_status,sales_process_status,sales_is_send,sales_is_locked,sales_is_separate)
     values
     <foreach collection="list" item="item" separator=",">
     (
@@ -105,7 +180,9 @@
       #{item.salesWaitMoney}, #{item.salesLastMoney}, #{item.salesShippingFee},
       #{item.salesPayTime}, #{item.salesCreateTime}, #{item.salesAdminRemark},
       #{item.salesUserRemark}, #{item.salesPayNumber}, #{item.salesStoreId},
-      #{item.salesCompanyId}, #{item.salesType}
+      #{item.salesCompanyId}, #{item.salesType},#{salesDealCode},#{salesOrderStatus},
+      #{salesShippingStatus},#{salesPayStatus},#{salesProcessStatus},#{salesIsSend},#{salesIsLocked},
+      #{salesIsSeparate}
     )
     </foreach>
   </insert>

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

@@ -33,7 +33,10 @@
         store_efast = #{storeEfast}
       </if>
       <if test="storeStatus != null">
-        and storeStatus = #{storeStatus}
+        and store_status = #{storeStatus}
+      </if>
+      <if test="companyId != null">
+        and company_id = #{companyId}
       </if>
     </where>
   </select>

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

@@ -325,7 +325,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 
         Map<String, String> requestData = getRequestData(EFAST_ORDER_SELECT);
         requestData.put("oid", orderid);
-        requestData.put("feilds","order_status,shipping_status");   //1.order_status 订单状态:0(未确认)1(确认)2(挂起)3(作废)     2.shipping_status发货状态: 0(未发货)1(已发货,即已扫描出库)3(备货中)
+        requestData.put("feilds",NameUtils.getConfig("order_field"));   //1.order_status 订单状态:0(未确认)1(确认)2(挂起)3(作废)     2.shipping_status发货状态: 0(未发货)1(已发货,即已扫描出库)3(备货中)
 
         try {
             String result = HttpClient431Util.doGet(requestData, EFAST_BASE_URL);

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

@@ -2,6 +2,7 @@ package com.iamberry.rst.service.product;
 
 import com.iamberry.rst.core.order.Product;
 import com.iamberry.rst.core.order.ProductColor;
+import com.iamberry.rst.core.order.ProductType;
 import com.iamberry.rst.core.product.Gift;
 import com.iamberry.rst.core.product.OrderGift;
 import com.iamberry.rst.faces.product.ProductService;
@@ -111,4 +112,9 @@ public class ProductServiceImpl implements ProductService {
     public Product getProduce(String productId) {
         return productMapper.getProduce(productId);
     }
+
+    @Override
+    public List<ProductType> listProductType(ProductType productType) {
+        return productMapper.listProductType(productType);
+    }
 }

+ 8 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/ProductMapper.java

@@ -2,6 +2,7 @@ package com.iamberry.rst.service.product.mapper;
 
 import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.order.Product;
+import com.iamberry.rst.core.order.ProductType;
 import com.iamberry.rst.core.product.OrderGift;
 
 import java.util.List;
@@ -39,4 +40,11 @@ public interface ProductMapper {
      * @return
      */
     Product getProduce(String productId);
+
+    /**
+     * 根据条件查询产品类型列表
+     * @param productType
+     * @return
+     */
+    List<ProductType> listProductType(ProductType productType);
 }

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

@@ -52,6 +52,19 @@
         </where>
     </select>
 
+    <!-- 根据条件查询产品类型集合 -->
+    <select id="listProductType" parameterType="ProductType" resultType="ProductType">
+      select
+        *
+      from
+        tb_rst_product_type
+      <where>
+          <if test="typeStatus != null and typeStatus != ''">
+              type_status = #{typeStatus}
+          </if>
+      </where>
+    </select>
+
     <select id="listProduce"  resultType="product">
         select * from tb_rst_product_info where product_type = 1
     </select>

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/sys/SysServiceImpl.java

@@ -122,4 +122,9 @@ public class SysServiceImpl implements SysService {
     public List<Admin> listGetAdmin(Admin admin) {
         return sysMapper.listAdmin(admin);
     }
+
+    @Override
+    public List<Admin> listSelectAdmin(Admin admin) {
+        return sysMapper.listAdmin(admin);
+    }
 }

+ 3 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/sys/mapper/sysMapper.xml

@@ -138,6 +138,9 @@
 			<if test="adminId != null">
 				AND admin_id = #{adminId}
 			</if>
+			<if test="adminStatus != null">
+				AND admin_status = #{adminStatus}
+			</if>
 		</where>
 	</select>
 

+ 118 - 3
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -1,13 +1,26 @@
 package com.iamberry.rst.controllers.cm;
 
-import com.iamberry.rst.core.cm.CustomerInfo;
+import com.iamberry.rst.core.cm.*;
+import com.iamberry.rst.core.order.ProductType;
+import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.core.sys.Admin;
+import com.iamberry.rst.faces.cm.*;
+import com.iamberry.rst.faces.product.ProductService;
+import com.iamberry.rst.faces.sys.SysService;
+import com.iamberry.rst.utils.StitchAttrUtil;
+import com.iamberry.wechat.tools.ResponseJson;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+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.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Created by wxm
@@ -16,7 +29,20 @@ import javax.servlet.http.HttpServletRequest;
 @RequestMapping("/admin/customer")
 public class AdminCustomerController {
 
-
+    @Autowired
+    private CompanyInfoService companyInfoService;
+    @Autowired
+    private StoreInfoService storeInfoService;
+    @Autowired
+    private SalesOrderService salesOrderService;
+    @Autowired
+    private CustomerService customerService;
+    @Autowired
+    private ProductService productService;
+    @Autowired
+    private SysService sysService;
+    @Autowired
+    private ComplaintTypeInfoService complaintTypeInfoService;
 
     /**
      * 获取客诉列表
@@ -61,7 +87,7 @@ public class AdminCustomerController {
     }
 
     /**
-     * 客诉搜索订单列表
+     * 搜索订单列表弹出框
      *
      * @return
      */
@@ -70,11 +96,100 @@ public class AdminCustomerController {
     public ModelAndView selectOrder(HttpServletRequest request) {
         ModelAndView mv = new ModelAndView("cm/customer/order_list");
 
+        //获取销售公司
+        List<CompanyInfo> companyInfoList =  companyInfoService.listCompanyInfo(new CompanyInfo());
 
+        mv.addObject("companyInfoList", companyInfoList);
         return mv;
     }
 
 
+    /**
+     * 获取店铺集合
+     * @param request
+     * @param storeInfo
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:add:customer")
+    @RequestMapping(value = "/select_storeInfo")
+    public ResponseJson listStoreInfo(HttpServletRequest request,StoreInfo storeInfo) {
+        storeInfo.setStoreStatus(1);
+        List<StoreInfo> storeInfoList = storeInfoService.listStore(storeInfo);
+
+        if (storeInfoList == null || storeInfoList.size() < 1) {
+            return new ResponseJson(500, "查询失败", 500);
+        } else {
+            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            rj.addResponseKeyValue("storeInfoList", storeInfoList);
+            return rj;
+        }
+    }
 
+    /**
+     * 获取订单集合
+     * @param request
+     * @param salesOrder
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:add:customer")
+    @RequestMapping(value = "/select_salesOrder")
+    public ResponseJson listOrder(HttpServletRequest request,SalesOrder salesOrder) {
+        List<SalesOrder> salesOrderList = salesOrderService.listSalesOrder(salesOrder);
+
+        for(SalesOrder order : salesOrderList){
+            SalesOrderItem salesOrderItem = new SalesOrderItem();
+            salesOrderItem.setItemOrderId(order.getSalesId());
+            List<SalesOrderItem> salesOrderItemList = salesOrderService.listSalesOrderItem(salesOrderItem);
+            order.setSalesOrderItemList(salesOrderItemList);
+        }
+
+        if (salesOrderList == null || salesOrderList.size() < 1) {
+            return new ResponseJson(500, "查询失败", 500);
+        } else {
+            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            rj.addResponseKeyValue("salesOrderList", salesOrderList);
+            return rj;
+        }
+    }
+
+    /**
+     * 分页查询客诉列表信息
+     * @param request
+     * @param customerInfo
+     * @param pageSize
+     * @param pageNO
+     * @param totalNum
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("customer:select:customer")
+    @RequestMapping("/select_customer_list")
+    public ModelAndView selectCustomerList(HttpServletRequest request,CustomerInfo customerInfo,
+                                           @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
+                                           @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
+                                           @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception{
+        ModelAndView mv = new ModelAndView("cm/customer/custome_list");
+        PagedResult<CustomerInfo> pagedResult = customerService.listCustomer(pageNO, pageSize, customerInfo, totalNum == 0);
+        if (totalNum != 0) {
+            pagedResult.setTotal(totalNum);
+        }
+        ProductType productType = new ProductType();
+        productType.setTypeStatus(1);
+        //查询产品类型集合
+        List<ProductType> typeList = productService.listProductType(productType);
+        //查询客诉类型集合
+        List<ComplaintTypeInfo> complaintTypeList = complaintTypeInfoService.listComplaintTypeInfo(new ComplaintTypeInfo());
+        //查询跟进客服集合
+        Admin admin = new Admin();
+        admin.setAdminStatus(1);
+        List<Admin> adminList = sysService.listSelectAdmin(admin);
+        mv.addObject("typeList",typeList);
+        mv.addObject("complaintTypeList",complaintTypeList);
+        mv.addObject("adminList",adminList);
+        StitchAttrUtil.setModelAndView(customerInfo, mv, "/admin/customer/select_customer_list", pagedResult);
+        return mv;
+    }
 }
 

+ 34 - 21
watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java

@@ -7,12 +7,14 @@ import com.iamberry.rst.core.cm.StoreInfo;
 import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.sms.OrderMessage;
 import com.iamberry.rst.core.sms.SmsMessage;
+import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.faces.cm.StoreInfoService;
 import com.iamberry.rst.faces.order.EfastOrderService;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sms.MessageService;
 import com.iamberry.rst.faces.sms.SmsService;
 import com.iamberry.rst.service.sms.mapper.MessageMapper;
+import com.iamberry.wechat.tools.DateTimeUtil;
 import com.iamberry.wechat.tools.ResponseJson;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -49,8 +51,8 @@ public class MQTask implements InitializingBean {
 	private ProductService productService;
 	@Autowired
 	private StoreInfoService storeInfoService;
-
-	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+	@Autowired
+	private SalesOrderService salesOrderService;
 
 	public void afterPropertiesSet() throws Exception {
 	}
@@ -87,16 +89,23 @@ public class MQTask implements InitializingBean {
 	 * @throws Exception
 	 */
 	//@Scheduled(cron = "0 0 */1 * * ?")//每小时执行一次
-	@Scheduled(cron = "*/10 * * * * ?")
+	//@Scheduled(cron = "*/10 * * * * ?")
 	public void syncEfastOrderList() throws Exception {
 		int pageNo = 1;
 		int pageSize = 20;
 		boolean flag = false;	//控制是否还需要获取百胜订单信息
-		String date = "2016-04-01";
+		String date = "";
+		//根据时间排序查询订单信息
+		List<SalesOrder> orderList = salesOrderService.listSalesOrder(new SalesOrder());
+		if (orderList != null && orderList.size() > 0) {
+			SalesOrder salesOrder = orderList.get(0);
+			date = salesOrder.getSalesCreateTime().toString();
+		} else {
+			date = "2016-04-01";
+		}
 		do {
 			//批量获取百胜订单信息
 			JSONObject obj = efastOrderService.listOrderInfoFormEfast(pageNo, pageSize,date);
-			System.out.println("obj="+obj);
 			if (obj == null) {
 				return;
 			}
@@ -127,7 +136,7 @@ public class MQTask implements InitializingBean {
 		for (int i = 0;i < orderList.size();i++) {
 			JSONObject order = orderList.getJSONObject(i);
 			//获取订单详情
-			JSONObject orderInfo = efastOrderService.getOrderFormEfast(order.getString("order_sn"));
+			JSONObject orderInfo = efastOrderService.getOrderFormEfast(order.getString("deal_code"));
 			if (orderInfo == null) {
 				return;
 			}
@@ -139,20 +148,23 @@ public class MQTask implements InitializingBean {
 
 			SalesOrder salesOrder = new SalesOrder();
 			salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
-			int payStatus = order.getInt("pay_status");				//是否付款 0:未付款,2:已付款
-			int orderStatus = order.getInt("order_status");			//订单状态 0:未确认,1:已确认,2:挂起,3:作废
-			int shippingStatus = order.getInt("shipping_status");	//发货状态 0:未发货,1:已发货,3:备货中
-			if (payStatus == 2 && (orderStatus == 0 || orderStatus == 1)) {
-				if (shippingStatus == 0) {
-					salesOrder.setSalesStatus(2);
-				} else if (shippingStatus == 1) {
-					salesOrder.setSalesStatus(5);
-				}
-			}
+			salesOrder.setSalesDealCode(order.getString("deal_code"));//交易号
+			salesOrder.setSalesOrderStatus(1);//订单状态
+			salesOrder.setSalesShippingStatus(order.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
+			salesOrder.setSalesPayStatus(order.getInt("pay_status"));//是否付款 0:未付款,2:已付款
+			salesOrder.setSalesProcessStatus(order.getInt("process_status"));//单据状态
+			salesOrder.setSalesIsSend(order.getInt("is_send"));//是否通知配货
+			salesOrder.setSalesIsLocked(order.getInt("is_locked"));//是否锁定
+			salesOrder.setSalesIsSeparate(order.getInt("is_separate"));//是否缺货
+			salesOrder.setSalesStatus(order.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
+			/*if (orderStatus == 2 || orderStatus == 3) {
+				continue;
+			}*/
 			salesOrder.setSalesPostFirm(order.getString("shipping_name"));//快递方式代码
 			salesOrder.setSalesPostNum(order.getString("invoice_no"));//快递单号
+			salesOrder.setSalesOpenId(order.getString("mobile"));//唯一标识
 			salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name")));//支付方式
-			salesOrder.setSalesPayTime(format.parse(order.getString("pay_time")));//支付时间
+			salesOrder.setSalesPayTime(new Date(order.getInt("pay_time")*1000));//支付时间
 			salesOrder.setSalesUserRemark(order.getString("postscript"));//买家留言
 			salesOrder.setSalesAdminRemark(order.getString("to_buyer"));//商家留言
 			salesOrder.setSalesAmount(order.getInt("order_amount")*100);//应付款
@@ -161,9 +173,9 @@ public class MQTask implements InitializingBean {
 			salesOrder.setSalesAddressTel(order.getString("mobile"));//收货人电话
 			salesOrder.setSalesAddressInfo(order.getString("address").replaceAll(" ","-"));//收货地址
 			salesOrder.setSalesShippingFee(order.getInt("shipping_fee")*100);//邮费
-			salesOrder.setSalesCreateTime(format.parse(order.getString("create_time")));//创建时间
+			salesOrder.setSalesCreateTime(DateTimeUtil.parse(order.getString("create_time"),"yyyy-MM-dd HH:mm:ss"));//创建时间
 			if (StringUtils.isNotEmpty(order.getString("delivery_time"))) {
-				salesOrder.setSalesSendTime(format.parse(order.getString("delivery_time")));//发货时间
+				salesOrder.setSalesSendTime(DateTimeUtil.parse(order.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
 			}
 			salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
 			salesOrder.setSalesPledgeMoney(0);//押金金额
@@ -180,7 +192,7 @@ public class MQTask implements InitializingBean {
 			List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
 			int storeId = 0;
 			int companyId = 0;
-			if (storeList == null || storeList.size() == 0) {
+			if (storeList != null && storeList.size() > 0) {
 				storeInfo = storeList.get(0);
 				storeId = storeInfo.getStoreId();
 				companyId = storeInfo.getCompanyId();
@@ -211,7 +223,8 @@ public class MQTask implements InitializingBean {
 				item.setItemProductPrice(color.getColorPrice());
 				itemList.add(item);
 			}
-
+			//添加订单和订单项
+			salesOrderService.addOrderAndItem(salesOrder,itemList);
 		}
 	}
 }

+ 2 - 0
watero-rst-web/src/main/resources/platform.properties

@@ -5,6 +5,8 @@ app_key=8888
 app_secret=8888
 # sd_id \uFFFD\uFFFD\uFFFD\uFFFDid		test:001		watero:8
 sd_id=001
+# order_field
+order_field=order_sn,deal_code,order_status,shipping_status,pay_status,process_status,is_send,is_locked,is_separate,consignee,address,zipcode,tel,mobile,shipping_name,pay_name,invoice_no,order_amount ,money_paid,user_id ,orders.goods_sn,orders.goods_name,orders.goods_number,orders.goods_price,orders.goods_barcode,orders.payment_ft,pay_time,to_buyer,postscript,order_amount,user_nick,money_paid,shipping_fee
 #---efast end---#
 #---SMS begin---#
 #SMS_USERNAME=aibeiyuan

+ 1 - 1
watero-rst-web/src/main/resources/watero-rst-ioc.xml

@@ -26,7 +26,7 @@
     <aop:aspectj-autoproxy proxy-target-class="true"/>
 
 	<!-- 开启注解启动定时器 -->
-    <task:annotation-driven/>
+    <!--<task:annotation-driven/>-->
 
 	<!-- DataSource -->
 	<import resource="classpath:watero-rst-db.xml"/>

+ 2 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/base/add_base.ftl

@@ -25,7 +25,8 @@
 <script type="text/javascript" src="${path}/common/lib/jquery.validation/1.14.0/messages_zh.js"></script>
 <script type="text/javascript" src="${path}/common/lib/Validform/Validform_v5.3.2.js"></script>
 
+<script type="text/javascript" src="${path}/common/js/common/common.js"></script>
 <script type="text/javascript">
-    // 判断
+    // 判断<script type="text/javascript" src="${path}/common/js/common/common.js"></script>
     var root_path = "${path}";
 </script>

+ 2 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/base/list_base.ftl

@@ -22,6 +22,8 @@
 <script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
 <script type="text/javascript" src="${path}/common/lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
 <script type="text/javascript" src="${path}/common/lib/laypage/1.2/laypage.js"></script>
+
+<script type="text/javascript" src="${path}/common/js/common/common.js"></script>
 <script type="text/javascript">
     // 判断
     var root_path = "${path}";

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

@@ -234,8 +234,16 @@
                         <tr>
                             <th>销售</th><th>订单号</th><th>姓名</th><th>电话</th><th>订单金额</th><th>购买产品</th><th>购买日期</th>
                         </tr>
-                        <tr>
-                            <td>爱贝源-微信商城</td><td>1290387806</td><td>何小小</td><td>1882222888</td><td>¥3680</td><td>Watero净水机</td><td>2017-06-06</td>
+                        <tr id="showOrder">
+                            <td>爱贝源-微信商城</td>
+                            <td>1290387806</td>
+                            <td>何小小</td>
+                            <td>1882222888</td>
+                            <td>¥3680</td>
+                            <td>Watero净水机</td>
+                            <td>2017-06-06</td>
+                        </tr>
+                        <tr id="showOrderAddress">
                         </tr>
                     </table>
                 </div>
@@ -602,12 +610,74 @@
 
     }
 
-    /*搜索订单框*/
+    /***
+     * 打开搜索订单框
+     */
     function selectOrder(){
-        layer_show("搜索订单","${path}/admin/customer/select_order","800","350");
+        layer_show("搜索订单","${path}/admin/customer/select_order","1000","350");
+    }
+
+    /**
+     * 显示选择的订单
+     */
+    function setSelectOrder(orderId){
+        var html = '';
+        $.ajax({
+            type: "POST",
+            data: {
+                salesId : orderId
+            },
+            url: "${path}/admin/customer/select_salesOrder",
+            async: false,
+            success: function(data){
+                var address; //地址
+                if (data.returnCode == 200) {
+                    for(var i=0;i<data.returnMsg.salesOrderList.length;i++){
+                        var salesOrder = data.returnMsg.salesOrderList[i];
+
+                        var productsHtml = '';
+                        var salesOrderItem = salesOrder.salesOrderItemList
+                        for(var j=0;j<salesOrderItem.length;j++){
+                            var item = salesOrderItem[j].itemProductName + "*" + salesOrderItem[j].itemNum;
+                            if(j==0){
+                                productsHtml += item
+                            }else{
+                                productsHtml += '<br>'+ item
+                            }
+                        }
+                        var time = formatDate(new Date(salesOrder.salesCreateTime),"yyyy-MM-dd");
+                        html += '' +
+                                ' <td>'+ convertUndefinedToEmpty(salesOrder.companyName) +'-'+ convertUndefinedToEmpty(salesOrder.storeName) +'</td>' +
+                                ' <td>'+ salesOrder.salesId +'</td>' +
+                                ' <td>'+ salesOrder.salesAddressName +'</td>' +
+                                ' <td>'+ salesOrder.salesAddressTel +'</td>' +
+                                ' <td>'+ salesOrder.salesAmount +'</td>' +
+                                ' <td>'+ productsHtml +'</td>' +
+                                ' <td>'+ time +'</td>' +
+                                '';
+                        address = '<td colspan="1">收货地址</td><td colspan="6" class="td-manage text-c" >'+ salesOrder.salesAddressInfo +'&nbsp;&nbsp;&nbsp;&nbsp;<a style="color: #0a6999;text-decoration: underline;" href="javascript:void(0);" title="编辑" onclick="updateAdress()">修改地址</a></td>' ;
+                    }
+                    $("#showOrderAddress").html(address);
+                }else{
+                    html = '';
+                }
+                $("#showOrder").html(html);
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
     }
 
+    /**
+     * 设置地址
+     */
+    function setAdress(){
 
+    }
+    
+    function setPro() {
+        
+    }
 </script>
 <!--/请在上方写此页面业务相关的脚本-->
 </body>

+ 98 - 30
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_list.ftl

@@ -30,35 +30,74 @@
 </nav>
 <div class="page-container">
     <div class="text-c">
-        <form action="${path}/admin/customer/_customer_list" method="post">
-            <button type="button" style="cursor:pointer; float: left;" class="my-btn-search" onclick="toAddCustomer();">增加Customer</button>
-            <#--<select class="my-select" name="produceId" style="height: 36px;width: 150px">
-                <option value ="">所有产品</option>
-                <#if produceList?? &&  (produceList?size > 0) >
-                    <#list produceList as produce>
-                        <option value ="${produce.produceId!}" <#if produceId??><#if produceId ==produce.produceId >selected="selected"</#if></#if>>${produce.produceName!}</option>
+        <form action="${path}/admin/customer/select_customer_list" method="post">
+            <button type="button" style="cursor:pointer; float: left;" class="my-btn-search" onclick="toAddCustomer();">新建客诉</button>
+            <input type="text" class="my-input"  style="width:100px;margin-right: 0px;" value="${customerId!}" placeholder="客户问题" id="customerId" name="customerId">
+            <input type="text" class="my-input"  style="width:100px;margin-right: 0px;" value="${customerId!}" placeholder="客户电话号码" id="customerId" name="customerId">
+            <input type="text" class="my-input"  style="width:100px;margin-right: 0px;" value="${customerId!}" placeholder="请输入问题描述" id="customerId" name="customerId">
+            <select class="my-select" name="customerSource" id="customerSource" style="height: 36px;width: 100px;margin: 0px;padding: 6px 10px 6px 15px;">
+                <option value="">来源</option>
+                <option value="1" <#if customerInfo.customerSourceType??><#if customerInfo.customerSourceType == "1" >selected="selected"</#if></#if>>400电话</option>
+                <option value="2" <#if customerInfo.customerSourceType??><#if customerInfo.customerSourceType == "2" >selected="selected"</#if></#if>>微信公众号</option>
+                <option value="3" <#if customerInfo.customerSourceType??><#if customerInfo.customerSourceType == "3" >selected="selected"</#if></#if>>其他</option>
+            </select>
+            <select class="my-select" name="typeId" id="typeId" style="height: 36px;width: 100px;margin: 0px;padding: 6px 10px 6px 15px;">
+                <option value ="">客诉产品</option>
+                <#if typeList?? &&  (typeList?size > 0) >
+                    <#list typeList as type>
+                        <option value ="${type.typeId!}" <#if customerInfo.typeId??><#if customerInfo.typeId ==type.typeId >selected="selected"</#if></#if>>${type.typeName!}</option>
                     </#list>
                 </#if>
-            </select>-->
-           <#-- <input type="text" class="my-input"  style="width:150px" value="${customerId!}" placeholder="Customer单编号" id="customerId" name="customerId">-->
+            </select>
+            <select class="my-select" name="produceId" style="height: 36px;width: 100px;margin: 0px;padding: 6px 10px 6px 15px;">
+                <option value ="">客诉类型</option>
+                <#if complaintTypeList?? &&  (complaintTypeList?size > 0) >
+                    <#list complaintTypeList as complaint>
+                        <option value ="${complaint.complaintId!}" <#if customerInfo.adminId??><#if customerInfo.adminId ==admin.adminId >selected="selected"</#if></#if>>${complaint.complaintClassName!}</option>
+                    </#list>
+                </#if>
+            <#--<#if typeList?? &&  (typeList?size > 0) >
+                <#list typeList as type>
+                    <option value ="${type.produceId!}" <#if produceId??><#if produceId ==produce.produceId >selected="selected"</#if></#if>>${produce.produceName!}</option>
+                </#list>
+            </#if>-->
+            </select>
+            <select class="my-select" name="customerIsVisit" style="height: 36px;width: 100px;margin: 0px;padding: 6px 10px 6px 15px;">
+                <option value ="">是否需要回访</option>
+                <option value ="1" <#if customerInfo.customerIsVisit??><#if customerInfo.customerIsVisit == "1" >selected="selected"</#if></#if>>不需要回访</option>
+                <option value ="2" <#if customerInfo.customerIsVisit??><#if customerInfo.customerIsVisit == "2" >selected="selected"</#if></#if>>需要回访</option>
+            </select>
+            <select class="my-select" name="adminId" style="height: 36px;width: 100px;margin: 0px;padding: 6px 10px 6px 15px;">
+                <option value ="">跟进客服</option>
+                <#if adminList?? &&  (adminList?size > 0) >
+                    <#list adminList as admin>
+                        <option value ="${admin.adminId!}" <#if customerInfo.adminId??><#if customerInfo.adminId ==admin.adminId >selected="selected"</#if></#if>>${admin.adminName!}</option>
+                    </#list>
+                </#if>
+            </select>
             <button type="submit" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);" id="" name=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>
         </form>
     </div>
 
-    <#--<div class="mt-20">
+    <div class="mt-20">
         <table class="table table-border table-bordered table-bg table-hover table-sort">
         <thead>
         <tr class="text-c">
-            &lt;#&ndash;<th width="50">Customer编号</th>&ndash;&gt;
-            <th width="60">所属产品</th>
-            <th width="100">customer名称</th>
-            <th width="80">硬件版本</th>
-            <th width="80">零件总数量</th>
-            <th width="80">零件总成本(元)</th>
-            <th width="80">零件总重(g)</th>
-            <th width="100">备注</th>
-            <th width="80">最近修改时间</th>
-            <th width="80">添加时间</th>
+            <th width="50">跟进客服</th>
+            <th width="60">姓名</th>
+            <th width="100">电话</th>
+            <th width="80">来源入口</th>
+            <th width="80">客诉产品</th>
+            <th width="80">客诉类型</th>
+            <th width="80">问题类型</th>
+            <th width="100">问题简述</th>
+            <th width="80">销售</th>
+            <th width="80">购买日期</th>
+            <th width="80">区域</th>
+            <th width="80">TDS</th>
+            <th width="80">处理结果</th>
+            <th width="80">需要回访</th>
+            <th width="80">客诉时间</th>
             <th width="80">操作</th>
         </tr>
         </thead>
@@ -66,15 +105,44 @@
             <#if page.dataList?? &&  (page.dataList?size > 0) >
                     <#list page.dataList as customer>
                         <tr class="text-c">
-                            &lt;#&ndash;<td>${customer.customerId!''}</td>&ndash;&gt;
-                            <td>${customer.produceName!''}</td>
+                            <td>${customer.adminName!''}</td>
                             <td>${customer.customerName!''}</td>
-                            <td>${customer.customerVersion!''}</td>
-                            <td>${customer.componentsQuantity!'0'}</td>
-                            <td><#if customer.allComponentsCost?? >${customer.allComponentsCost/100}</#if></td>
-                            <td><#if customer.allComponentsWeight?? >${customer.allComponentsWeight}</#if></td>
-                            <td>${customer.customerRemarks!''}</td>
-                            <td>${(customer.customerUpdateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
+                            <td>${customer.customerTel!''}</td>
+                            <td>
+                                <#if customer.customerSourceType == 1>
+                                    400电话
+                                <#elseif customer.customerSourceType == 2>
+                                    微信公众号
+                                <#elseif customer.customerSourceType == 3>
+                                    ${customer.customerSource!''}
+                                </#if>
+                            </td>
+                            <td>${customer.typeName!''}</td>
+                            <td>${customer.complaintClassName!''}</td>
+                            <td>${customer.smallClassName!''}</td>
+                            <td>${customer.describeTitle!''}</td>
+                            <td>${customer.companyName!''}-${customer.storeName!''}</td>
+                            <td>${(customer.salesTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
+                            <td>${customer.customerArea!''}</td>
+                            <td>进${customer.customerInTDS!'0'}出${customer.customerOutTDS!'0'}</td>
+                            <td>
+                                <#if customer.customerIsSolve == 1>
+                                    已解决
+                                <#elseif customer.customerIsSolve == 2>
+                                    未解决
+                                <#elseif customer.customerIsSolve == 3>
+                                    换新
+                                <#elseif customer.customerIsSolve == 4>
+                                    维修
+                                <#elseif customer.customerIsSolve == 5>
+                                    补发
+                                <#elseif customer.customerIsSolve == 6>
+                                    退货
+                                <#elseif customer.customerIsSolve == 7>
+                                    无理由退货
+                                </#if>
+                            </td>
+                            <td>${customer.customerIsVisit!''}</td>
                             <td>${(customer.customerCreateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
                             <td>
                                 <a style="text-decoration:none" href="javascript:void(0);" title="编辑" onclick="admin_update_customer(${customer.customerId!''})">
@@ -91,10 +159,10 @@
             </#if>
         </tbody>
     </table>
-    </div>-->
+    </div>
 </div>
 <tfoot>
-<#--<#include "/base/page_util.ftl">-->
+<#include "/base/page_util.ftl">
 </tfoot>
 <script>
     /**

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

@@ -11,74 +11,117 @@
 <#include "/base/list_base.ftl">
     <title>客诉列表</title>
     <style>
-        *{padding: 0;margin: 0;}
-        .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
-        /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
-        .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
-        .barcodeImg{margin:10px 0px}
-        .table-bg thead th{background-color: #e2f6ff;}
-        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;}
+        .tit{position: relative;text-align: left;font-size: 16px;padding-left: 10px;}
+        .tit:after{content: '';position: absolute;left: 0;top: 20%;height: 60%;width: 3px;background-color: #32a3d8;}
+        .tit-2{position: relative;text-align: left;font-size: 16px;padding-left: 10px;}
+        .tit-2:after{content: '';position: absolute;left: 0;top: 20%;height: 60%;width: 3px;background-color: #32a3d8;}
+        #province select{margin-right:10px; width:100px;height: 31px;-webkit-appearance:none !important;appearance:none;background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;padding-left:3px;padding-right: 25px;}
+
+        #suggest, #suggest2 {width:200px}
+        .gray {color:gray}
+        .ac_results {background:#fff;border:1px solid #7f9db9;position: absolute;z-index: 10000;display: none}
+        .ac_results li a {white-space: nowrap;text-decoration:none;display:block;color:#05a;padding:1px 3px}
+        .ac_results li {border:1px solid #fff}
+        .ac_over, .ac_results li a:hover {background:#c8e3fc}
+        .ac_results li a span {float:right}
+        .ac_result_tip {border-bottom:1px dashed #666;padding:3px}
+
+        .select-box{background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;}
+        .select-box select{-webkit-appearance:none !important;background-color: transparent; appearance:none;padding-right: 25px;}
+        .dalog-ask{position: absolute;left:60%;top:0;-webkit-transform: translateY(-30%);transform: translateY(-30%);display: none;background-color: #fff;z-index: 10;}
+        .tag{ width:300px; min-height:300px; border:1px solid #32a3d8; position:relative;background-color: #fff;line-height: 1.5;padding: 10px 12px;}
+        .tag em{display:block; border-width:15px; position:absolute; top:30%; left:-30px;border-style:solid dashed dashed; border-color:transparent  #32a3d8 transparent transparent;font-size:0; line-height:0;}
+        .dalog-ask .ask{color: #000;margin: 10px 0 5px 0;}
+        .dalog-ask .answer{color: #666;margin-bottom: 10px;}
+        .dalog-ask .answer:hover{color: #32a3d8;cursor: pointer;}
+        .time-line-list{list-style: none;width: 100%;margin-left: -20px;}
+        .time-line-list>li{position: relative;float: left; text-align: center;width: 100px;overflow: hidden;white-space: nowrap;word-break: break-all;padding: 2px 0;}
+        .time-line-list .number{display: inline-block; padding: 2px; background: #32a3d8;border: 2px solid #fff;box-shadow:0 0 0 1px #32a3d8;width: 20px;height: 20px;color: #fff;line-height: 20px;border-radius: 50%;}
+        .time-line-list>li:before{content:'';position: absolute;height: 1px;width: 30%;right:0;top: 15px; background-color: #32a3d8;}
+        .time-line-list>li:after{content: '';position: absolute;height: 1px;width: 30%;left: 0;top: 15px;background:#32a3d8;}
+        .time-line-list>li:first-child:after,.time-line-list>li:last-child:before{display: none;}
+        .time-line-list .arrow{border-width:7px; position:absolute; left:25%; top:9px;border-style:solid dashed dashed; border-color:transparent  transparent  transparent #32a3d8;font-size:0; line-height:0;}
+        .time-line-list>li:first-child .arrow{display: none;}
+        .table-bg th{background-color: #e2f6ff;}
+        .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        .my-search-input{padding-left: 30px;background: url(${path}/common/images/cm/search.png) 6px center no-repeat;background-size: auto 60%; }
     </style>
 </head>
 <body>
-<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
-    <span class="c-gray en">&gt;</span> 客诉管理
-    <span class="c-gray en">&gt;</span> 客诉列表
-    <a class="btn radius r" style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
-</nav>
 <div class="page-container">
     <div class="text-c">
-        <form action="${path}/admin/customer/_customer_list" method="post">
+        <form action="" method="post">
             <div class="row cl">
                 <div class="formControls col-4 col-sm-4" style="width: 150px;"> <span class="select-box">
-                    <select name="" class="select">
-                        <option value="0">薇薇</option>
-                        <option value="1">薇薇</option>
-                        <option value="11">薇薇</option>
-                        <option value="12">薇薇</option>
-                        <option value="13">薇薇</option>
+                    <select name="" class="select" id="companyId">
+                         <option value="">销售公司</option>
+                        <#if companyInfoList?? &&  (companyInfoList?size > 0) >
+                            <#list companyInfoList as companyInfo>
+                                <option value ="${companyInfo.companyId!""}">${companyInfo.companyName!""}</option>
+                            </#list>
+                        </#if>
                     </select>
                     </span>
                 </div>
                 <div class="formControls col-4 col-sm-4" style="width: 150px;"> <span class="select-box">
-                    <select name="" class="select">
-                        <option value="0">薇薇</option>
-                        <option value="1">薇薇</option>
-                        <option value="11">薇薇</option>
-                        <option value="12">薇薇</option>
-                        <option value="13">薇薇</option>
+                    <select name="" class="select" id="storeId">
                     </select>
                     </span>
                 </div>
-                <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="" placeholder="请输入手机号" id="" name="">
+                <div class="formControls col-4 col-sm-4" style="width: 150px;"> <span class="select-box">
+                    <select name="" class="select" id="storeId">
+                        <option value="">所有类型</option>
+                        <option value="0">取消订单</option>
+                        <option value="1">待支付</option>
+                        <option value="2">已支付</option>
+                        <option value="3">退款申请中</option>
+                        <option value="4">已退款</option>
+                        <option value="5">已发货</option>
+                        <option value="6">申请退货中</option>
+                        <option value="7">退货中</option>
+                        <option value="8">订单退货,订单关闭</option>
+                        <option value="9">换货中</option>
+                        <option value="10">换货完成</option>
+                        <option value="11">申请换货中</option>
+                        <option value="12">已完成</option>
+                        <option value="13">全额付款</option>
+                        <option value="14">定金付款</option>
+                    </select>
+                    </span>
+                </div>
+                <div class="formControls col-2 col-sm-2" style="width: 150px;">
+                    <input type="text" class="input-text" value="" placeholder="订单编号" id="salesId" name="">
+                </div>
+                <div class="formControls col-2 col-sm-2" style="width: 150px;">
+                    <input type="text" class="input-text" value="" placeholder="收货人姓名" id="salesAddressName" name="">
+                </div>
+                <div class="formControls col-2 col-sm-2" style="width: 150px;">
+                    <input type="text" class="input-text" value="" placeholder="收货人电话" id="salesAddressTel" name="">
+                </div>
+                <div class="formControls col-1 col-sm-1">
+                    <button type="button" class="btn btn-primary" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);" id="searchOrder" name=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>
                 </div>
-                <button type="submit" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);" id="" name=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>
             </div>
         </form>
     </div>
 
-    <#--<div class="mt-20">
+    <div class="mt-20">
         <table class="table table-border table-bordered table-bg table-hover table-sort">
         <thead>
         <tr class="text-c">
-            &lt;#&ndash;<th width="50">Customer编号</th>&ndash;&gt;
-            <th width="60">所属产品</th>
-            <th width="100">customer名称</th>
-            <th width="80">硬件版本</th>
-            <th width="80">零件总数量</th>
-            <th width="80">零件总成本(元)</th>
-            <th width="80">零件总重(g)</th>
-            <th width="100">备注</th>
-            <th width="80">最近修改时间</th>
-            <th width="80">添加时间</th>
+            <th width="50">渠道商</th>
+            <th width="60">订单编号</th>
+            <th width="100">收货人姓名</th>
+            <th width="80">收货人电话</th>
+            <th width="80">订单金额</th>
+            <th width="80">购买产品</th>
+            <th width="80">购买日期</th>
+            <th width="100">收货地址</th>
             <th width="80">操作</th>
         </tr>
         </thead>
-        <tbody>
-            <#if page.dataList?? &&  (page.dataList?size > 0) >
+        <tbody id="orderAll">
+            <#--<#if page.dataList?? &&  (page.dataList?size > 0) >
                     <#list page.dataList as customer>
                         <tr class="text-c">
                             &lt;#&ndash;<td>${customer.customerId!''}</td>&ndash;&gt;
@@ -91,50 +134,127 @@
                             <td>${customer.customerRemarks!''}</td>
                             <td>${(customer.customerUpdateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
                             <td>${(customer.customerCreateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
-                            <td>
-                                <a style="text-decoration:none" href="javascript:void(0);" title="编辑" onclick="admin_update_customer(${customer.customerId!''})">
-                                    <i class="Hui-iconfont">&#xe6df;</i>
-                                </a>&nbsp;
-                                <a style="text-decoration:none" href="javascript:void(0);" title="查看customer单详情" onclick="admin_details_customer(${customer.customerId!''})">
-                                    <i class="Hui-iconfont">&#xe665;</i>
-                                </a>
-                            </td>
                         </tr>
                     </#list>
             <#else>
                 <tr><td colspan="10" class="td-manage text-c" >暂时没有Customer,请添加!</td></tr>
-            </#if>
+            </#if>-->
         </tbody>
     </table>
-    </div>-->
+    </div>
 </div>
 <tfoot>
 <#--<#include "/base/page_util.ftl">-->
 </tfoot>
+
 <script>
-    /**
-     * 跳转到添加customer页面
-     */
-    function toAddCustomer(){
-        window.location.href= "${path}/admin/customer/to_add_customer";
+
+    $(function () {
+        /*选择店铺*/
+        selectStoreInfo();
+
+        /*搜索*/
+        $(document).on('click', '#searchOrder', function() {
+            searchOrder();
+        });
+    })
+
+    /*获取销售公司下的所有店铺*/
+    function selectStoreInfo() {
+        var companyId = $("#companyId").val();
+        var html = '<option value="">店铺</option>';
+        $.ajax({
+            type: "POST",
+            data: {
+                companyId : companyId
+            },
+            url: "${path}/admin/customer/select_storeInfo",
+            async: false,
+            success: function(data){
+                var id;
+                if (data.returnCode == 200) {
+                    for(var i=0;i<data.returnMsg.storeInfoList.length;i++){
+                        var storeInfo = data.returnMsg.storeInfoList[i];
+                        html += '<option value="'+ storeInfo.storeId +'">'+ storeInfo.storeName +'</option>';
+                    }
+                }else{
+                    html = '';
+                }
+                $("#storeId").html(html);
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
     }
 
     /**
-     *跳转到编辑页面
-     * @param employee
+     * 搜索订单
      */
-    function admin_update_customer(customerId) {
-        window.location.href= "${path}/admin/customer/to_update_customer?customerId="+customerId;
+    function searchOrder(){
+        var salesCompanyId = convertUndefinedToEmpty($("#companyId").val());
+        var salesStoreId = convertUndefinedToEmpty($("#storeId").val());
+        var salesStatus = convertUndefinedToEmpty($("#salesStatus").val());
+        var salesId = convertUndefinedToEmpty($("#salesId").val());
+        var salesAddressName =convertUndefinedToEmpty($("#salesAddressName").val());
+        var salesAddressTel = convertUndefinedToEmpty($("#salesAddressTel").val());
+        var html = "";
+        $.ajax({
+            type: "POST",
+            data: {
+                salesCompanyId : salesCompanyId,
+                salesStoreId : salesStoreId,
+                salesStatus : salesStatus,
+                salesId : salesId,
+                salesAddressName : salesAddressName,
+                salesAddressTel : salesAddressTel
+            },
+            url: "${path}/admin/customer/select_salesOrder",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    for(var i=0;i<data.returnMsg.salesOrderList.length;i++){
+                        var salesOrder = data.returnMsg.salesOrderList[i];
+
+                        var productsHtml = '';
+                        var salesOrderItem = salesOrder.salesOrderItemList
+                        for(var j=0;j<salesOrderItem.length;j++){
+                            var item = salesOrderItem[j].itemProductName + "*" + salesOrderItem[j].itemNum;
+                            if(j==0){
+                                productsHtml += item
+                            }else{
+                                productsHtml += '<br>'+ item
+                            }
+                        }
+                        var time = formatDate(new Date(salesOrder.salesCreateTime),"yyyy-MM-dd");
+                        html += '<tr class="text-c">' +
+                                ' <td>'+ convertUndefinedToEmpty(salesOrder.companyName) +'-'+ convertUndefinedToEmpty(salesOrder.storeName) +'</td>' +
+                                ' <td>'+ salesOrder.salesId +'</td>' +
+                                ' <td>'+ salesOrder.salesAddressName +'</td>' +
+                                ' <td>'+ salesOrder.salesAddressTel +'</td>' +
+                                ' <td>'+ salesOrder.salesAmount +'</td>' +
+                                ' <td>'+ productsHtml +'</td>' +
+                                ' <td>'+ time +'</td>' +
+                                ' <td>'+ salesOrder.salesAddressInfo +'</td>' +
+                                ' <td><a style="text-decoration:none" href="javascript:void(0);" title="选择订单" onclick="selectOrderInfo('+ salesOrder.salesId +')" >选择订单</a></td>' +
+                                ' </tr>';
+                    }
+                }else{
+                    html = '';
+                }
+                $("#orderAll").html(html);
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
     }
 
     /**
-     *跳转到详情页面
-     * @param employee
+     * 选择订单,返回订单内容到父级
      */
-    function admin_details_customer(customerId) {
-        window.location.href= "${path}/admin/customer/to_details_customer?customerId="+customerId;
+    function selectOrderInfo(orderId) {
+        parent.setSelectOrder(orderId);
+        parent.layer.close(parent.layer.getFrameIndex(window.name));
     }
-
 </script>
 </body>
 </html>

+ 10 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/login.ftl

@@ -16,6 +16,9 @@
     <link href="${path}/common/lib/Hui-iconfont/1.0.8/iconfont.css" rel="stylesheet" type="text/css" />
     <!--[if IE 6]>
     <script type="text/javascript" src="${path}/common/lib/DD_belatedPNG_0.0.8a-min.js" ></script>
+
+    <script type="text/javascript" src="${path}/common/js/common/common.js"></script>
+
     <script>DD_belatedPNG.fix('*');</script>
     <![endif]-->
     <title>售后实时跟踪系统 - RST</title>
@@ -66,11 +69,18 @@
         </form>
     </div>
 </div>
+<script type="text/javascript" src="${path}/common/js/common/common.js"></script>
 <script type="text/javascript" src="${path}/common/lib/jquery/1.9.1/jquery.min.js"></script>
 <script type="text/javascript" src="${path}/common/static/h-ui/js/H-ui.js"></script>
 <script type="text/javascript" src="${path}/common/lib/layer/2.4/layer.js"></script>
 <script type="text/javascript" src="${path}/common/lib/md5/md5.js"></script>
 <script>
+
+    /*实时监听文本框-- 员工编号*/
+    document.getElementById("login_code").addEventListener("input", function(){
+        $("#login_code").val(Trim(this.value));
+    });
+
     // 密码
     var pwd = null;
     // 换一张验证码实现

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/addRenovationMachine.ftl

@@ -79,8 +79,8 @@
             </label>
         </div>
 
-        <div class="input-box"><span class="input-dic spanhidth">拉线:</span><input class="my-input" type="text" style="width: 76%;"  name="machineLine" id="machineLine" /> </div>
-        <div class="input-box"><span class="input-dic spanhidth">机器数量:</span><input class="my-input" type="text" style="width: 76%;"  name="number" id="number" placeholder="每次最少生成一个机器"/> </div>
+        <div class="input-box"><span class="input-dic spanhidth">拉线:</span><input class="my-input" type="text" style="width: 76%;"  name="machineLine" id="machineLine" value="A1"/> </div>
+        <div class="input-box"><span class="input-dic spanhidth">机器数量:</span><input class="my-input" type="text" style="width: 76%;"  name="number" id="number" value="10" placeholder="每次最少生成一个机器"/> </div>
 
         <div class="input-box">
             <span class="input-dic spanhidth"></span>

+ 10 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl

@@ -45,9 +45,10 @@
                     <thead>
                     <tr class="text-c">
                         <th width="1"><input name='checkbox' type='checkbox' value='' id="all" ></th>
-                        <th width="10">设备尾号</th>
-                        <th width="10">产品条码</th>
-                        <th width="6">机器类型</th>
+                        <th width="25">设备尾号</th>
+                        <th width="40">产品条码</th>
+                        <th width="25">所属产品</th>
+                        <th width="10">生产时间</th>
                         <th width="20">操作</th>
                     </tr>
                     </thead>
@@ -57,6 +58,7 @@
                         <#else >
                             <#assign machineList = page.dataList />
                         </#if>
+                        <#if machineList?? &&  (machineList?size > 0) >
                         <#list machineList as list>
                             <tr class="text-c" id="${list.machineBarcode }">
                                 <td width="2">
@@ -73,15 +75,19 @@
                                         冲奶机
                                     </#if>
                                 </td>
+                                <td>${(list.machineCreateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
                                 <!-- 遍历操作 -->
                                 <td class="td-manage text-c">
                                     <#if machineIsPrint == '1'>
-                                    <a onclick="updatePrint('${list.machineBarcode}',true);" title="修改为已打印" href="javascript:;"  class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe6a7;</i></a>
+                                        <a onclick="updatePrint('${list.machineBarcode}',true);" title="修改为已打印" href="javascript:;"  class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe6a7;</i></a>
                                     </#if>
                                     <a onclick="barCodePrint('${list.machineBarcode }'+'${list.machineQrcode }'+'${list.machineProduceType }','${list.machineId }');" title="打印" href="javascript:;"  class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe652;</i></a>
                                 </td>
                             </tr>
                         </#list>
+                        <#else>
+                        <tr><td colspan="5" class="td-manage text-c" >暂时没有机器,请添加!</td></tr>
+                        </#if>
                     </tbody>
                 </table>
 

+ 11 - 11
watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/save_produce.ftl

@@ -38,8 +38,8 @@
     <form class="form form-horizontal" id="form-admin-addProduce">
         <div style="padding: 10px;width: 600px;margin: 0 auto;" class="">
             <div class="my-title">产品信息</div>
-            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" id="produceName" type="text" value="" placeholder="请输入产品名称,2-20位中文、英文、数字组合" required   maxlength="20" minlength="2"/> </div>
-            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" id="produceRemake" value="" placeholder="请输入产品描述,2-100位中文、英文、数字组合" required  maxlength="100" minlength="2"/> </div>
+            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" id="produceName" type="text" value="" placeholder="请输入产品名称,2-20位字符" required   maxlength="20" minlength="2"/> </div>
+            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" id="produceRemake" value="" placeholder="请输入产品描述,2-100位字符" required  maxlength="100" minlength="2"/> </div>
 
             <div class="input-box "><span class="input-dic">产品特性</span>
                 <select class="" style="width: 290px;" id="produceFeature" name="produceFeature">
@@ -49,7 +49,7 @@
                     <option value="D">其他(D)</option>
                 </select>
             </div>
-            <div class="input-box"><span class="input-dic">产品型号</span><input class="my-input" style="width: 120px;" type="text" name="producePattern" id="producePattern" value="" placeholder="2位英文、数字组合" required  maxlength="2" minlength="2"/>-<input class="my-input" style="width: 120px;" type="text" name="produceModel" id="produceModel" value="" placeholder="2位英文、数字组合" required  maxlength="2" minlength="2"/>  </div>
+            <div class="input-box"><span class="input-dic">产品型号</span><input class="my-input" style="width: 120px;" type="text" name="producePattern" id="producePattern" value="" placeholder="2-3位英文、数字组合" required  maxlength="3" minlength="2"/>-<input class="my-input" style="width: 120px;" type="text" name="produceModel" id="produceModel" value="" placeholder="2-3位英文、数字组合" required  maxlength="3" minlength="2"/>  </div>
 
             <div class="input-box"><span class="input-dic">产品类型</span>
                 <label><input type="radio" name="produceType" value="1" checked>净水机</label>
@@ -114,16 +114,16 @@
         $("#form-admin-addProduce").submit(function(){
 
             var produceName = $("#produceName").val();
-            if(!(cnen_name.test(produceName))){
-                layer.msg('产品名称输入格式不正确', {icon: 5, time: 1000});
-                return false;
-            }
+//            if(!(cnen_name.test(produceName))){
+//                layer.msg('产品名称输入格式不正确', {icon: 5, time: 1000});
+//                return false;
+//            }
 
             var produceRemake = $("#produceRemake").val();
-            if(!(cnen_name.test(produceRemake))){
-                layer.msg('产品描述输入格式不正确', {icon: 5, time: 1000});
-                return false;
-            }
+//            if(!(cnen_name.test(produceRemake))){
+//                layer.msg('产品描述输入格式不正确', {icon: 5, time: 1000});
+//                return false;
+//            }
 
             var producePattern = $("#producePattern").val();
             if(!(en_name.test(producePattern))){

+ 12 - 12
watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/update_produce.ftl

@@ -39,8 +39,8 @@
         <div style="padding: 10px;width: 600px;margin: 0 auto;" class="">
             <div class="my-title">产品信息</div>
             <input type="hidden" name="produceId" value="${produce.produceId!}">
-            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" type="text" value="${produce.produceName!}" placeholder="请输入产品名称,2-20位中文、英文、数字组合" maxlength="20"  required /> </div>
-            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" value="${produce.produceRemake!}" placeholder="请输入产品描述,2-100位中文、英文、数字组合" maxlength="100"  required /> </div>
+            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" type="text" value="${produce.produceName!}" placeholder="请输入产品名称,2-20位字符" maxlength="20"  required /> </div>
+            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" value="${produce.produceRemake!}" placeholder="请输入产品描述,2-100位字符" maxlength="100"  required /> </div>
 
             <div class="input-box "><span class="input-dic">产品特性</span>
                 <select class="" style="width: 290px;" id="produceFeature" name="produceFeature">
@@ -50,8 +50,8 @@
                     <option value ="D" <#if produce.produceFeature??><#if produce.produceFeature == 'D'>selected="selected"</#if></#if>>其他(D)</option>
                 </select>
             </div>
-            <div class="input-box"><span class="input-dic">产品型号</span><input class="my-input" style="width: 120px;" type="text" name="producePattern" id="producePattern" placeholder="2位英文、数字组合" value="${produce.producePattern!}" placeholder="" required  maxlength="2" minlength="2"/>-
-                <input class="my-input" style="width: 120px;" type="text" name="produceModel" id="produceModel" value="${produce.produceModel!}" placeholder="2位英文、数字组合" required  maxlength="2" minlength="2"/>  </div>
+            <div class="input-box"><span class="input-dic">产品型号</span><input class="my-input" style="width: 120px;" type="text" name="producePattern" id="producePattern" placeholder="2-3位英文、数字组合" value="${produce.producePattern!}" placeholder="" required  maxlength="3" minlength="2"/>-
+                <input class="my-input" style="width: 120px;" type="text" name="produceModel" id="produceModel" value="${produce.produceModel!}" placeholder="2-3位英文、数字组合" required  maxlength="3" minlength="2"/>  </div>
 
             <div class="input-box"><span class="input-dic">产品类型</span>
                 <label><input type="radio" name="produceType" value="1" <#if produce.produceType == 1>checked</#if>>净水机</label>
@@ -124,16 +124,16 @@
         $("#form-admin-addProduce").submit(function(){
 
             var produceName = $("#produceName").val();
-            if(!(cnen_name.test(produceName))){
-                layer.msg('产品名称输入格式不正确', {icon: 5, time: 1000});
-                return false;
-            }
+//            if(!(cnen_name.test(produceName))){
+//                layer.msg('产品名称输入格式不正确', {icon: 5, time: 1000});
+//                return false;
+//            }
 
             var produceRemake = $("#produceRemake").val();
-            if(!(cnen_name.test(produceRemake))){
-                layer.msg('产品描述输入格式不正确', {icon: 5, time: 1000});
-                return false;
-            }
+//            if(!(cnen_name.test(produceRemake))){
+//                layer.msg('产品描述输入格式不正确', {icon: 5, time: 1000});
+//                return false;
+//            }
 
             var producePattern = $("#producePattern").val();
             if(!(en_name.test(producePattern))){

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

@@ -0,0 +1,60 @@
+/**
+ * 格式化日期
+ * @param date
+ * @param format
+ * @returns {*|XML|string|void}
+ */
+var formatDate = function(date, format) {
+    if (!date) return;
+    if (!format) format = "yyyy-MM-dd";
+    switch(typeof date) {
+        case "string":
+            date = new Date(date.replace(/-/, "/"));
+            break;
+        case "number":
+            date = new Date(date);
+            break;
+    }
+    if (!date instanceof Date) return;
+    var dict = {
+        "yyyy": date.getFullYear(),
+        "M": date.getMonth() + 1,
+        "d": date.getDate(),
+        "H": date.getHours(),
+        "m": date.getMinutes(),
+        "s": date.getSeconds(),
+        "MM": ("" + (date.getMonth() + 101)).substr(1),
+        "dd": ("" + (date.getDate() + 100)).substr(1),
+        "HH": ("" + (date.getHours() + 100)).substr(1),
+        "mm": ("" + (date.getMinutes() + 100)).substr(1),
+        "ss": ("" + (date.getSeconds() + 100)).substr(1)
+    };
+    return format.replace(/(yyyy|MM?|dd?|HH?|ss?|mm?)/g, function() {
+        return dict[arguments[0]];
+    });
+};
+
+
+/**
+ * 该方法用于将Undefined转换为空值
+ *
+ * @param val
+ */
+function convertUndefinedToEmpty(val) {
+    if (undefined == val || null == val||typeof val == undefined || typeof val == 'undefined'|| 'undefined' == val) {
+        val = "";
+    }
+    return val;
+}
+
+/**
+ * 去除空格
+ * @param str
+ * @constructor
+ */
+function Trim(str)
+{
+   // return str.replace(/(^\s*)|(\s*$)/g, "");
+    return str.replace(/\s+/g, "");
+}
+