ソースを参照

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

xian 6 年 前
コミット
aebd9e63a0
58 ファイル変更2118 行追加785 行削除
  1. 5 5
      pom.xml
  2. 24 0
      watero-common-web/pom.xml
  3. 1 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/BackGoods.java
  4. 1 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ClosedFitting.java
  5. 40 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CmRelation.java
  6. 1 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java
  7. 46 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java
  8. 2 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerStatisticalInfo.java
  9. 74 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/DownloadProgressInfo.java
  10. 1 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/FittingsInfo.java
  11. 1 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/NoreasonBack.java
  12. 1 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/Reissue.java
  13. 1 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/Renewed.java
  14. 1 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/Repair.java
  15. 37 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/order/SmsSignatureInfo.java
  16. 47 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/order/SmsTemplateInfo.java
  17. 30 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java
  18. 10 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java
  19. 12 3
      watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/addressMapper.xml
  20. 30 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  21. 11 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java
  22. 21 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/CustomerInfoMapper.java
  23. 10 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java
  24. 159 47
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml
  25. 26 3
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  26. 282 84
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  27. 11 3
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderController.java
  28. 104 10
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java
  29. 1 1
      watero-rst-web/src/main/java/com/iamberry/rst/utils/StitchAttrUtil.java
  30. 4 0
      watero-rst-web/src/main/resources/watero-rst-orm.xml
  31. 29 8
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  32. 237 229
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_detail.ftl
  33. 86 41
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_list.ftl
  34. 241 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/download_customer.ftl
  35. 74 10
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_customer.ftl
  36. 114 34
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_relation.ftl
  37. 23 12
      watero-rst-web/src/main/webapp/WEB-INF/views/home/pc_index.ftl
  38. 23 15
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl
  39. 2 1
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/manual_delivery.ftl
  40. 5 1
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_detail.ftl
  41. 6 1
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_list.ftl
  42. 186 0
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/send_sms.ftl
  43. BIN
      watero-rst-web/src/main/webapp/common/images/cm/select-1.png
  44. BIN
      watero-rst-web/src/main/webapp/common/images/index/admin-login.png
  45. BIN
      watero-rst-web/src/main/webapp/common/images/pts/select-1.png
  46. BIN
      watero-rst-web/src/main/webapp/common/images/pts/select-11.png
  47. BIN
      watero-rst-web/src/main/webapp/common/images/pts/select-dw.png
  48. BIN
      watero-rst-web/src/main/webapp/common/images/pts/select-up.png
  49. BIN
      watero-rst-web/src/main/webapp/common/images/select-1.png
  50. 3 4
      watero-rst-web/src/main/webapp/common/js/common/UnlimitedLevelContact.js
  51. 51 255
      watero-rst-web/src/main/webapp/common/js/customer/customer.js
  52. 32 5
      watero-rst-web/src/main/webapp/common/js/salesOrder/salesOrder.js
  53. 10 7
      watero-rst-web/src/main/webapp/common/static/h-ui.admin/css/H-ui.admin.css
  54. BIN
      watero-rst-web/src/main/webapp/common/static/h-ui.admin/images/acrossTab/acrossTab-2.png
  55. BIN
      watero-rst-web/src/main/webapp/common/static/h-ui.admin/skin/default/icon_arrow.png
  56. 1 1
      watero-rst-web/src/main/webapp/common/static/h-ui.admin/skin/default/skin.css
  57. 1 1
      watero-rst-web/src/main/webapp/common/static/h-ui/css/H-ui.min.css
  58. BIN
      watero-rst-web/src/main/webapp/common/static/h-ui/images/acrossTab/acrossTab-close.png

+ 5 - 5
pom.xml

@@ -575,15 +575,15 @@
 	<!-- 配置 -->
 	<profiles>
 		<profile>
-			<id>jdk-1.8</id>
+			<id>jdk-1.7</id>
 			<activation>
 				<activeByDefault>true</activeByDefault>
-				<jdk>1.8</jdk>
+				<jdk>1.7</jdk>
 			</activation>
 			<properties>
-				<maven.compiler.source>1.8</maven.compiler.source>
-				<maven.compiler.target>1.8</maven.compiler.target>
-				<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
+				<maven.compiler.source>1.7</maven.compiler.source>
+				<maven.compiler.target>1.7</maven.compiler.target>
+				<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
 			</properties>
 		</profile>
 		<profile>

+ 24 - 0
watero-common-web/pom.xml

@@ -13,4 +13,28 @@
 	<groupId>com.iamberry</groupId>
 	<artifactId>watero-common-web</artifactId>
 	<version>1.0.0</version>
+	<build>
+		<resources>
+			<resource>
+				<directory>src/main/java</directory>
+				<includes>
+					<include>**/*.properties</include>
+					<include>**/*.xml</include>
+				</includes>
+				<filtering>false</filtering>
+			</resource>
+		</resources>
+		<finalName>watero-rst-service</finalName>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.3</version>
+				<configuration>
+					<source>1.7</source>
+					<target>1.7</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
 </project>

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

@@ -12,6 +12,7 @@ import java.util.List;
 /**
  * 退货
  */
+@Deprecated
 public class BackGoods  implements Serializable {
     private static final long serialVersionUID = -6844954322262497132L;
     private Integer backGoodsId;

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

@@ -2,6 +2,7 @@ package com.iamberry.rst.core.cm;
 
 import java.io.Serializable;
 
+@Deprecated
 public class ClosedFitting  implements Serializable {
     private static final long serialVersionUID = 8778123739128123226L;
     private Integer closedFittingId;

+ 40 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CmRelation.java

@@ -96,6 +96,14 @@ public class CmRelation implements  Serializable{
     /*订单集合*/
     private List<SalesOrder> salesOrderList = new ArrayList<>();
 
+
+    private Integer procMethodIsBack; //处理方式名称1:需要寄回 2:不需要寄回
+    private Integer procMethodIsSend; //处理方式名称1:需要寄出 2:不需要寄出
+
+    private String procMethodName; //处理方式名称
+    private String procTypeName; //处理方式类型名称
+
+
     public Integer getRelationId(){
         return relationId;
     }
@@ -383,4 +391,36 @@ public class CmRelation implements  Serializable{
     public void setSalesOrderList(List<SalesOrder> salesOrderList) {
         this.salesOrderList = salesOrderList;
     }
+
+    public Integer getProcMethodIsBack() {
+        return procMethodIsBack;
+    }
+
+    public void setProcMethodIsBack(Integer procMethodIsBack) {
+        this.procMethodIsBack = procMethodIsBack;
+    }
+
+    public Integer getProcMethodIsSend() {
+        return procMethodIsSend;
+    }
+
+    public void setProcMethodIsSend(Integer procMethodIsSend) {
+        this.procMethodIsSend = procMethodIsSend;
+    }
+
+    public String getProcMethodName() {
+        return procMethodName;
+    }
+
+    public void setProcMethodName(String procMethodName) {
+        this.procMethodName = procMethodName;
+    }
+
+    public String getProcTypeName() {
+        return procTypeName;
+    }
+
+    public void setProcTypeName(String procTypeName) {
+        this.procTypeName = procTypeName;
+    }
 }

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

@@ -10,6 +10,7 @@ import java.util.List;
 /**
  * wxm 客诉处理公共类
  */
+@Deprecated
 public class CustomerCommon implements Serializable {
 
     private static final long serialVersionUID = -4259088710780733418L;

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

@@ -160,11 +160,17 @@ public class CustomerInfo  implements Serializable {
     private Integer procMethodIsSend; //处理方式名称1:需要寄出 2:不需要寄出
 
 
+    //以下为TDS的信息区域值
     private String customerProvinceId;    //省
     private String customerCityId;    //市
     private String customerDistrictId;    //区
+    private String customerProvinceName;    //省
+    private String customerCityName;    //市
+    private String customerDistrictName;    //区
+    private String customerSendAddress;    //详细地址
     private List<PostageInfo> postageInfoList;    //邮费集合
     private List<SendbackInfo> sendbackInfoList;    //寄回信息集合
+    private List<SalesOrder> salesOrderList;    //寄出产品订单集合
 
     public void setComplaintDetectList(List<ComplaintDetectInfo> complaintDetectList) {
         this.complaintDetectList = complaintDetectList;
@@ -835,4 +841,44 @@ public class CustomerInfo  implements Serializable {
     public void setSendbackInfoList(List<SendbackInfo> sendbackInfoList) {
         this.sendbackInfoList = sendbackInfoList;
     }
+
+    public List<SalesOrder> getSalesOrderList() {
+        return salesOrderList;
+    }
+
+    public void setSalesOrderList(List<SalesOrder> salesOrderList) {
+        this.salesOrderList = salesOrderList;
+    }
+
+    public String getCustomerSendAddress() {
+        return customerSendAddress;
+    }
+
+    public void setCustomerSendAddress(String customerSendAddress) {
+        this.customerSendAddress = customerSendAddress;
+    }
+
+    public String getCustomerProvinceName() {
+        return customerProvinceName;
+    }
+
+    public void setCustomerProvinceName(String customerProvinceName) {
+        this.customerProvinceName = customerProvinceName;
+    }
+
+    public String getCustomerCityName() {
+        return customerCityName;
+    }
+
+    public void setCustomerCityName(String customerCityName) {
+        this.customerCityName = customerCityName;
+    }
+
+    public String getCustomerDistrictName() {
+        return customerDistrictName;
+    }
+
+    public void setCustomerDistrictName(String customerDistrictName) {
+        this.customerDistrictName = customerDistrictName;
+    }
 }

+ 2 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerStatisticalInfo.java

@@ -15,6 +15,8 @@ public class CustomerStatisticalInfo implements Serializable {
     private static final long serialVersionUID = 7150678136334412114L;
     private Integer customerId;//客诉id
     private Integer orderId;//订单id
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date createTime;//创建日期
     private String customerName;//姓名
     private String customerTel;//联系电话

+ 74 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/DownloadProgressInfo.java

@@ -0,0 +1,74 @@
+package com.iamberry.rst.core.cm;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Created by Administrator on 2019/4/1.
+ */
+public class DownloadProgressInfo implements Serializable {
+    private static final long serialVersionUID = -532651953639505413L;
+    private Integer downloadId;
+    private Integer downloadAdminId;
+    private String downloadProgress;
+    private Integer downloadStatus;
+    private String downloadUrl;
+    private String downloadDate;
+    private Date downloadCreateTime;
+
+    public Integer getDownloadId() {
+        return downloadId;
+    }
+
+    public void setDownloadId(Integer downloadId) {
+        this.downloadId = downloadId;
+    }
+
+    public Integer getDownloadAdminId() {
+        return downloadAdminId;
+    }
+
+    public void setDownloadAdminId(Integer downloadAdminId) {
+        this.downloadAdminId = downloadAdminId;
+    }
+
+    public String getDownloadProgress() {
+        return downloadProgress;
+    }
+
+    public void setDownloadProgress(String downloadProgress) {
+        this.downloadProgress = downloadProgress;
+    }
+
+    public Integer getDownloadStatus() {
+        return downloadStatus;
+    }
+
+    public void setDownloadStatus(Integer downloadStatus) {
+        this.downloadStatus = downloadStatus;
+    }
+
+    public String getDownloadUrl() {
+        return downloadUrl;
+    }
+
+    public void setDownloadUrl(String downloadUrl) {
+        this.downloadUrl = downloadUrl;
+    }
+
+    public String getDownloadDate() {
+        return downloadDate;
+    }
+
+    public void setDownloadDate(String downloadDate) {
+        this.downloadDate = downloadDate;
+    }
+
+    public Date getDownloadCreateTime() {
+        return downloadCreateTime;
+    }
+
+    public void setDownloadCreateTime(Date downloadCreateTime) {
+        this.downloadCreateTime = downloadCreateTime;
+    }
+}

+ 1 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/FittingsInfo.java

@@ -7,6 +7,7 @@ import java.util.Date;
  * 客诉配件实体类
  * Created by liuzhiwei on 2017/10/31.
  */
+@Deprecated
 public class FittingsInfo implements Serializable {
 
     private static final long serialVersionUID = -1370229485119071783L;

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

@@ -12,6 +12,7 @@ import java.util.List;
 /**
  * 无理由退货
  */
+@Deprecated
 public class NoreasonBack  implements Serializable {
     private static final long serialVersionUID = -8771772978569981906L;
     private Integer noreasonBackId;

+ 1 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/Reissue.java

@@ -11,6 +11,7 @@ import java.util.List;
 /**
  * 售后补发
  */
+@Deprecated
 public class Reissue  implements Serializable {
 
     private static final long serialVersionUID = 6552482836665728058L;

+ 1 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/Renewed.java

@@ -12,6 +12,7 @@ import java.util.List;
 /**
  * 售后换新主键
  */
+@Deprecated
 public class Renewed  implements Serializable {
 
     private static final long serialVersionUID = -4562997728567506919L;

+ 1 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/Repair.java

@@ -12,6 +12,7 @@ import java.util.List;
 /**
  * 售后维修表
  */
+@Deprecated
 public class Repair implements Serializable {
 
     private static final long serialVersionUID = 6499911867888249040L;

+ 37 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/SmsSignatureInfo.java

@@ -0,0 +1,37 @@
+package com.iamberry.rst.core.order;
+
+import java.io.Serializable;
+
+/**
+ * Created by Administrator on 2019/3/21.
+ */
+public class SmsSignatureInfo implements Serializable {
+    private static final long serialVersionUID = -1791768785944107991L;
+    private Integer smsSignatureId;
+    private String smsSignatureInfo;
+    private String smsSignatureDesc;
+
+    public Integer getSmsSignatureId() {
+        return smsSignatureId;
+    }
+
+    public void setSmsSignatureId(Integer smsSignatureId) {
+        this.smsSignatureId = smsSignatureId;
+    }
+
+    public String getSmsSignatureInfo() {
+        return smsSignatureInfo;
+    }
+
+    public void setSmsSignatureInfo(String smsSignatureInfo) {
+        this.smsSignatureInfo = smsSignatureInfo;
+    }
+
+    public String getSmsSignatureDesc() {
+        return smsSignatureDesc;
+    }
+
+    public void setSmsSignatureDesc(String smsSignatureDesc) {
+        this.smsSignatureDesc = smsSignatureDesc;
+    }
+}

+ 47 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/SmsTemplateInfo.java

@@ -0,0 +1,47 @@
+package com.iamberry.rst.core.order;
+
+import java.io.Serializable;
+
+/**
+ * 短信模板表
+ * Created by Administrator on 2019/3/21.
+ */
+public class SmsTemplateInfo implements Serializable{
+    private static final long serialVersionUID = 2475013638981240118L;
+    private Integer smsTemplateId;
+    private Integer smsSignatureId;
+    private String smsTemplateInfo;
+    private String smsTemplateDesc;
+
+    public Integer getSmsTemplateId() {
+        return smsTemplateId;
+    }
+
+    public void setSmsTemplateId(Integer smsTemplateId) {
+        this.smsTemplateId = smsTemplateId;
+    }
+
+    public Integer getSmsSignatureId() {
+        return smsSignatureId;
+    }
+
+    public void setSmsSignatureId(Integer smsSignatureId) {
+        this.smsSignatureId = smsSignatureId;
+    }
+
+    public String getSmsTemplateInfo() {
+        return smsTemplateInfo;
+    }
+
+    public void setSmsTemplateInfo(String smsTemplateInfo) {
+        this.smsTemplateInfo = smsTemplateInfo;
+    }
+
+    public String getSmsTemplateDesc() {
+        return smsTemplateDesc;
+    }
+
+    public void setSmsTemplateDesc(String smsTemplateDesc) {
+        this.smsTemplateDesc = smsTemplateDesc;
+    }
+}

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

@@ -56,6 +56,13 @@ public interface CustomerService {
     PagedResult<CustomerInfo> listCustomer(int pageNO, int pageSize, CustomerInfo customerInfo, boolean isTotalNum);
 
     /**
+     * 查询客诉列表
+     * @param customerInfo
+     * @return
+     */
+    List<CustomerInfo> listCustomer(CustomerInfo customerInfo);
+
+    /**
      * 查询客诉基本信息
      * @param customerInfo
      * @return
@@ -166,7 +173,7 @@ public interface CustomerService {
      * 导出客诉信息到excel
      * @return
      */
-    List<CustomerStatisticalInfo> listStatisticalCustomer();
+    List<CustomerStatisticalInfo> listStatisticalCustomer(CustomerInfo customerInfo);
 
     /**
      * 总销量
@@ -365,4 +372,26 @@ public interface CustomerService {
      * 修改订单项所有退货数量为0
      */
     Integer updateItemreturnNumByorderid(Integer itemOrderId);
+
+
+    /**
+     * 查询下载进度列表
+     * @param downloadProgressInfo
+     * @return
+     */
+    List<DownloadProgressInfo> listDownloadProgressInfo(DownloadProgressInfo downloadProgressInfo);
+
+    /**
+     * 修改下载进度列表
+     * @param downloadProgressInfo
+     * @return
+     */
+    Integer updateDownloadProgressInfo(DownloadProgressInfo downloadProgressInfo);
+
+    /**
+     * 添加下载进度列表
+     * @param downloadProgressInfo
+     * @return
+     */
+    Integer addDownloadProgressInfo(DownloadProgressInfo downloadProgressInfo);
 }

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

@@ -437,4 +437,14 @@ public interface SalesOrderService {
     Integer updateOrderItemReturnNum(SalesOrderItem salesOrderItem);
 
 
+
+    /**
+     * 查询售后短信签名
+     */
+    List<SmsSignatureInfo> listSmsSignatureInfo(SmsSignatureInfo smsSignatureInfo);
+
+    /**
+     * 查询售后短信模板
+     */
+    List<SmsTemplateInfo> listSmsTemplateInfo(SmsTemplateInfo smsTemplateInfo);
 }

+ 12 - 3
watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/addressMapper.xml

@@ -13,6 +13,9 @@
       <if test="province !=null and province !=''">
             AND province like CONCAT('%',#{province},'%')
       </if>
+      <if test="provinceId !=null">
+            AND province_id = #{provinceId}
+      </if>
     </where>
   </select>
 
@@ -30,6 +33,9 @@
       <if test="city !=null and city !=''">
         AND city like CONCAT('%',#{city},'%')
       </if>
+      <if test="cityId !=null">
+        AND city_id = #{cityId}
+      </if>
     </where>
   </select>
 
@@ -44,9 +50,12 @@
       <if test="cityId !=null and cityId !=''">
         city_id = #{cityId}
       </if>
-        <if test="district !=null and district !=''">
-            AND district like CONCAT('%',#{district},'%')
-        </if>
+      <if test="district !=null and district !=''">
+          AND district like CONCAT('%',#{district},'%')
+      </if>
+      <if test="districtId !=null ">
+          AND district_id = #{districtId}
+      </if>
     </where>
   </select>
 

+ 30 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -796,8 +796,8 @@ public class CustomerServiceImpl implements CustomerService {
     }
 
     @Override
-    public List<CustomerStatisticalInfo> listStatisticalCustomer() {
-        return customerInfoMapper.listStatisticalCustomer();
+    public List<CustomerStatisticalInfo> listStatisticalCustomer(CustomerInfo customerInfo) {
+        return customerInfoMapper.listStatisticalCustomer(customerInfo);
     }
 
     @Override
@@ -1060,6 +1060,11 @@ public class CustomerServiceImpl implements CustomerService {
     }
 
     @Override
+    public  List<CustomerInfo> listCustomer(CustomerInfo customerInfo) {
+        return customerInfoMapper.listCustomer(customerInfo);
+    }
+
+    @Override
     public Map<String,Object> getCustomerInfo(CustomerInfo customerInfo) {
         Map<String,Object> map = new HashMap<String,Object>();
         CustomerCommon customerCommon = new CustomerCommon();
@@ -1103,6 +1108,14 @@ public class CustomerServiceImpl implements CustomerService {
         sendrecord.setRelationId(cmRelation.getRelationId());
         customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(sendrecord));
         map.put("customerCommon",customerCommon);
+        if(customerCommon.getSendProdcues().size() > 0){
+            StringBuffer colorIds = new StringBuffer("");
+            for(SendProdcue sendProdcue : customerCommon.getSendProdcues()){
+                colorIds.append(sendProdcue.getColorId() + "_");
+            }
+            map.put("colorIds",colorIds);
+        }
+
         return map;
     }
 
@@ -1837,4 +1850,19 @@ public class CustomerServiceImpl implements CustomerService {
     public Integer updateItemreturnNumByorderid(Integer itemOrderId) {
         return customerInfoMapper.updateItemreturnNumByorderid(itemOrderId);
     }
+
+    @Override
+    public List<DownloadProgressInfo> listDownloadProgressInfo(DownloadProgressInfo downloadProgressInfo) {
+        return customerInfoMapper.listDownloadProgressInfo(downloadProgressInfo);
+    }
+
+    @Override
+    public Integer updateDownloadProgressInfo(DownloadProgressInfo downloadProgressInfo) {
+        return customerInfoMapper.updateDownloadProgressInfo(downloadProgressInfo);
+    }
+
+    @Override
+    public Integer addDownloadProgressInfo(DownloadProgressInfo downloadProgressInfo) {
+        return customerInfoMapper.addDownloadProgressInfo(downloadProgressInfo);
+    }
 }

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

@@ -1211,4 +1211,15 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     public Integer updateOrderItemReturnNum(SalesOrderItem salesOrderItem) {
         return salesOrderMapper.updateOrderItemReturnNum(salesOrderItem);
     }
+
+    @Override
+    public List<SmsSignatureInfo> listSmsSignatureInfo(SmsSignatureInfo smsSignatureInfo) {
+        return salesOrderMapper.listSmsSignatureInfo(smsSignatureInfo);
+    }
+
+    @Override
+    public List<SmsTemplateInfo> listSmsTemplateInfo(SmsTemplateInfo smsTemplateInfo) {
+        return salesOrderMapper.listSmsTemplateInfo(smsTemplateInfo);
+    }
+
 }

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

@@ -52,7 +52,7 @@ public interface CustomerInfoMapper {
      * 导出客诉信息到excel
      * @return
      */
-    List<CustomerStatisticalInfo> listStatisticalCustomer();
+    List<CustomerStatisticalInfo> listStatisticalCustomer(CustomerInfo customerInfo);
 
     /**
      * 总销量
@@ -226,4 +226,24 @@ public interface CustomerInfoMapper {
      */
     Integer updateItemreturnNumByorderid(Integer itemOrderId);
 
+    /**
+     * 查询下载进度列表
+     * @param downloadProgressInfo
+     * @return
+     */
+    List<DownloadProgressInfo> listDownloadProgressInfo(DownloadProgressInfo downloadProgressInfo);
+
+    /**
+     * 修改下载进度列表
+     * @param downloadProgressInfo
+     * @return
+     */
+    Integer updateDownloadProgressInfo(DownloadProgressInfo downloadProgressInfo);
+
+    /**
+     * 添加下载进度列表
+     * @param downloadProgressInfo
+     * @return
+     */
+    Integer addDownloadProgressInfo(DownloadProgressInfo downloadProgressInfo);
 }

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

@@ -360,4 +360,14 @@ public interface SalesOrderMapper {
      * 修改订单项退货数据
      */
     Integer updateOrderItemReturnNum(SalesOrderItem salesOrderItem);
+
+    /**
+     * 查询售后短信签名
+     */
+    List<SmsSignatureInfo> listSmsSignatureInfo(SmsSignatureInfo smsSignatureInfo);
+
+    /**
+     * 查询售后短信模板
+     */
+    List<SmsTemplateInfo> listSmsTemplateInfo(SmsTemplateInfo smsTemplateInfo);
 }

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

@@ -259,6 +259,9 @@
     c.customer_wechat_name,
     c.customer_source_type,
     c.customer_source,
+    c.customer_province_id as customerProvinceId,
+    c.customer_city_id as customerCityId,
+    c.customer_district_id as customerDistrictId,
     ct.complaint_class_name,
     csc.small_class_name,
     t.type_name,
@@ -279,7 +282,6 @@
     sa.admin_name AS visitDesignatedAdminName,
     cq.question_profile,
     sx.sendback_status AS backStatus,
-    cc.relationSendStatus AS sendStatus,
     cc.relationSendLogisticsNo AS sendLogisticsNo,
     cc.relationSendLogisticsCompany AS sendLogisticsCompany,
     cc.relationBackLogisticsNo AS backLogisticsNo,
@@ -291,38 +293,43 @@
     cc.procTypeName as procTypeName,
     cc.customerIsSolve as customerIsSolve,
     cc.procMethodIsBack as procMethodIsBack,
-    cc.procMethodIsSend as procMethodIsSend
+    cc.procMethodIsSend as procMethodIsSend,
+    cc.relationSendAddress as customerSendAddress
     FROM
     tb_rst_cm_customer_info c
     LEFT JOIN (
-        SELECT
-        xx.*
-        FROM
-        (
-        SELECT
-        tb_rst_cm_proc_method.proc_type_id AS customerIsSolve,
-        tb_rst_cm_relation.relation_id AS relationId,
-        customer_id AS customerId,
-        tb_rst_cm_relation_order.sales_id AS orderId,
-        signclosed_id AS signclosedId,
-        relation_back_status AS relationBackStatus,
-        relation_send_status AS relationSendStatus,
-        relation_send_logistics_no AS relationSendLogisticsNo,
-        relation_send_logistics_company AS relationSendLogisticsCompany,
-        relation_back_logistics_no AS relationBackLogisticsNo,
-        relation_back_logistics_company AS relationBackLogisticsCompany,
-        tb_rst_cm_proc_method.proc_method_id AS procMethodId,
-        tb_rst_cm_proc_method.proc_method_name AS procMethodName,
-        tb_rst_cm_proc_type.proc_type_id AS procTypeId,
-        tb_rst_cm_proc_type.proc_type_name AS procTypeName,
-        tb_rst_cm_proc_method.proc_method_is_back AS procMethodIsBack,
-        tb_rst_cm_proc_method.proc_method_is_send AS procMethodIsSend
-        FROM
-        tb_rst_cm_relation
-        LEFT JOIN tb_rst_cm_proc_method ON tb_rst_cm_proc_method.proc_method_id = tb_rst_cm_relation.proc_method_id
-        LEFT JOIN tb_rst_cm_proc_type ON tb_rst_cm_proc_type.proc_type_id = tb_rst_cm_proc_method.proc_type_id
-        LEFT JOIN tb_rst_cm_relation_order ON tb_rst_cm_relation_order.relation_id = tb_rst_cm_relation.relation_id
-        ) xx
+    SELECT
+    xx.*
+    FROM
+    (
+    SELECT
+    tb_rst_cm_proc_method.proc_type_id AS customerIsSolve,
+    tb_rst_cm_relation.relation_id AS relationId,
+    customer_id AS customerId,
+    tb_rst_cm_relation_order.sales_id AS orderId,
+    signclosed_id AS signclosedId,
+    relation_back_status AS relationBackStatus,
+    relation_send_status AS relationSendStatus,
+    relation_send_logistics_no AS relationSendLogisticsNo,
+    relation_send_logistics_company AS relationSendLogisticsCompany,
+    relation_back_logistics_no AS relationBackLogisticsNo,
+    relation_back_logistics_company AS relationBackLogisticsCompany,
+    tb_rst_cm_proc_method.proc_method_id AS procMethodId,
+    tb_rst_cm_proc_method.proc_method_name AS procMethodName,
+    tb_rst_cm_proc_type.proc_type_id AS procTypeId,
+    tb_rst_cm_proc_type.proc_type_name AS procTypeName,
+    tb_rst_cm_proc_method.proc_method_is_back AS procMethodIsBack,
+    tb_rst_cm_proc_method.proc_method_is_send AS procMethodIsSend,
+    tb_rst_cm_relation.province_number AS provinceNumber,
+    tb_rst_cm_relation.city_number AS cityNumber,
+    tb_rst_cm_relation.area_number AS areaNumber,
+    tb_rst_cm_relation.relation_send_address AS relationSendAddress
+    FROM
+    tb_rst_cm_relation
+    LEFT JOIN tb_rst_cm_proc_method ON tb_rst_cm_proc_method.proc_method_id = tb_rst_cm_relation.proc_method_id
+    LEFT JOIN tb_rst_cm_proc_type ON tb_rst_cm_proc_type.proc_type_id = tb_rst_cm_proc_method.proc_type_id
+    LEFT JOIN tb_rst_cm_relation_order ON tb_rst_cm_relation_order.relation_id = tb_rst_cm_relation.relation_id
+    ) xx
     ) cc ON cc.customerId = c.customer_id
     LEFT JOIN (
     SELECT
@@ -331,26 +338,23 @@
     (
     SELECT ss.* from (
     select tb_rst_cm_sendback_info.*,tb_rst_cm_relation.customer_id
-    FROM
-    tb_rst_cm_sendback_info
+    FROM tb_rst_cm_sendback_info
     LEFT JOIN tb_rst_cm_relation on tb_rst_cm_relation.relation_id = tb_rst_cm_sendback_info.relation_id
-
-    ORDER BY
-    sendback_create_time desc
+    ORDER BY sendback_create_time desc
     ) ss
-    GROUP BY
-    ss.relation_id
+    GROUP BY ss.relation_id
     ) sxx
     ) sx ON sx.customer_id = c.customer_id
-    LEFT JOIN (SELECT ss.* from (
+    LEFT JOIN (
+    SELECT ss.*
+    from (
     select tb_rst_cm_sendback_info.*,tb_rst_cm_relation.customer_id
-    FROM
-    tb_rst_cm_sendback_info
+    FROM tb_rst_cm_sendback_info
     LEFT JOIN tb_rst_cm_relation on tb_rst_cm_relation.relation_id = tb_rst_cm_sendback_info.relation_id
-
     ORDER BY
     sendback_create_time desc
-    ) ss) sss ON sss.customer_id = c.customer_id
+    ) ss
+    ) sss ON sss.customer_id = c.customer_id
     LEFT JOIN tb_rst_cm_visit v ON v.customer_id = c.customer_id
     LEFT JOIN tb_rst_sales_order_info oi ON cc.orderId = oi.sales_id
     LEFT JOIN tb_rst_cm_question_describe qd ON c.customer_id = qd.customer_id
@@ -362,6 +366,7 @@
     LEFT JOIN tb_rst_product_type t ON c.type_id = t.type_id
     LEFT JOIN tb_rst_sys_admin a ON c.admin_id = a.admin_id
     LEFT JOIN tb_rst_sys_admin sa ON v.designated_admin_id = sa.admin_id
+    LEFT JOIN tb_rst_sales_order_info soi ON soi.sales_customer_id = c.customer_id
     <where>
       <if test="customerName != null and customerName != ''">
         c.customer_name like CONCAT('%',#{customerName},'%')
@@ -411,7 +416,11 @@
         and c.customer_create_time &lt; #{endTime}
       </if>
       <if test="sendLogisticsNo != null and sendLogisticsNo != ''">
-        AND  cc.relationSendLogisticsNo =  #{sendLogisticsNo} OR sss.sendback_logistics_no  =  #{sendLogisticsNo}
+        AND  (
+                cc.relationSendLogisticsNo =  #{sendLogisticsNo} OR
+                sss.sendback_logistics_no  =  #{sendLogisticsNo} OR
+                soi.sales_post_num = #{sendLogisticsNo}
+              )
       </if>
       <if test="storeId != null and storeId != ''">
         AND  c.store_id =  #{storeId}
@@ -475,6 +484,7 @@
     <collection property="complaintDetectList" column="customer_id" ofType="ComplaintDetectInfo" select="listComplaintDetect"/>
    <!-- <collection property="postageInfoList" column="customer_id" ofType="PostageInfo" select="listPostageInfoByCustomerId"/>-->
     <collection property="sendbackInfoList" column="customer_id" ofType="SendbackInfo" select="listSendbackInfoByCustomerId"/>
+    <collection property="salesOrderList" column="customer_id" ofType="SalesOrder" select="listSalesOrderListByCustomerId"/>
   </resultMap>
 
   <select id="listComplaintDetect" parameterType="Integer" resultType="ComplaintDetectInfo">
@@ -487,6 +497,27 @@
     ORDER BY detect_id ASC
   </select>
 
+  <select id="listSalesOrderListByCustomerId" parameterType="Integer" resultType="SalesOrder">
+    SELECT
+      sales_id,
+      sales_orderId,
+      sales_post_num,
+      sales_post_firm,
+      sales_order_status,
+      sales_status,
+      sales_shipping_status,
+      sales_deliver,
+      sales_admin_id,
+      sales_customer_id,
+      sales_batch_id,
+      sales_return_status
+    FROM
+      tb_rst_sales_order_info
+    WHERE
+      sales_customer_id = #{customerId}
+      ORDER BY sales_id desc
+  </select>
+
   <insert id="insert" parameterType="CustomerInfo"  useGeneratedKeys="true"  keyProperty="customerId">
     insert into tb_rst_cm_customer_info (customer_id, admin_id, question_id,
       company_id, store_id, customer_source_type, 
@@ -694,11 +725,11 @@
   </select>
 
   <!-- 导出客诉信息到excel -->
-  <select id="listStatisticalCustomer" resultType="CustomerStatisticalInfo">
+  <select id="listStatisticalCustomer" parameterType="CustomerInfo" resultType="CustomerStatisticalInfo">
 SELECT
 	c.customer_id customerId,
 	null AS orderId,
-	DATE_FORMAT(c.customer_create_time,'%Y-%m-%d')  AS createTime,
+	c.customer_create_time AS createTime,
 	c.customer_name AS customerName,
 	c.customer_tel AS customerTel,
 (CASE
@@ -752,7 +783,7 @@ sa.admin_name AS adminName,
 csi.sendback_logistics_company AS relationBackLogisticsCompany,
 csi.sendback_logistics_no AS relationBackLogisticsNo,
 csi.sendback_sign_time AS relationBackReceiptDate,
-cr.relation_send_status AS relationBackStatus,
+csi.sendback_status AS relationBackStatus,
 cr.relation_send_logistics_company AS relationSendLogisticsCompany,
 cr.relation_send_logistics_no AS relationSendLogisticsNo,
 cr.relation_factory_costs AS relationFactoryCosts,
@@ -772,6 +803,23 @@ LEFT JOIN tb_rst_cm_relation cr ON cr.customer_id = c.customer_id
 LEFT JOIN tb_rst_cm_proc_method cpm ON cpm.proc_method_id = cr.proc_method_id
 LEFT JOIN tb_rst_cm_proc_type cpt ON cpt.proc_type_id = cpm.proc_type_id
 LEFT JOIN tb_rst_cm_sendback_info csi ON csi.relation_id = cr.relation_id
+<where>
+  <if test="companyId != null and companyId!=''">
+    c.company_id = #{companyId}
+  </if>
+  <if test="storeId != null and storeId!=''">
+    AND c.store_id = #{storeId}
+  </if>
+  <if test="procTypeId != null and procTypeId!=''">
+    AND cpt.proc_type_id = #{procTypeId}
+  </if>
+  <if test="startTime!=null and startTime!='' ">
+    AND c.customer_create_time &gt; #{startTime}
+  </if>
+  <if test="endTime!=null and endTime!=''">
+    and c.customer_create_time &lt; #{endTime}
+  </if>
+</where>
 </select>
   <!-- 退换货统计sql start -->
   <!-- 总销量 -->
@@ -1060,7 +1108,11 @@ LEFT JOIN tb_rst_cm_sendback_info csi ON csi.relation_id = cr.relation_id
   <select id="getCmRelationInfo" parameterType="CmRelation" resultType="CmRelation">
     SELECT
     cr.*,
-    sx.sendback_status AS relationBackStatus
+    sx.sendback_status AS relationBackStatus,
+    cpm.proc_method_is_back AS procMethodIsBack,
+    cpm.proc_method_is_send AS procMethodIsSend,
+    cpm.proc_method_name AS procMethodName,
+    cpt.proc_type_name AS procTypeName
     FROM
     tb_rst_cm_relation cr
     LEFT JOIN (
@@ -1081,6 +1133,8 @@ LEFT JOIN tb_rst_cm_sendback_info csi ON csi.relation_id = cr.relation_id
     ss.relation_id
     ) sxx
     ) sx ON sx.customer_id = cr.customer_id
+    LEFT JOIN tb_rst_cm_proc_method cpm ON cpm.proc_method_id = cr.proc_method_id
+    LEFT JOIN tb_rst_cm_proc_type cpt ON cpt.proc_type_id = cpm.proc_type_id
     <where>
       <if test="relationId != null and relationId != ''">
         cr.relation_id = #{relationId},
@@ -1395,4 +1449,62 @@ LEFT JOIN tb_rst_cm_sendback_info csi ON csi.relation_id = cr.relation_id
         item_return_num = 0
     where item_order_id = #{itemOrderId}
   </update>
+  <!--查询客诉下载进度sql state -->
+  <select id="listDownloadProgressInfo" parameterType="DownloadProgressInfo" resultType="DownloadProgressInfo">
+      SELECT * FROM tb_rst_download_progress_info
+      <where>
+        <if test="downloadId != null and downloadId != ''">
+          download_id = #{downloadId}
+        </if>
+        <if test="downloadAdminId != null and downloadAdminId != ''">
+          download_admin_id = #{downloadAdminId}
+        </if>
+        <if test="downloadStatus != null and downloadStatus != ''">
+          download_status = #{downloadStatus}
+        </if>
+      </where>
+      ORDER BY download_create_time DESC
+      Limit 0,5
+  </select>
+  <update id="updateDownloadProgressInfo" parameterType="DownloadProgressInfo">
+      update tb_rst_download_progress_info
+      <set>
+        <if test="downloadStatus != null and downloadStatus != ''">
+          download_status = #{downloadStatus},
+        </if>
+        <if test="downloadProgress != null and downloadProgress != ''">
+          download_progress = #{downloadProgress},
+        </if>
+        <if test="downloadUrl != null and downloadUrl != ''">
+          download_url = #{downloadUrl},
+        </if>
+        <if test="downloadDate != null and downloadDate != ''">
+          download_date = #{downloadDate}
+        </if>
+      </set>
+      WHERE download_id = #{downloadId}
+  </update>
+
+  <insert id="addDownloadProgressInfo" parameterType="DownloadProgressInfo"  keyProperty="downloadId" useGeneratedKeys="true">
+    insert into tb_rst_download_progress_info
+    (
+    download_id,
+    download_admin_id,
+    download_progress,
+    download_status,
+    download_url,
+    download_create_time
+    )
+    VALUES
+    (
+    #{downloadId},
+    #{downloadAdminId},
+    #{downloadProgress},
+    #{downloadStatus},
+    #{downloadUrl},
+    NOW()
+    )
+  </insert>
+  <!--查询客诉下载进度sql end -->
+  
 </mapper>

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

@@ -392,6 +392,7 @@
         from tb_rst_sales_order_info
         LEFT JOIN tb_rst_sales_order_item oi ON tb_rst_sales_order_info.sales_id = oi.item_order_id
         <where>
+            sales_status != 3
             <if test="salesIsDownload !=null and salesIsDownload !=''">
                 AND sales_is_download = #{salesIsDownload}
             </if>
@@ -1194,6 +1195,9 @@
           <if test="salesId !=null">
               AND t.sales_id = #{salesId}
           </if>
+          <if test="salesCustomerId !=null">
+              AND t.sales_customer_id = #{salesCustomerId}
+          </if>
           <if test="salesOrderId !=null and salesOrderId !=''">
               AND t.sales_orderId = #{salesOrderId}
           </if>
@@ -1216,6 +1220,7 @@
               AND t.sales_create_time <![CDATA[<=]]> #{endDate}
           </if>
       </where>
+      ORDER BY t.sales_sales_time DESC
   </select>
 
   <!-- 按照批次查询订单项,并下载,订单列表主要按照订单项来排列 -->
@@ -1410,6 +1415,9 @@
             <if test="salesId !=null">
                 AND sales_id = #{salesId}
             </if>
+            <if test="salesCustomerId !=null">
+                AND sales_customer_id = #{salesCustomerId}
+            </if>
             <if test="salesOrderId !=null and salesOrderId !=''">
                 AND sales_orderId = #{salesOrderId}
             </if>
@@ -1691,8 +1699,23 @@
         ORDER BY soi.sales_create_time DESC
     </select>
 
-    <select id="getAfterrulesInfo" parameterType="Integer" resultType="AfterrulesInfo">
-        select * from tb_rst_afterrules_info
-        WHERE store_id = #{storeId}
+    <select id="listSmsSignatureInfo" parameterType="SmsSignatureInfo" resultType="SmsSignatureInfo">
+        select * from tb_rst_smsSignature_info
+        <where>
+            <if test="smsSignatureId != null and smsSignatureId != '' ">
+                smsSignature_id = #{smsSignatureId}
+            </if>
+        </where>
+    </select>
+    <select id="listSmsTemplateInfo" parameterType="SmsTemplateInfo" resultType="SmsTemplateInfo">
+        SELECT * from tb_rst_smsTemplate_info
+        <where>
+            <if test="smsSignatureId != null and smsSignatureId != '' ">
+                smsSignature_id = #{smsSignatureId}
+            </if>
+            <if test="smsTemplateId != null and smsTemplateId != '' ">
+                smsTemplate_id = #{smsTemplateId}
+            </if>
+        </where>
     </select>
 </mapper>

+ 282 - 84
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -1,5 +1,8 @@
 package com.iamberry.rst.controllers.cm;
 
+import com.iamberry.rst.core.address.City;
+import com.iamberry.rst.core.address.District;
+import com.iamberry.rst.core.address.Province;
 import com.iamberry.rst.core.cm.*;
 import com.iamberry.rst.core.fm.ComplaintSignclosedInfo;
 import com.iamberry.rst.core.fm.ComplaintSmallClassInfo;
@@ -44,6 +47,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.text.MessageFormat;
+import java.text.NumberFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -475,6 +479,14 @@ public class AdminCustomerController {
         if (totalNum != 0) {
             pagedResult.setTotal(totalNum);
         }
+        //查询寄出状态
+        if(pagedResult.getDataList().size() > 0){
+            for(CustomerInfo info : pagedResult.getDataList()){
+                if(info.getSalesOrderList().size() > 0){
+                    info.setSendStatus(info.getSalesOrderList().get(0).getSalesStatus());
+                }
+            }
+        }
         ProductType productType = new ProductType();
         //查询产品类型集合
         List<ProductType> typeList = productService.listProductType(productType);
@@ -539,12 +551,18 @@ public class AdminCustomerController {
         ClosedProdcue record = new ClosedProdcue();
         record.setRelationId(cmRelation.getRelationId());
         List <ClosedProdcue> listClosedProdcue = customerService.listclosedProdcue(record);
+
+        SalesOrder salesOrder = new SalesOrder();
+        salesOrder.setSalesCustomerId(cmRelation.getCustomerId());
+        List<SalesOrder> salesOrderList = salesOrderService.salesOrderListAndItem(salesOrder);
+
         mv.addObject("listClosedProdcue",listClosedProdcue);
         mv.addObject("listSendbackInfo",listSendbackInfo);
         mv.addObject("logisticsInfoList",logisticsInfoList);
         mv.addObject("listPostageInfo", listPostageInfo);
         mv.addObject("procMethod", procMethod);
         mv.addObject("customerId", customerId);
+        mv.addObject("salesOrderList", salesOrderList);
         return mv;
     }
 
@@ -572,14 +590,70 @@ public class AdminCustomerController {
         cmRelation.setCustomerId(customerInfo.getCustomerId());
         cmRelation = customerService.getCmRelationInfo(cmRelation);
         ProcMethod procMethod = customerService.getProcMethod(cmRelation.getProcMethodId());
+
+        CustomerInfo ci = (CustomerInfo) map.get("customer");
+        if(ci != null){
+            if(ci.getCustomerProvinceId() != null && !"".equals(ci.getCustomerProvinceId())){
+                Province province = new Province();
+                province.setProvinceId(Integer.valueOf(ci.getCustomerProvinceId()));
+                List<Province> provinceList = addressService.listProvince(province);
+                ci.setCustomerProvinceName(provinceList.get(0).getProvince());
+            }else{
+                ci.setCustomerProvinceName("");
+            }
+
+            if(ci.getCustomerCityId() != null && !"".equals(ci.getCustomerCityId())){
+                City city = new City();
+                city.setCityId(Integer.valueOf(ci.getCustomerCityId()));
+                List<City>  cityList = addressService.listCity(city);
+                ci.setCustomerCityName(cityList.get(0).getCity());
+            }else{
+                ci.setCustomerCityName("");
+            }
+
+            if(ci.getCustomerDistrictId() != null && !"".equals(ci.getCustomerDistrictId())){
+                District district = new District();
+                district.setDistrictId(Integer.valueOf(ci.getCustomerDistrictId()));
+                List<District> districtList = addressService.listDistrict(district);
+                ci.setCustomerDistrictName(districtList.get(0).getDistrict());
+            }else{
+                ci.setCustomerDistrictName("");
+            }
+        }
         rj.addResponseKeyValue("cmRelation", cmRelation);
         rj.addResponseKeyValue("procMethod", procMethod);
         rj.addResponseKeyValue("customerCommon", map.get("customerCommon"));
         rj.addResponseKeyValue("customer", map.get("customer"));
         rj.addResponseKeyValue("orderList", map.get("orderList"));
+        rj.addResponseKeyValue("colorIds", map.get("colorIds"));
+        return rj;
+    }
+
+    /**
+     * 查询客诉基本信息
+     *
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:select:customer")
+    @RequestMapping("/get_customer")
+    public ResponseJson getCustomer(HttpServletRequest request) throws Exception {
+        String customerId = request.getParameter("customerId");
+        if (!StringUtils.isNotEmpty(customerId)) {
+            return new ResponseJson(500, "该客诉信息不存在!", 500);
+        }
+        SalesOrder salesOrder = new SalesOrder();
+        salesOrder.setSalesCustomerId(Integer.valueOf(customerId));
+        List<SalesOrder> salesOrderList = salesOrderService.salesOrderListAndItem(salesOrder);
+
+        ResponseJson rj = ResponseJson.getSUCCESS();
+        rj.addResponseKeyValue("salesOrderList", salesOrderList);
         return rj;
     }
 
+
     /**
      * 进入添加回访页面
      *
@@ -1253,9 +1327,19 @@ public class AdminCustomerController {
         if (cmRelation == null) {
             return new ResponseJson(500, "该客诉没有售后信息!", 500);
         } else {
+            //查询寄出状态
+            SalesOrder salesOrder = new SalesOrder();
+            salesOrder.setSalesCustomerId(Integer.valueOf(customerId));
+            List<SalesOrder> salesOrderList = salesOrderService.salesOrderListAndItem(salesOrder);
+            if(salesOrderList.size() > 0){
+                cmRelation.setRelationSendStatus(salesOrderList.get(0).getSalesStatus());
+            }else{
+                cmRelation.setRelationSendStatus(0);
+            }
 
             ResponseJson rj = new ResponseJson(200, "查询成功", 200);
             rj.addResponseKeyValue("cmRelation", cmRelation);
+
             return rj;
         }
     }
@@ -1298,13 +1382,6 @@ public class AdminCustomerController {
         }
     }
 
-
-
-
-
-
-
-
     /**
      * 查询未解决客诉数量
      */
@@ -1605,6 +1682,59 @@ public class AdminCustomerController {
         }
     }
 
+    /**
+     * 进入下载客诉页面
+     *
+     * @param request
+     * @param res
+     * @param
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/to_download_customer_excel")
+    public ModelAndView toDownloadCustomerExcel(HttpServletRequest request, HttpServletResponse res, CustomerInfo customerInfo) throws Exception {
+        ModelAndView mv = new ModelAndView("cm/customer/download_customer");
+        Admin admin = AdminUtils.getLoginAdmin();
+        //获取销售公司
+        List<CompanyInfo> companyInfoList = companyInfoService.listCompanyInfo(new CompanyInfo());
+        //查询店铺
+        StoreInfo storeInfo = new StoreInfo();
+        storeInfo.setCompanyId(companyInfoList.get(0).getCompanyId());
+        List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
+        //查询处理类型
+        List<ProcType> procTypeList = customerService.listProcType();
+        //查询登录人下载客诉记录
+        DownloadProgressInfo downloadProgressInfo = new DownloadProgressInfo();
+        downloadProgressInfo.setDownloadAdminId(admin.getAdminId());
+        List<DownloadProgressInfo> listDownloadProgressInfo = customerService.listDownloadProgressInfo(downloadProgressInfo);
+        mv.addObject("listDownloadProgressInfo",listDownloadProgressInfo);
+        mv.addObject("companyInfoList",companyInfoList);
+        mv.addObject("storeList",storeList);
+        mv.addObject("procTypeList",procTypeList);
+        return mv;
+    }
+
+    /**
+     * 查询下载客诉信息 (2018-05-29)
+     *
+     * @param request
+     * @param res
+     * @param
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/list_download_customer_excel")
+    public ResponseJson listdownloadEfastOrderExcel(HttpServletRequest request, HttpServletResponse res) throws Exception {
+        Admin admin = AdminUtils.getLoginAdmin();
+        //查询登录人下载客诉记录
+        DownloadProgressInfo downloadProgressInfo = new DownloadProgressInfo();
+        /*downloadProgressInfo.setDownloadStatus(1);*/
+        downloadProgressInfo.setDownloadAdminId(admin.getAdminId());
+        List<DownloadProgressInfo> listDownloadProgressInfo = customerService.listDownloadProgressInfo(downloadProgressInfo);
+        ResponseJson rj = new ResponseJson(200, "查询成功", 200);
+        rj.addResponseKeyValue("listDownloadProgressInfo", listDownloadProgressInfo);
+        return rj;
+    }
 
     /**
      * 下载客诉信息 (2018-05-29)
@@ -1614,101 +1744,149 @@ public class AdminCustomerController {
      * @param
      * @throws Exception
      */
+    @ResponseBody
     @RequestMapping("/download_customer_excel")
-    public void downloadEfastOrderExcel(HttpServletRequest request, HttpServletResponse res) throws Exception {
-        List<CustomerStatisticalInfo> customerList = customerService.listStatisticalCustomer();
-        String[] cells = {
-                "日期", "姓名", "联系电话", "类别", "来源入口",
-                "问题类别", "小类名称", "客诉问题", "处理过程", "购买日期",
-                "处理方式","处理结果", "销售公司", "销售渠道", "产品型号", "产品颜色",
-                "产品数量", "寄回快递", "寄回单号", "签收日期",
-                "状态", "寄出快递", "寄出快递", "开箱损", "二次客诉", "跟进客服", "工厂报价", "客户报价", "邮费信息"
-        };
-        List<CustomerStatisticalInfo> customerStatisticalInfoList = new ArrayList<>();
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-        for (CustomerStatisticalInfo customerInfo : customerList) {
-            //新建一个容器
-            CustomerStatisticalInfo customer = new CustomerStatisticalInfo();
-            //将数据copy到新容器
-            BeanUtils.copyProperties(customerInfo, customer);
-            CustomerCommon customerCommon = new CustomerCommon();
-            customerCommon.setCustomerId(customerInfo.getCustomerId());
-            customerCommon.setRelationId(customerInfo.getRelationId());
-            List<CustomerCommon> listCustomerCommon = customerService.listCustomerCommons(customerCommon);
-            if(listCustomerCommon.size() > 0) {
-                for (CustomerCommon common : listCustomerCommon) {
-                    if (common.getSalesOrderList().size() > 0) {
-                        for (SalesOrder salesOrder : common.getSalesOrderList()) {
-                            if (salesOrder.getSalesOrderItemList().size() > 0) {
-                                for (SalesOrderItem salesOrderItem : salesOrder.getSalesOrderItemList()) {
-                                    //将数据copy到新容器
-                                    CustomerStatisticalInfo customers = new CustomerStatisticalInfo();
-                                    BeanUtils.copyProperties(customer, customers);
-                                    customers.setRelationBackLogisticsCompany(customerInfo.getRelationBackLogisticsCompany());
-                                    customers.setRelationBackLogisticsNo(customerInfo.getRelationBackLogisticsNo());
-                                    customers.setRelationSendLogisticsCompany(customerInfo.getRelationSendLogisticsCompany());
-                                    customers.setRelationSendLogisticsNo(customerInfo.getRelationSendLogisticsNo());
-                                    customers.setRelationBackStatus(String.valueOf(customerInfo.getRelationBackStatus()));
-                                            if(customerInfo.getRelationBackReceiptDate() == null){
-                                                customers.setRelationBackReceiptDate(null);
-                                            }else{
-                                                customers.setRelationBackReceiptDate(customerInfo.getRelationBackReceiptDate());
-                                            }
-                                    customers.setSalesPayTime(salesOrder.getSalesPayTime());
-                                    customers.setItemProductName(salesOrderItem.getItemProductName());
-                                    customers.setItemProductColor(salesOrderItem.getItemProductColor());
-                                    customers.setItemNum(String.valueOf(salesOrderItem.getItemNum()));
-                                    customers.setRelationFactoryCosts(customerInfo.getRelationFactoryCosts());
-                                    customers.setRelationCustomerCosts(customerInfo.getRelationCustomerCosts());
-                                    String postageString = "";
-                                    //查询邮费信息
-                                    List<PostageInfo> listPostageInfo = customerService.listPostageInfo(customers.getRelationId());
-                                    if(listPostageInfo.size() > 0){
-                                        for(PostageInfo postageInfo : listPostageInfo){
-                                            String state = "";
-                                            if(postageInfo.getPostageStatus() == 1){
-                                                state = "未申请";
-                                            }
-                                            if(postageInfo.getPostageStatus() == 2){
-                                                state = "已申请(待转账)";
-                                            }
-                                            if(postageInfo.getPostageStatus() == 3){
-                                                state = "已转账";
+    public ResponseJson downloadEfastOrderExcel(HttpServletRequest request, HttpServletResponse res, CustomerInfo customerInfo) throws Exception {
+        String path = request.getSession().getServletContext().getRealPath("/");
+        new Thread(new Mythread(path,customerInfo)).start();
+        return new ResponseJson(200, "查询成功", 200);
+    }
+
+    class Mythread extends Thread{
+        private String path;
+        private CustomerInfo customerInfo;
+        public Mythread(String path,CustomerInfo customerInfo) {
+            this.path=path;
+            this.customerInfo=customerInfo;
+        }
+        @Override
+        public void run(){
+            Admin admin = AdminUtils.getLoginAdmin();
+            //添加一条下载记录
+            DownloadProgressInfo downloadProgressInfo = new DownloadProgressInfo();
+            downloadProgressInfo.setDownloadAdminId(admin.getAdminId());
+            downloadProgressInfo.setDownloadProgress("00.00");
+            downloadProgressInfo.setDownloadStatus(1);
+            customerService.addDownloadProgressInfo(downloadProgressInfo);
+            //循环一次的时间(毫秒)
+            long cycleOne = 0;
+            long cycleOnes = 0;
+            int s = 0;
+            List<CustomerStatisticalInfo> customerList = customerService.listStatisticalCustomer(customerInfo);
+            String[] cells = {
+                    "日期", "姓名", "联系电话", "类别", "来源入口",
+                    "问题类别", "小类名称", "客诉问题", "处理过程", "购买日期",
+                    "处理方式","处理结果", "销售公司", "销售渠道", "产品型号", "产品颜色",
+                    "产品数量", "寄回快递", "寄回单号", "签收日期",
+                    "状态", "寄出快递", "寄出快递", "开箱损", "二次客诉", "跟进客服", "工厂报价", "客户报价", "邮费信息"
+            };
+            List<CustomerStatisticalInfo> customerStatisticalInfoList = new ArrayList<>();
+            for (CustomerStatisticalInfo customerInfo : customerList) {
+                long startTime=System.currentTimeMillis();   //获取开始时间
+                s++;
+                //新建一个容器
+                CustomerStatisticalInfo customer = new CustomerStatisticalInfo();
+                //将数据copy到新容器
+                BeanUtils.copyProperties(customerInfo, customer);
+                CustomerCommon customerCommon = new CustomerCommon();
+                customerCommon.setCustomerId(customerInfo.getCustomerId());
+                customerCommon.setRelationId(customerInfo.getRelationId());
+                List<CustomerCommon> listCustomerCommon = customerService.listCustomerCommons(customerCommon);
+                if(listCustomerCommon.size() > 0) {
+                    for (CustomerCommon common : listCustomerCommon) {
+                        if (common.getSalesOrderList().size() > 0) {
+                            for (SalesOrder salesOrder : common.getSalesOrderList()) {
+                                if (salesOrder.getSalesOrderItemList().size() > 0) {
+                                    for (SalesOrderItem salesOrderItem : salesOrder.getSalesOrderItemList()) {
+                                        //将数据copy到新容器
+                                        CustomerStatisticalInfo customers = new CustomerStatisticalInfo();
+                                        BeanUtils.copyProperties(customer, customers);
+                                        customers.setRelationBackLogisticsCompany(customerInfo.getRelationBackLogisticsCompany());
+                                        customers.setRelationBackLogisticsNo(customerInfo.getRelationBackLogisticsNo());
+                                        customers.setRelationSendLogisticsCompany(customerInfo.getRelationSendLogisticsCompany());
+                                        customers.setRelationSendLogisticsNo(customerInfo.getRelationSendLogisticsNo());
+                                        customers.setRelationBackStatus(String.valueOf(customerInfo.getRelationBackStatus()));
+                                                if(customerInfo.getRelationBackReceiptDate() == null){
+                                                    customers.setRelationBackReceiptDate(null);
+                                                }else{
+                                                    customers.setRelationBackReceiptDate(customerInfo.getRelationBackReceiptDate());
+                                                }
+                                        customers.setSalesPayTime(salesOrder.getSalesPayTime());
+                                        customers.setItemProductName(salesOrderItem.getItemProductName());
+                                        customers.setItemProductColor(salesOrderItem.getItemProductColor());
+                                        customers.setItemNum(String.valueOf(salesOrderItem.getItemNum()));
+                                        customers.setRelationFactoryCosts(customerInfo.getRelationFactoryCosts());
+                                        customers.setRelationCustomerCosts(customerInfo.getRelationCustomerCosts());
+                                        String postageString = "";
+                                        //查询邮费信息
+                                        List<PostageInfo> listPostageInfo = customerService.listPostageInfo(customers.getRelationId());
+                                        if(listPostageInfo.size() > 0){
+                                            for(PostageInfo postageInfo : listPostageInfo){
+                                                String state = "";
+                                                if(postageInfo.getPostageStatus() == 1){
+                                                    state = "未申请";
+                                                }
+                                                if(postageInfo.getPostageStatus() == 2){
+                                                    state = "已申请(待转账)";
+                                                }
+                                                if(postageInfo.getPostageStatus() == 3){
+                                                    state = "已转账";
+                                                }
+                                                postageString = postageString+"状态:"+state+" ,金额:"+postageInfo.getPostageAmount()/100+" ,支付宝账号:"+postageInfo.getPostageAlipay()+";";
                                             }
-                                            postageString = postageString+"状态:"+state+" ,金额:"+postageInfo.getPostageAmount()/100+" ,支付宝账号:"+postageInfo.getPostageAlipay()+";";
                                         }
+                                        customers.setPostageString(postageString);
+                                        customerStatisticalInfoList.add(customers);
                                     }
-                                    customers.setPostageString(postageString);
-                                    customerStatisticalInfoList.add(customers);
+                                } else {
+                                    customerStatisticalInfoList.add(customer);
                                 }
-                            } else {
-                                customerStatisticalInfoList.add(customer);
                             }
+                        } else {
+                            customerStatisticalInfoList.add(customer);
                         }
-                    } else {
-                        customerStatisticalInfoList.add(customer);
-                    }
 
+                    }
+                }else{
+                    customerStatisticalInfoList.add(customer);
+                }
+                long endTime=System.currentTimeMillis(); //获取结束时间
+                NumberFormat numberFormat = NumberFormat.getInstance();
+                float percentage = (float) s / (float) customerList.size() * 100;
+                String result = numberFormat.format(percentage);
+                if(s == 1){
+                    cycleOne = endTime - startTime;
+
+                    SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    cycleOnes = cycleOne * customerList.size();
+                    //修改预计下载完成时间
+                    downloadProgressInfo.setDownloadDate(sdf3.format(new Date().getTime()+cycleOnes));
+                    downloadProgressInfo.setDownloadProgress(result);
+                    customerService.updateDownloadProgressInfo(downloadProgressInfo);
+                }else{
+                    numberFormat.setMaximumFractionDigits(2);
+                    downloadProgressInfo.setDownloadProgress(result);
+                    customerService.updateDownloadProgressInfo(downloadProgressInfo);
                 }
-            }else{
-                customerStatisticalInfoList.add(customer);
             }
-        }
-            //导出订单Excel并下载
-            customerExcel(request,res,cells,customerStatisticalInfoList);
+                //导出订单Excel并下载
+            try {
+                customerExcel(cells,customerStatisticalInfoList,downloadProgressInfo,path);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
 
         }
+        }
 
 
     /**
      * 导出订单Excel并下载
-     * @param request
-     * @param res
      * @param cells
      * @throws Exception
      */
-    public void customerExcel(HttpServletRequest request,HttpServletResponse res,
-                                String[] cells,List<CustomerStatisticalInfo> customerList) throws Exception {
+    public void customerExcel(String[] cells,List<CustomerStatisticalInfo> customerList,
+                              DownloadProgressInfo downloadProgressInfo,String path) throws Exception {
 
         //创建一个workbook,对应一个Excel文件
         HSSFWorkbook wb = new HSSFWorkbook();
@@ -1809,7 +1987,27 @@ public class AdminCustomerController {
 
         }
         //下载导出订单Excel
-        downloadCustomerExcel(res,wb);
+       downloadCustomerExcel(wb,downloadProgressInfo,path);
+    }
+
+    /**
+     * 下载导出客诉到本地
+     * @param wb
+     * @throws Exception
+     */
+    public void downloadCustomerExcel(HSSFWorkbook wb,DownloadProgressInfo downloadProgressInfo,String path) throws Exception{
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String fileName = format.format(new Date()) + "客诉报表";
+        try {
+        FileOutputStream fout = new FileOutputStream(path+"/common/customerExcel/"+fileName+downloadProgressInfo.getDownloadId()+".xls");
+        wb.write(fout);
+        fout.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        downloadProgressInfo.setDownloadStatus(2);
+        downloadProgressInfo.setDownloadUrl("\\common\\customerExcel\\"+fileName+downloadProgressInfo.getDownloadId()+".xls");
+        customerService.updateDownloadProgressInfo(downloadProgressInfo);
     }
 
     /**

+ 11 - 3
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderController.java

@@ -821,8 +821,12 @@ public class AdminOrderController {
                     row.add(strarray[1]);
                 }
                 row.add(salesOrder.getSalesAddressInfo() == null ? null:salesOrder.getSalesAddressInfo());
-                String frim = replace(salesOrder.getSalesPostFirm());
-                row.add(frim);
+                if(salesOrder.getSalesPostFirm() != null){
+                    String frim = replace(salesOrder.getSalesPostFirm());
+                    row.add(frim);
+                }else{
+                    row.add(null);
+                }
                 row.add(salesOrder.getSalesPostNum() == null ? null:salesOrder.getSalesPostNum());
                 row.add(salesOrder.getItemProductName() == null ? null:salesOrder.getItemProductName()+(salesOrder.getItemProductColor() == null ? null:"-"+salesOrder.getItemProductColor()));
                 //row.add(salesOrder.getItemProductColor() == null ? null:salesOrder.getItemProductColor());
@@ -831,7 +835,11 @@ public class AdminOrderController {
                 row.add(salesOrder.getStoreName() == null ? null:salesOrder.getStoreName());
                 row.add(salesOrder.getSalesDeliverTime() == null ? null:formatter.format(salesOrder.getSalesDeliverTime()));
                 if(salesOrder.getSalesDistributionTime() == null){
-                    row.add(formatter.format(salesOrder.getSalesSendTime()));
+                    if(salesOrder.getSalesSendTime() != null){
+                        row.add(formatter.format(salesOrder.getSalesSendTime()));
+                    }else{
+                        row.add(null);
+                    }
                 }else{
                     row.add(formatter.format(salesOrder.getSalesDistributionTime()));
                 }

+ 104 - 10
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -1,14 +1,7 @@
 package com.iamberry.rst.controllers.order;
 
-import com.iamberry.rst.core.cm.CompanyInfo;
-import com.iamberry.rst.core.cm.SalesOrder;
-import com.iamberry.rst.core.cm.SalesOrderItem;
-import com.iamberry.rst.core.cm.StoreInfo;
-import com.iamberry.rst.core.order.AfterrulesInfo;
-import com.iamberry.rst.core.order.OrderBatch;
-import com.iamberry.rst.core.order.OrderCorrectInfo;
-import com.iamberry.rst.core.order.ProductColor;
-import com.iamberry.rst.core.order.ProductType;
+import com.iamberry.rst.core.cm.*;
+import com.iamberry.rst.core.order.*;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.sys.Admin;
 import com.iamberry.rst.core.tools.LogisticsInfo;
@@ -19,10 +12,14 @@ import com.iamberry.rst.faces.order.EfastOrderService;
 import com.iamberry.rst.faces.order.LogisticsInfoService;
 import com.iamberry.rst.faces.order.OrderBatchService;
 import com.iamberry.rst.faces.product.ProductService;
+import com.iamberry.rst.faces.sms.SmsService;
+import com.iamberry.rst.util.SmsConfig;
 import com.iamberry.rst.utils.*;
+import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.ResponseJson;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
+import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -41,6 +38,7 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -72,6 +70,8 @@ public class AdminSalesOrderController {
     private LogisticsInfoService logisticsInfoService;
     @Autowired
     private KuaiDi100 kuaidi100;
+    @Autowired
+    private SmsService smsService;
     /**
      * 分页查询订单列表信息
      * @param request
@@ -623,11 +623,12 @@ public class AdminSalesOrderController {
 
     @RequestMapping("/to_add_order")
     @RequiresPermissions("salesOrder:add:manual")
-    public ModelAndView toAddOrder(HttpServletRequest request) throws Exception {
+    public ModelAndView toAddOrder(HttpServletRequest request,SalesOrder salesOrder) throws Exception {
         ModelAndView mv = new ModelAndView("order/salesOrder/add_order");
 
         mv.addObject("admin", AdminUtils.getLoginAdmin());
         mv.addObject("orderBatchs", orderBatchService.getOrderBatchListTwenty());
+        mv.addObject("salesOrder", salesOrder);
         return mv;
     }
 
@@ -1550,4 +1551,97 @@ public class AdminSalesOrderController {
         mv.addObject("afterrulesInfo", afterrulesInfo);
         return mv;
     }
+
+    /**
+     * 进入发送售后短信页面
+     * @param request
+     * @return
+     */
+    @RequestMapping("/to_sendAfterSalesSms")
+    public ModelAndView to_sendAfterSalesSms(HttpServletRequest request){
+        ModelAndView mv = new ModelAndView("order/salesOrder/send_sms");
+        //查询所有短信签名
+        List<SmsSignatureInfo> signatures = salesOrderService.listSmsSignatureInfo(null);
+        //查询所有短信模板
+        SmsTemplateInfo smsTemplateInfo = new SmsTemplateInfo();
+        smsTemplateInfo.setSmsSignatureId(signatures.get(0).getSmsSignatureId());
+        List<SmsTemplateInfo> templates = salesOrderService.listSmsTemplateInfo(smsTemplateInfo);
+        mv.addObject("signatures",signatures);
+        mv.addObject("templates",templates);
+        mv.addObject("templatesOne",templates.get(0).getSmsTemplateInfo());
+        mv.addObject("templatesDesc",templates.get(0).getSmsTemplateDesc());
+        return mv;
+    }
+
+    /**
+     * 根据签名id查询模板
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/get_templates")
+    public ResponseJson getTemplates(HttpServletRequest request,Integer smsSignatureId) throws Exception {
+        ResponseJson responseJson = ResponseJson.getSUCCESS();
+        if (smsSignatureId == null) {
+            return new ResponseJson(500, "未获取到参数!", 500);
+        }
+        //查询签名
+        SmsTemplateInfo smsTemplateInfo = new SmsTemplateInfo();
+        smsTemplateInfo.setSmsSignatureId(smsSignatureId);
+        List<SmsTemplateInfo> templates = salesOrderService.listSmsTemplateInfo(smsTemplateInfo);
+        responseJson.addResponseKeyValue("templates",templates);
+        responseJson.addResponseKeyValue("templatesOne",templates.get(0).getSmsTemplateInfo());
+        responseJson.addResponseKeyValue("templatesDesc",templates.get(0).getSmsTemplateDesc());
+        return responseJson;
+
+    }
+    /**
+     * 根据模板id查询模板
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/get_templatesOne")
+    public ResponseJson getTemplatesOne(HttpServletRequest request,Integer smsTemplateId) throws Exception {
+        ResponseJson responseJson = ResponseJson.getSUCCESS();
+        if (smsTemplateId == null) {
+            return new ResponseJson(500, "未获取到参数!", 500);
+        }
+        //查询签名
+        SmsTemplateInfo smsTemplateInfo = new SmsTemplateInfo();
+        smsTemplateInfo.setSmsTemplateId(smsTemplateId);
+        List<SmsTemplateInfo> templates = salesOrderService.listSmsTemplateInfo(smsTemplateInfo);
+        responseJson.addResponseKeyValue("templates",templates);
+        responseJson.addResponseKeyValue("templatesOne",templates.get(0).getSmsTemplateInfo());
+        responseJson.addResponseKeyValue("templatesDesc",templates.get(0).getSmsTemplateDesc());
+        return responseJson;
+
+    }
+
+    /**
+     * 发送短信
+     *
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("salesOrder:select:sendSms")
+    @RequestMapping("/send_afterSales_sms")
+    public ResponseJson sendAfterSalesSms(HttpServletRequest request, SmsSignatureInfo smsSignatureInfo,SmsTemplateInfo smsTemplateInfo,String phone) throws Exception {
+        if (smsSignatureInfo.getSmsSignatureId() == null || smsTemplateInfo.getSmsTemplateInfo() == null|| phone == null) {
+            return new ResponseJson(500, "未获取到参数!", 500);
+        }
+        //查询签名
+        List<SmsSignatureInfo>  listEmsSignatureInfo = salesOrderService.listSmsSignatureInfo(smsSignatureInfo);
+        StringBuffer text = new StringBuffer(listEmsSignatureInfo.get(0).getSmsSignatureInfo());
+        text.append(smsTemplateInfo.getSmsTemplateInfo());
+        logger.info("给 " + phone + " 手机用户发送售后短信:" + text);
+        String result = smsService.sendOtherCMS(phone.trim(), text.toString());
+
+        if ("SUCCESS".equals(result)) {
+            return new ResponseJson(200, "发送短信成功!", 200);
+        } else {
+            return new ResponseJson(500, "发送短信失败,失败原因:" + result, 500);
+        }
+    }
 }

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

@@ -158,7 +158,7 @@ public class StitchAttrUtil {
      * @return false没有下一页   true 有下一页
      */
     public boolean getLastPage( PagedResult<?> pagedResult){
-        /* 当前页 >= 总页面数目 */
+        // 当前页 >= 总页面数目
         if(pagedResult.getPageNo() >=  pagedResult.getPages()){
             return false;
         }else{

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

@@ -196,6 +196,10 @@
         <!-- scm - 上朵定制 -->
         <typeAlias type="com.iamberry.rst.core.scm.ScmOrderInfo" alias="ScmOrderInfo"/>
         <typeAlias type="com.iamberry.rst.core.scm.ScmOrderItem" alias="ScmOrderItem"/>
+
+		<typeAlias type="com.iamberry.rst.core.order.SmsTemplateInfo" alias="SmsTemplateInfo"/>
+		<typeAlias type="com.iamberry.rst.core.order.SmsSignatureInfo" alias="SmsSignatureInfo"/>
+		<typeAlias type="com.iamberry.rst.core.cm.DownloadProgressInfo" alias="DownloadProgressInfo"/>
 	</typeAliases>
 	<!-- PageHelper -->
 	<plugins>

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

@@ -174,21 +174,28 @@
                 <div class="formControls col-9">
                 </div>
             </div>
-            <div class="row cl" id="salesChannelsSelect">
+            <div class="row cl sales_channel" id="salesChannelsSelect">
                 <input type="hidden" id="companyId" name="companyId" value="" >
                 <input type="hidden" id="storeId" name="storeId" value="" >
                 <label class="form-label col-1 col-sm-1">销售渠道:</label>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                         <select id="selectCompany" class="select" name="">
+                         <select id="selectCompany" class="select  init_company" name="selectCompany">
                          </select>
                      </span>
                 </div>
-                <div class="formControls col-2 col-sm-2">
+                <#--<div class="formControls col-2 col-sm-2">
                     <span class="select-box">
                          <select id="selectStore" class="select" name="">
                          </select>
                      </span>
+                </div>-->
+                <div class="formControls col-2 col-sm-2">
+                    <input id="store_1" name="maktMaktx" class="input-text" list="datalist_1" value="" placeholder="输入店铺关键字或双击" datatype="*1-20" errormsg="请选择销售店铺!" />
+                    <datalist class="select init_store" id="datalist_1">
+
+                    </datalist>
+                    <#--<input type="hidden" id="salesStoreId" name="salesStoreId">-->
                 </div>
             </div>
             <div class="row cl">
@@ -263,7 +270,7 @@
             <div class="row cl" style="position: relative;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>客诉问题:</label>
                 <div class="formControls col-2 col-sm-2"> <span class="select-box">
-				<select name="complaintId" class="select">
+				<select name="complaintId" class="select" id="complaintId">
                     <option value="">请选择问题分类</option>
 					<#--<option value="0">使用操作</option>-->
 					<#--<option value="1">使用操作</option>-->
@@ -754,11 +761,8 @@
 
 <script type="text/javascript" src="${path}/common/lib/webuploader/0.1.5/webuploader.min.js"></script>
 <script type="text/javascript" src="${path}/common/lib/icheck/jquery.icheck.min.js"></script>
-<#--<script type="text/javascript" src="${path}/common/lib/cm.lib/jquery.provincesCity.js"></script>-->
-<#--<script type="text/javascript" src="${path}/common/lib/cm.lib/provincesData.js"></script>-->
-<#--<script type="text/javascript" src="${path}/common/lib/cm.lib/airCity.js"></script>-->
-<#--<script type="text/javascript" src="${path}/common/lib/cm.lib/dimensions.js"></script>-->
 <script type="text/javascript" src="${path}/common/lib/cm.lib/suggest.js"></script>
+<script type="text/javascript" src="${path}/common/js/common/salesChannel.js"></script>
 
 <#--百度富文本编译器-->
 <script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>
@@ -770,11 +774,28 @@
 <script type="text/javascript" charset="utf-8" src="${path}/common/js/customer/customer.js"></script>
 
 <script>
+    $("#store_1").on("input",function(){
+        var $options=$("#datalist_1").children();
+
+        for(var i=0;i<$options.length;i++){
+            if($options.eq(i).val().trim()==$("#store_1").val().trim()){
+                $("#storeId").val($options.eq(i).attr("data-id"));
+                break;
+            }else{
+                $("#storeId").val("");
+            }
+        }
+    });
+
     /*加载TDS地址信息*/
     var addressUlc = init_address($(".init_address"));
 
     var ulcRelationAddress = init_address($(".relation_address"));
 
+    var sc = $(".sales_channel").initSalesChannel();
+    //回显上朵销售渠道
+    sc.options.companyId = 4;
+    setStore("4",null);
     /*是否是修改页面*/
     var isUpdate = false;
 

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

@@ -79,17 +79,27 @@
             <tr>
                 <th width="10">跟进客服:</th>
                 <td width="10" style="font-weight: normal;"><span id="adminName"></span></td>
-                <td width="10"></td>
-                <th width="10">来源入口:</th>
-                <td width="10" style="font-weight: normal;"><span id="customerSourceType"></span></td>
+                <th width="10">处理类型:</th>
+                <td width="10" style="font-weight: normal;"><span id="procMethodName"></span></td>
             </tr>
             <tr>
                 <th width="10">咨询类型:</th>
                 <td width="10" style="font-weight: normal;"><span id="customerCounselType"></span></td>
-                <td width="10"></td>
                 <th width="10">产品类别:</th>
                 <td width="10" style="font-weight: normal;"><span id="typeName"></span></td>
             </tr>
+            <tr>
+                <th width="10">销售公司:</th>
+                <td width="10" style="font-weight: normal;"><span id="companyName"></span></td>
+                <th width="10">店铺:</th>
+                <td width="10" style="font-weight: normal;"><span id="storeName"></span></td>
+            </tr>
+            <tr>
+                <th width="10">来源入口:</th>
+                <td width="10" style="font-weight: normal;"><span id="customerSourceType"></span></td>
+                <th width="10">来源描述:</th>
+                <td width="10" style="font-weight: normal;"><span id="customerSource"></span></td>
+            </tr>
             </thead>
         </table>
 
@@ -102,24 +112,16 @@
         </div>
         <table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
             <thead>
-            <tr>
-                <th width="10">销售公司:</th>
-                <td width="10" style="font-weight: normal;"><span id="companyName"></span></td>
-                <td width="10"></td>
-                <th width="10">店铺:</th>
-                <td width="10" style="font-weight: normal;"><span id="storeName"></span></td>
-            </tr>
+
             <tr>
                 <th width="10">微信昵称:</th>
                 <td width="10" style="font-weight: normal;"><span id="customerWechatName"></span></td>
-                <td width="10"></td>
                 <th width="10">用户姓名:</th>
                 <td width="10" style="font-weight: normal;"><span id="customerName"></span></td>
             </tr>
             <tr>
                 <th width="10">用户电话:</th>
                 <td width="10" style="font-weight: normal;"><span id="customerTel"></span></td>
-                <td width="10"></td>
                 <th width="10"></th>
                 <td width="10" style="font-weight: normal;"><span></span></td>
             </tr>
@@ -135,72 +137,92 @@
         <table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
             <thead>
             <tr>
+                <th width="10">开箱损:</th>
+                <td width="10" style="font-weight: normal;"><span id="customerOutDamaged"></span></td>
+                <th width="10">二次售后:</th>
+                <td width="10" style="font-weight: normal;"><span id="customerSecondaryCustomer"></span></td>
+            </tr>
+            <tr>
                 <th width="10">客诉问题:</th>
                 <td width="10" style="font-weight: normal;"><span id="describeTitle"></span></td>
-                <td width="10"></td>
                 <th width="10">问题描述:</th>
                 <td width="10" style="font-weight: normal;"><span id="questionProfile"></span></td>
             </tr>
             <tr>
                 <th width="10">问题回复:</th>
                 <td width="10" style="font-weight: normal;"><span id="describeContent"></span></td>
-                <td width="10"></td>
                 <th width="10">备注信息:</th>
                 <td width="10" style="font-weight: normal;"><span id="customerDesc"></span></td>
             </tr>
             </thead>
         </table>
+
+        <div class="row cl">
+            <label class="form-label col-3">
+                <div class="tit-2">TDS收集</div>
+            </label>
+            <div class="formControls col-9">
+            </div>
+        </div>
         <table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
             <thead>
-            <tr>
-                <th width="10">
-                    订单信息:
-                </th>
-                <th width="40" style="font-weight: normal;">
-                    <div class="row cl" id="tableHtml">
-                        <div class="formControls col-10 col-sm-10 text-c">
-                            <table class="table table-border table-bg table-bordered" >
-                                <thead>
-                                <tr>
-                                    <th>销售</th>
-                                    <th>订单号</th>
-                                    <th>姓名</th>
-                                    <th>电话</th>
-                                    <th>订单金额</th>
-                                    <th>购买产品</th>
-                                    <th>购买日期</th>
-                                    <th>地址</th>
-                                </tr>
-                                </thead>
-                                <tbody id="salesOrderHtml">
-                                <tr>
-                                    <td id="companyName"></td>
-                                    <td id="salesOrderId"></td>
-                                    <td id="salesAddressName"></td>
-                                    <td id="salesAddressTel"></td>
-                                    <td id="salesPayMoney"></td>
-                                    <td id="salesItem"></td>
-                                    <td id="salesPayTime"></td>
-                                    <td id=""></td>
-                                </tr>
-                                </tbody>
-                            </table>
-                        </div>
-                    </div>
-                </th>
-            </tr>
+                <tr>
+                    <th width="10">所在省份:</th>
+                    <td width="10" style="font-weight: normal;"><span id="customerProvinceName"></span></td>
+                    <th width="10">城市区域:</th>
+                    <td width="10" style="font-weight: normal;"><span id="customerCityName"></span></td>
+                </tr>
+                <tr>
+                    <th width="10">进水TDS:</th>
+                    <td width="10" style="font-weight: normal;"><span id="customerInTDS"></span></td>
+                    <th width="10">出水TDS:</th>
+                    <td width="10" style="font-weight: normal;"><span id="customerOutTDS"></span></td>
+                </tr>
             </thead>
         </table>
-        <table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
+
+        <div class="row cl">
+            <label class="form-label col-3">
+                <div class="tit-2">订单信息</div>
+            </label>
+            <div class="formControls col-9">
+            </div>
+        </div>
+        <table class="table table-border table-bg table-bordered"   id="tableHtml">
             <thead>
             <tr>
-                <th width="10">
-                    处理结果(<span id="customerIsSolve" style="color: red"></span>)
-                    <span id="postage" style="color: red"></span>
-                </th>
+                <th>销售</th>
+                <th>订单号</th>
+                <th>姓名</th>
+                <th>电话</th>
+                <th>订单金额</th>
+                <th>购买产品</th>
+                <th>购买日期</th>
+                <th>地址</th>
             </tr>
             </thead>
+            <tbody id="salesOrderHtml">
+            <tr>
+                <td id="companyName"></td>
+                <td id="salesOrderId"></td>
+                <td id="salesAddressName"></td>
+                <td id="salesAddressTel"></td>
+                <td id="salesPayMoney"></td>
+                <td id="salesItem"></td>
+                <td id="salesPayTime"></td>
+                <td id=""></td>
+            </tr>
+            </tbody>
         </table>
+
+        <div class="row cl">
+            <label class="form-label col-3">
+                <div class="tit-2">处理结果(<span id="customerIsSolve" style="color: red"></span>)</div>
+            </label>
+            <div class="formControls col-9">
+            </div>
+        </div>
+
         <#--<table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
             <thead>
             <tr>
@@ -210,20 +232,6 @@
                 <th width="10">寄送产品:</th>
                 <td width="10" style="font-weight: normal;"><span id="sendprodcue"></span></td>
             </tr>
-            <tr>
-                <th width="10">TDS收集:</th>
-                <td width="10" style="font-weight: normal;"><span id="customerTDS"></span></td>
-                <td width="10"></td>
-                <th width="10">收货地址:</th>
-                <td width="10" style="font-weight: normal;"><div id="sendMergeAddressDiv"><span id="relationSendMergeAddress"></span></div></td>
-            </tr>
-            <tr>
-                <th width="10">客服备注:</th>
-                <td width="10" style="font-weight: normal;"><span id="describeHandleDesc"></span></td>
-                <td width="10"></td>
-                <th width="10"></th>
-                <td width="10" style="font-weight: normal;"></td>
-            </tr>
             </thead>
         </table>-->
 
@@ -242,6 +250,23 @@
             </#if>-->
             </div>
             <div <#if procMethod.procMethodIsBack == 1>class="tabCon"</#if> style="display: none;">
+               <table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
+                    <thead>
+                        <tr>
+                            <th width="10">寄回人姓名:</th>
+                            <td width="10" style="font-weight: normal;"><span id="relationBackName"></span></td>
+                            <th width="10">寄回人电话:</th>
+                            <td width="10" style="font-weight: normal;"><span id="relationBackTel"></span></td>
+                        </tr>
+                        <tr>
+                            <th width="10">寄回地址信息:</th>
+                            <td width="10" style="font-weight: normal;"><span id="relationSendAddress"></span></td>
+                            <th width="10"></th>
+                            <td width="10" style="font-weight: normal;"><span id=""></span></td>
+                        </tr>
+                    </thead>
+                </table>
+
                 <div class="row cl">
                     <div class="formControls col-10 col-sm-10">
                         <table class="table table-border table-bg table-bordered" >
@@ -284,7 +309,7 @@
                 </div>
             </div>
             <div <#if procMethod.procMethodIsBack == 1>class="tabCon"</#if> style="display: none;">
-
+                <span id="postage" style="color: red"></span>
                 <div class="row cl" id="postageInformation">
                     <div class="formControls col-10 col-sm-10">
                         <table class="table table-border table-bg table-bordered" >
@@ -327,95 +352,56 @@
                 </div>
             </div>
             <div <#if procMethod.procMethodIsSend == 1>class="tabCon"</#if>style="display: none;">
-                <table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
-                    <thead>
-                    <tr>
-                        <th width="20">是否寄出:</th>
-                        <td width="10" style="font-weight: normal;">
-                            <div class="radio-box">
-                                <input type="radio" id="tel-10" name="relationSendStatus" value="1" seleType="sendInformation">
-                                <label for="tel-10">未寄出</label>
-                            </div>
-                            <div class="radio-box">
-                                <input type="radio" id="tel-11" name="relationSendStatus" value="2" seleType="sendInformation">
-                                <label for="tel-11">已寄出</label>
-                            </div>
-                            <div class="radio-box">
-                                <input type="radio" id="tel-12" name="relationSendStatus" value="3" seleType="sendInformation">
-                                <label for="tel-12">已收货</label>
-                            </div>
-                        </td>
-                    </tr>
-                    <tr>
-                        <th width="10">Efast订单号:</th>
-                        <td width="10" style="font-weight: normal;">
-                            <span id="relationBackEfastOrderId"></span>
-                        </td>
-                    </tr>
-                    <tr>
-                        <th width="10">收件人姓名:</th>
-                        <td width="10" style="font-weight: normal;">
-                            <span id="relationSendName"></span>
-                        </td>
-                    </tr>
-                    <tr>
-                        <th width="10">收件人手机号:</th>
-                        <td width="10" style="font-weight: normal;">
-                            <span id="relationSendTel"></span>
-                        </td>
-                    </tr>
-                    <tr>
-                        <th width="10">省市县:</th>
-                        <td width="10" style="font-weight: normal;">
-                            <div style="width: 188px;display: inline-block;margin-right: 20px;">
-                                <span class="select-box" style="padding-right: 0px;">
-                                    <select name="provinceNumber" id="provinceNumber" class="select" seleType="sendInformation"></select>
-                                </span>
-                            </div>
-                            <div style="width: 188px;display: inline-block;margin-right: 20px;">
-                                <span class="select-box" style="padding-right: 0px;">
-                                    <select name="cityNumber" id="cityNumber" class="select" seleType="sendInformation"></select>
-                                </span>
-                            </div>
-                            <div style="width: 189px;display: inline-block;">
-                                <span class="select-box" style="padding-right: 0px;">
-                                    <select name="areaNumber" id="areaNumber" class="select" seleType="sendInformation"></select>
-                                    <input type="hidden" id="merge_address" name="merge_address" seleType="sendInformation">
-                                </span>
-                            </div>
-                        </td>
-                    </tr>
-                    <tr>
-                        <th width="10">详细地址:</th>
-                        <td width="10" style="font-weight: normal;">
-                            <span id="relationSendAddress"></span>
-                        </td>
-                    </tr>
-                    <tr>
-                        <th width="10">寄出信息:</th>
-                        <td width="10" style="font-weight: normal;">
-                            <div style="width: 300px;display: inline-block;margin-right: 10px;">
-                                <span class="select-box">
-                                    <select name="relationSendLogisticsCompany" id="relationSendLogisticsCompany" class="select" seleType="sendInformation">
-                                        <#if logisticsInfoList?? &&  (logisticsInfoList?size > 0) >
-                                            <#list logisticsInfoList as logisticsInfo>
-                                                <option value="${logisticsInfo.logisticsRstCode!''}">${logisticsInfo.logisticsName!''}(${logisticsInfo.logisticsRstCode!''})</option>
-                                            </#list>
-                                        </#if>
-                                    </select>
-                                </span>
-                            </div>
-                            <span id="relationSendLogisticsNo"></span>
-                        </td>
-                    </tr>
-                    <tr>
-                        <th width="10">寄出备注:</th>
-                        <td width="10" style="font-weight: normal;">
-                            <span id="relationDesc"></span>
-                        </td>
-                    </tr>
-                    </thead>
-                </table>
+                   <table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
+                       <thead>
+                           <tr>
+                               <th width="20">订单编号</th>
+                               <th width="20">订单状态</th>
+                               <th width="20">发货状态</th>
+                               <th width="20">产品</th>
+                               <th width="20">物流信息</th>
+                           </tr>
+                       </thead>
+                       <tbody>
+                            <#if salesOrderList?? &&  (salesOrderList?size > 0) >
+                                <#list salesOrderList as salesOrder>
+                                    <tr>
+                                        <td>${salesOrder.salesDealCode!''}</td>
+                                        <td>
+                                            <#if salesOrder.salesStatus==0 >
+                                                未确认
+                                            <#elseif salesOrder.salesStatus==1 >
+                                                已确认
+                                            <#elseif salesOrder.salesStatus==3 >
+                                                作废
+                                            </#if>
+                                        </td>
+                                        <td>
+                                            <#if salesOrder.salesShippingStatus==0 >
+                                                未发货
+                                            <#elseif salesOrder.salesShippingStatus==1 >
+                                                已发货
+                                            <#elseif salesOrder.salesShippingStatus==11 >
+                                                通知配货
+                                            </#if>
+                                        </td>
+                                        <td>
+                                            <#if salesOrder.salesOrderItemList?? &&  (salesOrder.salesOrderItemList?size > 0) >
+                                                 <#list salesOrder.salesOrderItemList as salesOrderItem>
+                                                    ${salesOrderItem.itemProductName!''}(${salesOrderItem.itemProductColor!''})*${salesOrderItem.itemNum!''}<br>
+                                                 </#list>
+                                            </#if>
+                                        </td>
+                                        <td>
+                                            ${salesOrder.salesPostFirm!''}<br>
+                                            ${salesOrder.salesPostNum!''}
+                                        </td>
+                                    </tr>
+                                </#list>
+                            </#if>
+                       </tbody>
+                   </table>
+
                 <div class="row cl">
                     <div class="formControls col-2 col-sm-2">
                     </div>
@@ -519,46 +505,62 @@
                     var cmRelation = data.returnMsg.cmRelation;
                     var procMethod = data.returnMsg.procMethod;
 
-                    /*if (customer.customerIsSolve != 1 && customer.customerIsSolve != 2) {*/
-                        /*resultshow(customer.customerIsSolve, customerCommon.relationBackStatus,customerCommon.relationSendStatus,
-                                customerCommon.maintenanceIsRepair,customerCommon.detectState);*/
-                        var postage = '';
-                        var postageMoney = 0;
-                        if (customerCommon.relationBackPostage != null) {
-                            postageMoney = customerCommon.relationBackPostage;
-                        }
-                        switch (customerCommon.relationIsTransfer) {
-                            case 0:
-                                postage = '不需要转账。';
-                                break;
-                            case 1:
-                                postage = '已转账邮费'+postageMoney/100+'元。';
-                                break;
-                            case 2:
-                                postage = '待转账邮费'+postageMoney/100+'元。';
-                                break;
-                        }
-                        $('#postage').html(postage);
-                    /*}*/
+                    var postage = '';
+                    var postageMoney = 0;
+                    if (customerCommon.relationBackPostage != null) {
+                        postageMoney = customerCommon.relationBackPostage;
+                    }
+                    switch (customerCommon.relationIsTransfer) {
+                        case 0:
+                            postage = '不需要转账。';
+                            break;
+                        case 1:
+                            postage = '已转账邮费'+postageMoney/100+'元。';
+                            break;
+                        case 2:
+                            postage = '待转账邮费'+postageMoney/100+'元。';
+                            break;
+                    }
+                    $('#postage').html(postage);
 
                     $('#adminName').html(customer.adminName);
                     var customerSource = '';
                     switch (customer.customerSourceType) {
                         case 1:customerSource = '400电话';break;
                         case 2:customerSource = '微信公众号';break;
-                        case 3:customerSource = customer.customerSource;break;
+                        case 3:customerSource = '其他';break;
                         case 4:customerSource = "QQ群";break;
                         case 5:customerSource = "微信群";break;
                         case 6:customerSource = "个人微信";break;
                         case 7:customerSource = "有赞";break;
                     }
                     $('#customerSourceType').html(customerSource);
+                    $('#customerSource').html(customer.customerSource);
+
                     var customerCounsel = '';
                     switch (customer.customerCounselType) {
                         case 1:customerCounsel = '售前咨询';break;
                         case 2:customerCounsel = '售后咨询';break;
                         case 3:customerCounsel = '其他';break;
                     }
+
+                    var customerOutDamagedHtml = '';
+                    if(customer.customerOutDamaged == 1){
+                        customerOutDamagedHtml = '是';
+                    }else{
+                        customerOutDamagedHtml = '否';
+                    }
+                    $("#customerOutDamaged").html(customerOutDamagedHtml);
+
+                    var customerSecondaryCustomerHtml = '';
+                    if(customer.customerSecondaryCustomer == 1){
+                        customerSecondaryCustomerHtml = '是';
+                    }else{
+                        customerSecondaryCustomerHtml = '否';
+                    }
+                    $("#customerSecondaryCustomer").html(customerSecondaryCustomerHtml);
+
+                    $("#procMethodName").html(cmRelation.procTypeName + "(" + cmRelation.procMethodName +")");
                     $('#customerCounselType').html(customerCounsel);
                     $('#typeName').html(customer.typeName);
                     $('#describeTitle').html(customer.describeTitle);
@@ -575,7 +577,11 @@
                     var txtcustomerIsSolve = procMethod.procMethodName;
 
                     $('#customerIsSolve').html(txtcustomerIsSolve);
-//                    $('#companyName').html(convertUndefinedToEmpty(customer.companyName)+"-"+convertUndefinedToEmpty(customer.storeName));
+
+                    $('#customerProvinceName').html(customer.customerProvinceName);
+                    $('#customerCityName').html(customer.customerCityName + customer.customerDistrictName);
+                    $('#customerInTDS').html(customer.customerInTDS);
+                    $('#customerOutTDS').html(customer.customerOutTDS);
 
                     if(orderList != null && typeof(orderList)!="" &&  orderList.length > 0 ){
                         var salesOrderHtml = "";
@@ -600,6 +606,10 @@
                         $("#tableHtml").hide();
                     }
 
+                    $("#relationBackName").html(cmRelation.relationBackName);
+                    $("#relationBackTel").html(cmRelation.relationBackTel);
+                    $("#relationSendAddress").html(cmRelation.relationSendMergeAddress + " " +cmRelation.relationSendAddress);
+
 //                    $('#salesOrderId').html(salesOrder.salesOrderId);
 //                    $('#salesAddressName').html(salesOrder.salesAddressName);
 //                    $('#salesAddressTel').html(salesOrder.salesAddressTel);
@@ -610,31 +620,31 @@
 //                    })
 //                    $('#salesItem').html(salesItem);
 //                    $('#salesPayTime').html(salesOrder.salesPayTime);
-                    $('#relationSendMergeAddress').html( convertUndefinedToEmpty(cmRelation.relationSendMergeAddress)+"-"+convertUndefinedToEmpty(cmRelation.relationSendAddress));
-                    $('#describeHandleDesc').html(customer.describeHandleDesc);
+//                    $('#relationSendMergeAddress').html( convertUndefinedToEmpty(cmRelation.relationSendMergeAddress)+"-"+convertUndefinedToEmpty(cmRelation.relationSendAddress));
 
-                    if (customerCommon.sendProdcues != null && customerCommon.sendProdcues.length > 0) {
-                        $.each(customerCommon.sendProdcues,function(index,item){
-                            sendprodcue += '<span style="margin-bottom: 10px;display: inline-block;float: left;">' + this.sendProduceName + '*' + this.sendProdcueNumber + '</span>';
-                        })
-                    }
-                    if (customerCommon.sendFittings != null && customerCommon.sendFittings.length > 0) {
-                        $.each(customerCommon.sendFittings,function(index,item){
-                            sendprodcue += '<span style="margin-bottom: 10px;display: inline-block;float: left;">' + this.sendFittingsName + '*' + this.sendFittingNumber + '</span>';
-                        })
-                    }
-                    if (customerCommon.closedProdcues != null && customerCommon.closedProdcues.length > 0) {
-                        $.each(customerCommon.closedProdcues,function(index,item){
-                            closeprodcue += '<span style="margin-bottom: 10px;display: inline-block;float: left;">' + this.closedProductName + '*' + this.closedProdcueNumber + '</span>';
-                        })
-                    }
-                    if (customerCommon.closedFittings != null && customerCommon.closedFittings.length > 0) {
-                        $.each(customerCommon.closedFittings,function(index,item){
-                            closeprodcue += '<span style="margin-bottom: 10px;display: inline-block;float: left;">' + this.closedFittingsName + '*' + this.closedFittingNumber + '</span>';
-                        })
-                    }
-                    $('#sendprodcue').html(sendprodcue+"<br/>");
-                    $('#closeprodcue').html(closeprodcue+"<br/>");
+
+//                    if (customerCommon.sendProdcues != null && customerCommon.sendProdcues.length > 0) {
+//                        $.each(customerCommon.sendProdcues,function(index,item){
+//                            sendprodcue += '<span style="margin-bottom: 10px;display: inline-block;float: left;">' + this.sendProduceName + '*' + this.sendProdcueNumber + '</span>';
+//                        })
+//                    }
+//                    if (customerCommon.sendFittings != null && customerCommon.sendFittings.length > 0) {
+//                        $.each(customerCommon.sendFittings,function(index,item){
+//                            sendprodcue += '<span style="margin-bottom: 10px;display: inline-block;float: left;">' + this.sendFittingsName + '*' + this.sendFittingNumber + '</span>';
+//                        })
+//                    }
+//                    if (customerCommon.closedProdcues != null && customerCommon.closedProdcues.length > 0) {
+//                        $.each(customerCommon.closedProdcues,function(index,item){
+//                            closeprodcue += '<span style="margin-bottom: 10px;display: inline-block;float: left;">' + this.closedProductName + '*' + this.closedProdcueNumber + '</span>';
+//                        })
+//                    }
+//                    if (customerCommon.closedFittings != null && customerCommon.closedFittings.length > 0) {
+//                        $.each(customerCommon.closedFittings,function(index,item){
+//                            closeprodcue += '<span style="margin-bottom: 10px;display: inline-block;float: left;">' + this.closedFittingsName + '*' + this.closedFittingNumber + '</span>';
+//                        })
+//                    }
+//                    $('#sendprodcue').html(sendprodcue+"<br/>");
+//                    $('#closeprodcue').html(closeprodcue+"<br/>");
                     if (sendprodcueshow) {
                         $('#divSendProdcue').show();
                     } else {
@@ -649,8 +659,6 @@
                     if(customer.customerArea != null && customer.customerArea != ""){
                         customerArea = convertUndefinedToEmpty(customer.customerArea)+",";
                     }
-                    $('#customerTDS').html(customerArea+"进水"+
-                            (customer.customerInTDS==undefined?0:customer.customerInTDS)+"ppm"+",出水"+(customer.customerOutTDS==undefined?0:customer.customerOutTDS)+"ppm");
 
                     if (customer.customerIsVisit == 2) {
                         var visitTime = '';
@@ -905,25 +913,25 @@
                 if (data.returnCode == 200) {
                     var relation = data.returnMsg.cmRelation;
                     console.log(relation);
-                    getProvince('provinceNumber');
-                    getCity('cityNumber',relation.provinceNumber);
-                    getDistrict('areaNumber',relation.cityNumber);
-                    $("#relationSendLogisticsCompany option[value='" + relation.relationSendLogisticsCompany + "']").attr("selected","true");
-
-                    $("#provinceNumber option[value='" + relation.provinceNumber + "']").attr("selected","true");
-                    $("#cityNumber option[value='" + relation.cityNumber + "']").attr("selected","true");
-                    $("#areaNumber option[value='" + relation.areaNumber + "']").attr("selected","true");
-                    $('input[name="relationSendStatus"]').each(function(){
-                        if (this.value == relation.relationSendStatus) {
-                            $(this).iCheck('check');
-                        }
-                    });
-                    $('#relationBackEfastOrderId').html(relation.relationBackEfastOrderId);
-                    $('#relationSendName').html(relation.relationSendName);
-                    $('#relationSendTel').html(relation.relationSendTel);
-                    $('#relationSendAddress').html(relation.relationSendAddress);
-                    $('#relationSendLogisticsNo').html(relation.relationSendLogisticsNo);
-                    $('#relationDesc').html(relation.relationDesc);
+                  //  getProvince('provinceNumber');
+                   // getCity('cityNumber',relation.provinceNumber);
+                  //  getDistrict('areaNumber',relation.cityNumber);
+//                    $("#relationSendLogisticsCompany option[value='" + relation.relationSendLogisticsCompany + "']").attr("selected","true");
+
+                 //   $("#provinceNumber option[value='" + relation.provinceNumber + "']").attr("selected","true");
+//                    $("#cityNumber option[value='" + relation.cityNumber + "']").attr("selected","true");
+//                    $("#areaNumber option[value='" + relation.areaNumber + "']").attr("selected","true");
+//                    $('input[name="relationSendStatus"]').each(function(){
+//                        if (this.value == relation.relationSendStatus) {
+//                            $(this).iCheck('check');
+//                        }
+//                    });
+//                    $('#relationBackEfastOrderId').html(relation.relationBackEfastOrderId);
+//                    $('#relationSendName').html(relation.relationSendName);
+//                    $('#relationSendTel').html(relation.relationSendTel);
+//                    $('#relationSendAddress').html(relation.relationSendAddress);
+//                    $('#relationSendLogisticsNo').html(relation.relationSendLogisticsNo);
+//                    $('#relationDesc').html(relation.relationDesc);
                 }
             },
             error: function(XmlHttpRequest, textStatus, errorThrown){

ファイルの差分が大きいため隠しています
+ 86 - 41
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_list.ftl


ファイルの差分が大きいため隠しています
+ 241 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/download_customer.ftl


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

@@ -179,21 +179,22 @@
                 </div>
             </div>
 
-            <div class="row cl" id="salesChannelsSelect" style="">
+            <div class="row cl sales_channel" id="salesChannelsSelect" style="">
                 <input type="hidden" id="companyId" name="companyId" value="<#if customerInfo??>${customerInfo.companyId!''}</#if>">
                 <input type="hidden" id="storeId" name="storeId" value="<#if customerInfo??>${customerInfo.storeId!''}</#if>">
                 <label class="form-label col-1 col-sm-1">销售渠道:</label>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                         <select id="selectCompany" class="select" name="">
+                         <select id="selectCompany" class="select  init_company" name="">
                          </select>
                      </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
-                    <span class="select-box">
-                         <select id="selectStore" class="select" name="">
-                         </select>
-                     </span>
+                    <input id="store_1" name="maktMaktx" class="input-text" list="datalist_1" value="" placeholder="输入店铺关键字或双击" datatype="*1-20" errormsg="请选择销售店铺!" />
+                    <datalist class="select init_store" id="datalist_1">
+
+                    </datalist>
+                <#--<input type="hidden" id="salesStoreId" name="salesStoreId">-->
                 </div>
             </div>
 
@@ -245,7 +246,7 @@
             <div class="row cl" style="position: relative;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>客诉问题:</label>
                 <div class="formControls col-2 col-sm-2"> <span class="select-box">
-				<select name="complaintId" class="select">
+				<select name="complaintId" class="select" id="complaintId">
                     <option value="">请选择问题分类</option>
                     <#list complaintTypeInfoList as complaintTypeInfo>
                         <option value="${complaintTypeInfo.complaintId}" <#if complaintQuestionInfo.complaintId == complaintTypeInfo.complaintId>selected="selected"</#if> >${complaintTypeInfo.complaintClassName}</option>
@@ -254,7 +255,7 @@
 				</span>
                 </div>
                 <div class="formControls col-2 col-sm-2"> <span class="select-box">
-				<select name="smallClassId" id="smallClassId" class="select">
+				<select name="smallClassId" id="smallClassId" class="select" >
                     <option value="">请选择问题分类</option>
                     <#list complaintSmallClassInfoList as complaintSmallClassInfo>
                         <option value="${complaintSmallClassInfo.smallClassId}" <#if complaintQuestionInfo.smallClassId == complaintSmallClassInfo.smallClassId>selected="selected"</#if>>${complaintSmallClassInfo.smallClassName}</option>
@@ -527,7 +528,10 @@
 
             <div class="row cl renewedProduct" id="" style="display: none;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span><span id="relationProduct">寄回产品</span>:</label>
-                <div class="formControls col-9 col-sm-9 text-c" id="produceSelect">
+                    <div class="formControls col-1 col-sm-1">
+                            <button type="button" class="btn btn-primary" id="" onclick="addProduct(1)">添加产品</button>
+                    </div>
+                    <div class="formControls col-9 col-sm-9 text-c" id="produceSelect">
                 </div>
             </div>
 
@@ -580,7 +584,9 @@
 
             <div class="row cl updateProduct" id="" style="display: none;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>寄出产品:</label>
-                <div class="formControls col-9 col-sm-9" ></div>
+                    <div class="formControls col-1 col-sm-1">
+                            <button type="button" class="btn btn-primary" id="" onclick="addProduct(2)">添加产品</button>
+                    </div>
             </div>
 
             <div class="row cl updateProduct" id="" style="display: none;">
@@ -770,12 +776,34 @@
 <script type="text/javascript" charset="utf-8" src="${path}/common/js/customer/customer.js"></script>
 
 <script type="text/javascript">
+    $("#store_1").on("input",function(){
+        var $options=$("#datalist_1").children();
 
+        for(var i=0;i<$options.length;i++){
+            if($options.eq(i).val().trim()==$("#store_1").val().trim()){
+                $("#storeId").val($options.eq(i).attr("data-id"));
+                break;
+            }else{
+                $("#storeId").val("");
+            }
+        }
+    });
     /*加载TDS地址信息*/
     var addressUlc = init_address($(".init_address"));
     //处理方式   地址信息
     var ulcRelationAddress = init_address($(".relation_address"));
 
+    var sc = $(".sales_channel").initSalesChannel();
+
+    //回显销售渠道
+    if($("#companyId").val() != null && $("#companyId").val() != ""){
+        $("#selectCompany").val($("#companyId").val());
+        setStore($("#companyId").val(),$("#storeId").val());
+    }else{
+        //回显上朵销售渠道
+        sc.options.companyId = 4;
+        setStore("4",null);
+    }
     var customerId = "${customerInfo.customerId!''}";
 
     /*是否是修改页面*/
@@ -881,25 +909,61 @@
         /*绑定产品类型选择事件*/
         $("input[name='typeId']").change(function (){
             var typeId = parseInt($(this).val());
+            var typeCompany = parseInt($("input:radio[name='typeId']:checked").attr("typeCompany"));
+            $("#selectCompany").val(typeCompany);
+            $("#companyId").val(typeCompany);
+            var isShowTDS = 2;//是否展示tds 1是 2否
             var isOrder = 1;
             switch (typeId){    //1:Soodo电动牙刷   6:WaterO净水机    7:Aiberle净水机    9 :YULIA净水机
                 case 1:
+                    setStore(typeCompany,null);
                     isOrder = 2;
                     break;
                 case 6:
+                    setStore(typeCompany,null);
                     isOrder = 1;
+                    isShowTDS = 1;
                     break;
                 case 7:
+                    setStore(typeCompany,null);
                     isOrder = 1;
+                    isShowTDS = 1;
                     break;
                 case 9:
+                    setStore(typeCompany,null);
+                    isOrder = 1;
+                    isShowTDS = 1;
+                    break;
+                case 16://诺米克净水机
+                    isOrder = 1;
+                    isShowTDS = 1;
+                    setStore(typeCompany,"73");
+                    break;
+                case 17://花作净水机
                     isOrder = 1;
+                    isShowTDS = 1;
+                    setStore(typeCompany,"75");
                     break;
                 default:
+                    setStore(typeCompany,null);
                     break;
             }
             isNeedSelectOrder = isOrder ;
             initProcessResult(allProcMethodIsBack,allProcMethodIsSend);
+            if(isShowTDS == 1){
+                $("#tdsId").show();
+            }else{
+                $("#tdsId").hide();
+            }
+
+            for(var i=0;i<productTypeArray.length;i++){
+                var array = productTypeArray[i];
+                if(typeId == array[0]){
+                    customerTypeId = array[1];
+                }
+            }
+            $("#complaintId").val(customerTypeId);
+            initComplaintSmallClassInfo(customerTypeId);
         });
 
         /*监听处理结果选择事件*/

+ 114 - 34
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_relation.ftl

@@ -59,9 +59,9 @@
         </div>
         <div <#if procMethod.procMethodIsBack == 1>class="tabCon"</#if> style="display: none;">
             <div class="row cl">
-                <div class="formControls col-2 col-sm-2 text-r">
+                <#--<div class="formControls col-2 col-sm-2 text-r">
                     <strong>寄回信息</strong>
-                </div>
+                </div>-->
                 <div class="formControls col-10 col-sm-10">
                     <table class="table table-border table-bg table-bordered" >
                         <thead>
@@ -343,9 +343,9 @@
                 </div>
             </div>
             <div class="row cl" id="postageInformation" style="display: none;">
-                <div class="formControls col-2 col-sm-2 text-r">
+                <#--<div class="formControls col-2 col-sm-2 text-r">
                     <strong>邮费信息</strong>
-                </div>
+                </div>-->
                 <div class="formControls col-10 col-sm-10">
                 <table class="table table-border table-bg table-bordered" >
                     <thead>
@@ -525,27 +525,32 @@
                 </div>
             </div>
         </div>
+
         <div <#if procMethod.procMethodIsSend == 1>class="tabCon"</#if>style="display: none;">
+
+            <table class="table table-border table-bg table-bordered" style="margin-top: 10px;display: none;" id="sendSalesOrder">
+                <thead>
+                    <tr class="text-c" id="">
+                        <th style="text-align: center;" width="20" >订单号</th>
+                        <th style="text-align: center;" width="20" >收件人信息</th>
+                        <th style="text-align: center;" width="10">状态</th>
+                        <th style="text-align: center;" width="20">物流信息</th>
+                        <th style="text-align: center;" width="30">产品</th>
+                    </tr>
+                </thead>
+                <tbody id="sendSalesOrdertbody">
+                </tbody>
+            </table>
+
             <div class="row cl">
-                <div class="formControls col-2 col-sm-2 text-r">
-                    <strong>是否寄出</strong>
-                </div>
-                <div class="formControls col-10 col-sm-10 skin-minimal">
-                    <div class="radio-box">
-                        <input type="radio" id="tel-10" name="relationSendStatus" value="1" seleType="sendInformation">
-                        <label for="tel-10">未寄出</label>
-                    </div>
-                    <div class="radio-box">
-                        <input type="radio" id="tel-11" name="relationSendStatus" value="2" seleType="sendInformation">
-                        <label for="tel-11">已寄出</label>
-                    </div>
-                    <div class="radio-box">
-                        <input type="radio" id="tel-12" name="relationSendStatus" value="3" seleType="sendInformation">
-                        <label for="tel-12">已收货</label>
-                    </div>
+
+                <div class="formControls col-5 col-sm-5">
+                    <button type="button" class="btn btn-primary" style="background: #32a3d8;color: #fff;" id="" name="" onclick="to_add_order_by_update()">录入寄出订单</button>
                 </div>
             </div>
-            <div class="row cl">
+
+
+           <#-- <div class="row cl">
                 <div class="formControls col-2 col-sm-2 text-r">
                     <strong>Efast订单号</strong>
                 </div>
@@ -627,13 +632,15 @@
                     <div class="formControls col-8 col-sm-8 text-c">
                         <button onClick="update_relation_info(3);" class="btn btn-primary" type="button">确认修改</button>
                     </div>
-                </div>
-            </div>
-        <div <#if procMethod.procMethodIsBack == 1>class="tabCon"</#if>>
+                </div>-->
+        </div>
+
+
+        <div <#if procMethod.procMethodIsBack == 1>class="tabCon"</#if>style="display: none;">
                 <div class="row cl" id="informationInformation">
-                    <div class="formControls col-2 col-sm-2 text-r">
+                    <#--<div class="formControls col-2 col-sm-2 text-r">
                         <strong>收费信息</strong>
-                    </div>
+                    </div>-->
                     <div class="formControls col-10 col-sm-10">
                         <table class="table table-border table-bg table-bordered" >
                             <thead>
@@ -1671,6 +1678,8 @@
         get_cmRelation_info();
         showUpdateSendProduct();
         get_product_type();
+
+        get_customer();
         /*/!* 监听寄回状态按钮 *!/
         $("input[name='renewedBackStatus']").change(function (){
             initBackInfo($(this).val());
@@ -1896,15 +1905,28 @@
                     getCity('cityNumber',relation.provinceNumber);
                     getDistrict('areaNumber',relation.cityNumber);
                     var relationSchedule = '';
-                    switch (relation.relationBackStatus) {
-                        case 1:relationSchedule += '未寄回,';break;
-                        case 2:relationSchedule += '已寄回,';break;
-                        case 3:relationSchedule += '已收货,';break;
+                    if(relation.procMethodIsBack == 1){
+                        switch (relation.relationBackStatus) {
+                            case 1:relationSchedule += '未寄回';break;
+                            case 2:relationSchedule += '已寄回';break;
+                            case 3:relationSchedule += '已收货';break;
+                        }
                     }
-                    switch (relation.relationSendStatus) {
-                        case 1:relationSchedule += '未寄出';break;
-                        case 2:relationSchedule += '已寄出';break;
-                        case 3:relationSchedule += '已收货';break;
+                    if(relation.procMethodIsBack == 1 && relation.procMethodIsSend == 1){
+                        relationSchedule += ',';
+                    }
+                    if(relation.procMethodIsSend == 1) {
+                        switch (relation.relationSendStatus) {
+                            case 1:
+                                relationSchedule += '已发货';
+                                break;
+                            case 0:
+                                relationSchedule += '未发货';
+                                break;
+                            case 11:
+                                relationSchedule += '已通知配货';
+                                break;
+                        }
                     }
 
                     var relationProduct = '';
@@ -2314,6 +2336,64 @@
             }
         })
     }
+
+    /*获取客诉信息*/
+    function get_customer() {
+        $.ajax({
+            cache: true,
+            type: "POST",
+            data: {"customerId":${customerId}},
+            url: "${path}/admin/customer/get_customer",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    var salesOrderList = data.returnMsg.salesOrderList;
+                    if(salesOrderList!=null && salesOrderList.length > 0){
+                        $("#sendSalesOrder").show();
+                    }
+                    for (var i=0;i<salesOrderList.length;i++){
+                        var salesOrder = salesOrderList[i];
+                        var status = '';
+                        if(salesOrder.salesShippingStatus == 0){ //发货状态 0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货) 11(已通知配货,后加)
+                            status = '未发货';
+                        }else if(salesOrder.salesShippingStatus == 1){
+                            status = '已发货';
+                        }else if(salesOrder.salesShippingStatus == 11){
+                            status = '已通知配货';
+                        }
+                        var product = '';
+                        for(var k=0;k<salesOrder.salesOrderItemList.length;k++){
+                            var Item = salesOrder.salesOrderItemList[k];
+                            product += Item.itemProductName+"("+ Item.itemProductColor +")" +"*"+ Item.itemNum;
+                            if(salesOrder.salesOrderItemList.length > 1){
+                                product += "<br>";
+                            }
+                        }
+                        var html = ' <tr class="text-c">'
+                            +'<td>'+ salesOrder.salesDealCode +'</td>'
+                            +'<td>'+ salesOrder.salesAddressName +'<br>'+ salesOrder.salesAddressTel +'</td>'
+                            +'<td>'+ status +'</td>'
+                            +'<td>'+ cufte(salesOrder.salesPostFirm) +'<br>'+ cufte(salesOrder.salesPostNum)
+                            +'</td>'
+                            +'<td>'+ product +'</td>'
+                            +'</tr>';
+                        $("#sendSalesOrdertbody").append(html)
+                    }
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        })
+    }
+
+    /**
+     *到添加订单页面
+     */
+    function to_add_order_by_update(){
+        var customerId = ${customerId};
+        parent.to_add_order(customerId);
+        parent.layer.close(parent.layer.getFrameIndex(window.name));
+    }
 </script>
 </body>
 </html>

+ 23 - 12
watero-rst-web/src/main/webapp/WEB-INF/views/home/pc_index.ftl

@@ -10,22 +10,23 @@
     <link rel="Shortcut Icon" href="/favicon.ico" />
     <#include "/base/index_base.ftl">
     <style>
-        .Hui-aside{top:60px;padding-top: 0;background-color: #32a3d8;}
+        .Hui-aside{top:60px;padding-top: 0;background-color: #292f36;width:138px;}
         .container-fluid{padding: 8px 15px;}
         #Hui-userbar{top:8px;}
-        .Hui-article-box{top:60px;}
-        .navbar{background: #32a3d8;}
+        .Hui-article-box{top:58px;}
+        .navbar{background: #292f36;}
         .navbar-slogan{font-size: 14px;}
         .Hui-aside .menu_dropdown dt{border-bottom: 0;}
-        .Hui-aside .menu_dropdown dt {color: #fff;  background: #32a3d8;  }
-        .Hui-aside .menu_dropdown dt.selected{background: #5fb9e4;color:#fff;border-left: 4px solid #fff;}
-        .Hui-aside .menu_dropdown dt:hover {  color: #f0f0f0;  }
+        .Hui-aside .menu_dropdown dt {color: #fff;  background: #292f36;  }
+        .Hui-aside .menu_dropdown dt.selected{background: #50a2ea;color:#fff;border-left: 4px solid #1f6eb3;}
+        .Hui-aside .menu_dropdown dt:hover {  color: #f0f0f0 !important;  }
         .Hui-aside .menu_dropdown dt .Hui-iconfont {  color: #fff;  }
         .menu_dropdown dt .menu_dropdown-arrow {  color: #fff;  }
-        .Hui-aside .menu_dropdown dd ul{background: #32a3d8;  }
-        .Hui-aside .menu_dropdown li a{color: #fff;}
-        .acrossTab li{color: #ddd;}
-        .acrossTab li.active{color:#fff;}
+        .Hui-aside .menu_dropdown dd ul{background: #292f36;  }
+        .Hui-aside .menu_dropdown li a{color: #94a0b5;}
+        .Hui-aside .menu_dropdown li.active a{color: #50a2ea;}
+        .acrossTab li{color: #999;}
+        .acrossTab li.active{color:#50a2ea;}
     </style>
     <title>售后实时跟踪系统-RST 1.0</title>
     <script language="JavaScript" type="text/javascript">
@@ -37,7 +38,7 @@
 <header class="navbar-wrapper">
     <input type="hidden" id="parent_is_login" value="1" placeholder="用于判断是否存在父级页面!">
     <div class="navbar navbar-fixed-top">
-        <div class="container-fluid cl"> <a class="logo navbar-logo f-l mr-10 hidden-xs" href="#"><img src="${path}/common/images/index/admin-login.png" style="height: 44px"/></a> <a class="logo navbar-logo-m f-l mr-10 visible-xs" href="#">Watero-RST</a>
+        <div class="container-fluid cl"><a class="logo navbar-logo hidden-xs" href="#"><img src="/common/images/index/admin-login.png" style="height: 40px;"></a><a class="logo navbar-logo-m f-l mr-10 visible-xs" href="#">Watero-RST</a>
             <span class="logo navbar-slogan f-l mr-10 hidden-xs"></span>
             <a aria-hidden="false" class="nav-toggle Hui-iconfont visible-xs" href="javascript:;">&#xe667;</a>
             <nav id="Hui-userbar" class="nav navbar-nav navbar-userbar hidden-xs">
@@ -57,10 +58,16 @@
     </div>
 </header>
 <aside class="Hui-aside">
+    <#--<div style="text-align: center;padding:0 0 25px 0;"><a class="logo navbar-logo hidden-xs" href="#"><img src="/common/images/index/admin-login.png" style="height: 50px"></a>
+    </div>-->
     <div class="menu_dropdown bk_2">
         <#list menus as m>
             <dl>
-                <dt><i class="Hui-iconfont">${m.menuIcon}</i> ${m.menuName}<i class="Hui-iconfont menu_dropdown-arrow">&#xe6d5;</i></dt>
+                <dt>
+                    <#--<i class="Hui-iconfont">${m.menuIcon}</i>-->
+                    ${m.menuName}
+                    <#--<i class="Hui-iconfont menu_dropdown-arrow">&#xe6d5;</i>-->
+                </dt>
                 <dd>
                     <ul>
                         <#list m.subMenus as s>
@@ -192,5 +199,9 @@
         $("#iframe_box").append('<div class="show_iframe">' +
                 '<div style="display: none" class="loading"></div><iframe id="indexframe" scrolling="yes" frameborder="0" src="'+url+'"></iframe></div>');
     }
+    $(document).on('click', ' .Hui-aside .menu_dropdown dd li', function() {
+        $(this).addClass("active").siblings().removeClass("active");
+    });
+
 </script>
 </html>

+ 23 - 15
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl

@@ -12,8 +12,8 @@
     <style>
         .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;}
+        .tit-2{position: relative;text-align: left;font-size: 16px;padding-left: 10px;color: #32a3d8;}
+        .tit-2:after{content: '';position: absolute;left: 0;top: 45%;height: 6px;width: 6px;border-radius: 6px;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;}
         .ac_results li a {white-space: nowrap;text-decoration:none;display:block;color:#05a;padding:1px 3px}
         .ac_results li {border:1px solid #fff}
@@ -36,19 +36,19 @@
         .msg-phone{height: 35px;line-height: 35px;}
         .col-sm-1{width: 150px;}
 
-        .all_down{text-decoration: underline;color: #00c;}
+        .all_down{text-decoration: underline;color: #f00;}
     </style>
     <title>添加订单 - 订单管理 - RST</title>
 </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> 添加订单
+    <span class="c-gray en">/</span> 订单管理
+    <span class="c-gray en">/</span> 添加订单
     <a class="btn radius r"
-       style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;"
+       style="margin-top:3px;color: #32a3d8;"
        href="javascript:location.replace(location.href);" title="刷新"><i class="Hui-iconfont">&#xe68f;</i></a>
     <a class="btn radius r"
-       style="line-height:1.6em;margin-top:3px;margin-right: 5px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;"
+       style="margin-top:3px;margin-right: 5px;color: #32a3d8;"
        href="javascript:history.back(-1);" title="后退"><i class="Hui-iconfont">&#xe6d4;</i></a>
 </nav>
 <article class="page-container" style="padding: 10px;">
@@ -73,13 +73,13 @@
                         </select>
 				    </span>
                 </div>
-                <div class="formControls col-2 col-sm-2" id="selectCustomer" style="display: none;">
-                    <input type="button" style="width: 100%;" class="btn btn-primary " onclick="add_customer()" value="选择客诉记录" >
-                </div>
             </div>
             <div class="row cl" id="salesCustomer" style="display: none;">
                 <label class="form-label col-1 col-sm-1"></label>
-                <div class="formControls col-2 col-sm-2" style="margin-left: 15%;width: 100%;color: #c00;">
+                <div class="formControls col-2 col-sm-2" style="margin-left: 11.3%;width: 100%;color: #c00;">
+                    <div class="formControls col-1 col-sm-1" id="selectCustomer" style="display: none;">
+                        <input type="button" style="color: #32a3d8;border: 1px solid #32a3d8;" class="btn" onclick="add_customer()" value="选择客诉">
+                    </div>
                     <span id="salesCustomerIdHtml"></span>
                     <input type="hidden" id="salesCustomerId" name="salesCustomerId" value="">
                 </div>
@@ -186,16 +186,16 @@
 
             <div class="row cl">
                 <label class="form-label col-3">
-                    <div class="tit-2">品信息</div>
+                    <div class="tit-2">品信息</div>
                 </label>
                 <div class="formControls col-9">
                 </div>
             </div>
 
             <div class="row cl" id="" style="">
-                <label class="form-label col-1 col-sm-1">品信息:</label>
+                <label class="form-label col-1 col-sm-1">品信息:</label>
                 <div class="formControls col-8 col-sm-8">
-                    <input type="button" class="btn btn-primary add-order-button" onclick="add_product()" value="添加品" >
+                    <input type="button" style="color: #32a3d8;border: 1px solid #32a3d8;" class="btn add-order-button" onclick="add_product()" value="添加品" >
                     <table class="table table-border table-bg table-bordered" style="margin-top: 10px;display: none" id="all_add_product">
                         <thead>
                             <tr class="text-c" id="table1">
@@ -228,7 +228,7 @@
                 </div>
 
                 <div class="formControls col-2 col-sm-2">
-                    <input type="button" style="width: 100%;" class="btn btn-primary add-order-button" onclick="calculatePrice()" value="计算商品总价" >
+                    <input type="button" style="color: #32a3d8;border: 1px solid #32a3d8;" class="btn add-order-button" onclick="calculatePrice()" value="计算产品总价" >
                 </div>
             </div>
 
@@ -279,6 +279,8 @@
 
 <script type="text/javascript">
 
+    var salesCustomerId = "${salesOrder.salesCustomerId!''}";
+
     $('.skin-minimal input').iCheck({
         checkboxClass: 'icheckbox-blue',
         radioClass: 'iradio-blue',
@@ -286,6 +288,12 @@
     });
     var ulc = initAddress($(".address_info"));
     var sc = $(".sales_channel").initSalesChannel();
+    
+    $(function () {
+       if(isEmpty(salesCustomerId)){
+           setSelectCustomer(salesCustomerId);
+       }
+    })
 
     $("#store_1").on("input",function(){
         var $options=$("#datalist_1").children();

+ 2 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/manual_delivery.ftl

@@ -42,12 +42,13 @@
 
         <div class="input-box"  >
             <span class="input-dic spanhidth" style="margin-top: 5px;margin-left: 110px;">快递单号:</span>
-            <input type="text" class="input-text" style="height: 36px;width: 200px;margin-left: 10px;" value="" placeholder="快递单号" id="salesPostNum" name="salesPostNum">
+            <input type="text" class="input-text" style="height: 36px;width: 200px;margin-left: 10px;" value="<#if orderSalesPostFirm??><#if salesId??><#if orderSalesPostFirm == "02">000000${salesId!''}</#if></#if></#if>" placeholder="快递单号" id="salesPostNum" name="salesPostNum">
         </div>
 
         <div style="text-align:center;" >
         <#if salesId??>
             <input type="hidden" value="${salesId!''}" id="salesId" name="salesId">
+
         </#if>
             <button type="button" class="my-btn-submit" onclick="listSalesPostFirm();">确认发货</button>
         </div>

+ 5 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_detail.ftl

@@ -155,7 +155,9 @@
                         <#--<th>产品图片</th>-->
                         <th>产品市场价(¥)</th>
                         <th>产品折扣价(¥)</th>
-                        <th>产品数量</th>
+                        <th>未退货数量</th>
+                        <th>已退货数量</th>
+                        <th>产品总数</th>
                     </tr>
                     <#if order.salesOrderItemList?? &&  (order.salesOrderItemList?size > 0) >
                         <#list order.salesOrderItemList as item>
@@ -165,6 +167,8 @@
                                 <#--<td>${item.itemProductPic!''}</td>-->
                                 <td>${item.itemProductPrice/100!''}</td>
                                 <td>${item.itemProductDiscount/100!''}</td>
+                                <td>${item.itemNum-item.itemReturnNum}</td>
+                                <td>${item.itemReturnNum}</td>
                                 <td>${item.itemNum}</td>
                             </tr>
                         </#list>

+ 6 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_list.ftl

@@ -111,6 +111,7 @@
                 <input type="text" class="my-input trim_input"  style="margin-top: -3px;width:118px;margin-right: 0px;height: 28px;padding: 0px;" value="${salesOrder.salesAddressInfo!}" placeholder="收货人地址" name="salesAddressInfo" id="salesAddressInfo">
                 <button type="submit" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);height: 30px;" id="">搜索</button>
                 <button type="button" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);height: 30px;" id="order_excel">下载Efast格式订单</button>
+                <#--<button type="button" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);height: 30px;" id="send_sms" onclick="sendEms();">发送售后短信</button>-->
             </div>
         </form>
     </div>
@@ -892,13 +893,17 @@ function isConfirm(salesOrderIds,isSplit) {
          *跳转到更正订单页面
          * @param employee
          */
-        function showAfterrulesInfo(salesId) {
+        function acorrect_order(salesId) {
              window.location.href= "${path}/admin/salesOrder/to_acorrect_order?salesId="+salesId;
         }
 
         function getAfterrulesInfo(salesId){
             layer_show("查看售后信息","${path}/admin/salesOrder/getAfterrulesInfo?salesId="+salesId,'570','450');
         }
+
+        function sendEms(){
+            layer_show("发送短信","${path}/admin/salesOrder/to_sendAfterSalesSms",'670','550');
+        }
     </script>
 </body>
 </html>

+ 186 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/send_sms.ftl

@@ -0,0 +1,186 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
+    <meta http-equiv="Cache-Control" content="no-siteapp"/>
+    <#include "/base/add_base.ftl">
+
+    <style>
+        .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;}
+        .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_results li a span {float:right}
+        .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;}
+        .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;}
+        .msg-phone{height: 35px;line-height: 35px;}
+        .col-sm-1{width: 150px;}
+
+        .all_down{text-decoration: underline;color: #00c;}
+    </style>
+    <title>订单列表 - 发送短信 - RST</title>
+</head>
+<body>
+<article class="page-container" style="padding: 10px;">
+    <div class="pd-20 cl">
+        <form action="${path}/admin/salesOrder/add_salesOrder" method="post" class="form form-horizontal" id="form-order-add"  onkeydown="if(event.keyCode==13)return false;">
+
+            <div class="row cl">
+                <label class="form-label col-3">
+                    <div class="tit-2">发送短信</div>
+                </label>
+                <div class="formControls col-9">
+                </div>
+            </div>
+            <div class="row cl" id="">
+                <label class="form-label col-1 col-sm-1" style="float: left;text-align: right;">客户手机:</label>
+                <div class="formControls col-9 col-sm-9" style="float: left;">
+                    <input type="text" class="input-text" value="" placeholder="填写客户手机" id="phone" name="phone" >
+                </div>
+            </div>
+            <div class="row cl" style="">
+                <label class="form-label col-1 col-sm-1" style="float: left;text-align: right;">短信签名:</label>
+                <div class="formControls col-9 col-sm-9" style="float: left;">
+                    <span class="select-box">
+                        <select class="select" id="smsSignatureId" name="smsSignatureId" >
+                        <#list signatures as signature>
+                            <option value="${signature.smsSignatureId}" >${signature.smsSignatureInfo}</option>
+                        </#list>
+                        </select>
+				    </span>
+                </div>
+            </div>
+            <div class="row cl">
+                <label class="form-label col-1 col-sm-1"style="float: left;text-align: right;">短信模板:</label>
+                <div class="formControls col-9 col-sm-9" style="float: left;">
+                    <span class="select-box">
+                        <select class="select" id="templateId">
+                            <#list templates as template>
+                                <option value="${template.smsTemplateId}" >${template.smsTemplateInfo}</option>
+                            </#list>
+                        </select>
+				    </span>
+                    <span id="spanid" style="color: #8B9496">${templatesOne!''}</span>
+                </div>
+            </div>
+            <div class="row cl" id="" style="">
+                <label class="form-label col-1 col-sm-1"style="float: left;text-align: right;">短信内容:</label>
+                <div class="formControls col-9 col-sm-9"style="float: left;">
+                    <textarea name="smsTemplateInfo" id="smsTemplateInfo" cols="" rows="2"  class="textarea">${templatesOne!''}</textarea>
+                    <span id="spanidtwo" style="color: #8B9496">${templatesDesc!''}</span>
+                </div>
+            </div>
+            <div class="row cl" id="" style="">
+                <label class="form-label col-1 col-sm-1"style="float: left;text-align: right;"></label>
+                <div class="formControls col-5 col-sm-5"style="float: left;">
+                    <button class="btn btn-block btn-primary size-XL" type="button" onclick="send();">确认发送</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</article>
+
+<script type="text/javascript">
+    var url_path = "${path}";
+</script>
+<#--时间控件-->
+<script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
+
+
+<script type="text/javascript">
+    $("#smsSignatureId").change(function (){
+        $.ajax({
+            type:'POST',
+            url: '${path}/admin/salesOrder/get_templates',
+            data:{
+                "smsSignatureId" : $("#smsSignatureId").val()
+            },
+            dataType: 'json',
+            success:function(res) {
+                if(res.resultCode == 200 && res.returnCode == 200){
+                    $("#templateId").empty();
+                    $(res.returnMsg.templates).each(function (){
+                        $("#templateId").append("<option value='"+ this.smsTemplateId +"'>"+ this.smsTemplateInfo +"</option>");
+
+                    });
+                    $("#spanid").html(res.returnMsg.templatesOne);
+                    $("#smsTemplateInfo").html(res.returnMsg.templatesOne);
+                    $("#smsTemplateInfo").val(res.returnMsg.templatesOne);
+                    $("#spanidtwo").html(res.returnMsg.templatesDesc);
+                }
+            }
+        });
+    });
+    $("#templateId").change(function (){
+        $("#smsTemplateInfo").val($("#templateId").find("option:selected").text());
+        $("#spanid").html($("#templateId").find("option:selected").text());
+        $.ajax({
+            type:'POST',
+            url: '${path}/admin/salesOrder/get_templatesOne',
+            data:{
+                "smsTemplateId" : $("#templateId").val()
+            },
+            dataType: 'json',
+            success:function(res) {
+                if(res.resultCode == 200 && res.returnCode == 200){
+                    $("#spanidtwo").html(res.returnMsg.templatesDesc);
+                }
+            }
+        });
+    });
+
+    function send() {
+       var phone = $("#phone").val();
+       var smsSignatureId = $("#smsSignatureId").val();
+       var smsTemplateInfo = $("#smsTemplateInfo").val();
+        //手机验证
+        if(phone == null || phone.length > 20){
+            layer.msg("手机号不能为空或格式错误",{icon: 5,time:3000});
+            return;
+        }
+        if(smsTemplateInfo == null){
+            layer.msg("短信模板不能为空",{icon: 5,time:3000});
+            return;
+        }
+        $.ajax({
+            type:'POST',
+            url: '${path}/admin/salesOrder/send_afterSales_sms',
+            data:{
+                "phone" : phone,
+                "smsSignatureId" : smsSignatureId,
+                "smsTemplateInfo" : smsTemplateInfo
+            },
+            dataType: 'json',
+            success:function(res) {
+                if(res.resultCode == 200 && res.returnCode == 200){
+                    layer.alert("发送成功!");
+                }else{
+                    layer.alert("发送失败!");
+                }
+            }
+        });
+    }
+
+</script>
+</body>
+</html>

BIN
watero-rst-web/src/main/webapp/common/images/cm/select-1.png


BIN
watero-rst-web/src/main/webapp/common/images/index/admin-login.png


BIN
watero-rst-web/src/main/webapp/common/images/pts/select-1.png


BIN
watero-rst-web/src/main/webapp/common/images/pts/select-11.png


BIN
watero-rst-web/src/main/webapp/common/images/pts/select-dw.png


BIN
watero-rst-web/src/main/webapp/common/images/pts/select-up.png


BIN
watero-rst-web/src/main/webapp/common/images/select-1.png


+ 3 - 4
watero-rst-web/src/main/webapp/common/js/common/UnlimitedLevelContact.js

@@ -377,9 +377,8 @@
             return flag;
         },
         ulcCufte:function(val) {
-            if (undefined == val || null == val||typeof val == undefined || typeof val == 'undefined'|| 'undefined' == val) {
+            if (undefined == val || null == val||typeof val == undefined || typeof val == 'undefined'|| 'undefined' == val)
                 val = "";
-            }
             return val;
         },
         /*空值返回false*/
@@ -394,11 +393,11 @@
         var ulc = new UnlimitedLevelContact(this, options);
         ulc.init();
         return ulc;
-    }
+    };
     // 由页面取值填充调用
     $.fn.initUlcByHtml = function(options) {
         var  ulcLevel = new Array();
-        var $selectUlc =  $(this)
+        var $selectUlc =  $(this);
         $(this).find("select").each(function () {
             var $ulc = $(this);
             var obj = new Object();

+ 51 - 255
watero-rst-web/src/main/webapp/common/js/customer/customer.js

@@ -1,7 +1,7 @@
 /**
  * 初始化销售渠道
  */
-getCompany();
+/*getCompany();*/
 /**
  *TDS 城市加载
  *问题回复选择
@@ -12,20 +12,11 @@ getCompany();
 
 /*===============================TDS 城市加载  -- start -- =============================== */
 $(function(){
-
-    // $("#province").ProvinceCity();
     $('.skin-minimal input').iCheck({
         checkboxClass: 'icheckbox-blue',
         radioClass: 'iradio-blue',
         increaseArea: '20%'
     });
-    // $("#arrcity").suggest(citys,{hot_list:commoncitys,dataContainer:'#arrcity_3word',onSelect:function(result){
-    //     console.log($(this)[0].value);
-    //     $("#city2").click()
-    // },
-    //     attachObject:'#suggest'
-    // });
-    // $("#city2").suggest(citys,{hot_list:commoncitys,attachObject:"#suggest2"})
 });
 /*===============================TDS 城市加载  -- start -- =============================== */
 
@@ -174,6 +165,10 @@ var describeHandleDescText = UE.getEditor('describeHandleDescText', {
 
 var isInitSendAddressSms = false;
 
+//产品类型id对应客诉问题分类id
+var productTypeArray = [[1,6],[6,1],[7,1],[9,1],[10,7],[11,8],[12,9],[13,1],[14,1],[15,10],[16,1],[17,1]];
+var customerTypeId=6;   //因为产品类型初始化为上朵牙刷,所以初值为6
+
 // sendAddressSms.ready(function() {
 //     sendAddressSms.setHeight(130);  //固定高度
 // });
@@ -210,18 +205,7 @@ var phoneReg2 = /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]
 
 /*=============================== 页面加载完成启动事件  -- start -- =============================== */
 $(function (){
-    /*监听销售公司选择事件*/
-    $("#selectCompany").change(function (){
-        var companyId = $(this).val();
-        $("#companyId").val(companyId);
-        setStore(companyId,$("#selectStore"));       //获取店铺
-    })
 
-    /*监听店铺选择事件*/
-    $("#selectStore").change(function (){
-        var storeId = $(this).val();
-        $("#storeId").val(storeId);
-    })
 })
 /*===============================页面加载完成启动事件  -- end -- =============================== */
 
@@ -378,34 +362,40 @@ function initProduceType(){
                 var typeCompany = parseInt($("input:radio[name='typeId']:checked").attr("typeCompany"));
                 $("#selectCompany").val(typeCompany);
                 $("#companyId").val(typeCompany);
-                setStore(typeCompany,$("#selectStore"));       //获取店铺
                 var isOrder = 1;
                 var isShowTDS = 2;//是否展示tds 1是 2否
                 switch (typeId){    //1:Soodo电动牙刷   6:WaterO净水机    7:Aiberle净水机    9 :YULIA净水机
                     case 1:
+                        setStore(typeCompany,null);
                         isOrder = 2;
                         break;
                     case 6:
+                        setStore(typeCompany,null);
                         isOrder = 1;
                         isShowTDS = 1;
                         break;
                     case 7:
+                        setStore(typeCompany,null);
                         isOrder = 1;
                         isShowTDS = 1;
                         break;
                     case 9:
+                        setStore(typeCompany,null);
                         isOrder = 1;
                         isShowTDS = 1;
                         break;
-                    case 16:
+                    case 16://诺米克净水机
                         isOrder = 1;
                         isShowTDS = 1;
+                        setStore(typeCompany,"73");
                         break;
-                    case 17:
+                    case 17://花作净水机
                         isOrder = 1;
                         isShowTDS = 1;
+                        setStore(typeCompany,"75");
                         break;
                     default:
+                        setStore(typeCompany,null);
                         break;
                 }
                 isNeedSelectOrder = isOrder ;
@@ -415,7 +405,17 @@ function initProduceType(){
                 }else{
                     $("#tdsId").hide();
                 }
-            })
+
+                for(var i=0;i<productTypeArray.length;i++){
+                    var array = productTypeArray[i];
+                    if(typeId == array[0]){
+                        customerTypeId = array[1];
+                    }
+                }
+               $("#complaintId").val(customerTypeId);
+                initComplaintSmallClassInfo(customerTypeId);
+
+            });
             /*当前第一个默认选中上朵电动牙刷  isNeedSelectOrder = 2  默认不需要选择订单*/
             // isNeedSelectOrder = 2 ;
             // initProcessResult(allProcMethodIsBack,allProcMethodIsSend);
@@ -565,6 +565,11 @@ function initComplaintTypeInfo() {
                 html = '';
             }
             $("[name='complaintId']").html(html);
+
+            if(isEmpty(customerTypeId) ){
+                $("[name='complaintId']").val(customerTypeId);
+            }
+            initComplaintSmallClassInfo(customerTypeId);
         },
         error: function(XmlHttpRequest, textStatus, errorThrown){
         }
@@ -973,7 +978,7 @@ function setSelectOrder(orderId){
             $("#companyId").val(companyId);
             $("#storeId").val(storeId);
             $("#ids").val(orderId);
-            getCompany();
+            /*getCompany();*/
             layer.close(index);
         },
         error: function(XmlHttpRequest, textStatus, errorThrown){
@@ -1006,165 +1011,8 @@ function setAdress(addres){
         }
     }
     ulcRelationAddress.setUlcByName(0,addresList[0],addresList[1],addresList[2]);
-    $("#sendAddress").val(addresList[3]);
-
-
-    // var proId = setPro(getAddress(addresList[0],0),1);
-    // var cityId = setCity(getAddress(addresList[1],1),proId,1);
-    // setDistrict(getAddress(addresList[2],2),cityId,1);
-    // var sendAddress = addresList[3];
-    // if(addresList.length > 4){
-    //     for(var k = 4;k< addresList.length;k++){
-    //         sendAddress += addresList[k];
-    //     }
-    // }
-
-}
-
-/***
- * 删除 “省”,“市”,“区”关键字
- * type : 0:省   2:市   3:区
- */
-function getAddress(addrss,type) {
-    var abbreviation = "";
-    if(addrss == ""){
-        abbreviation = "";
-    }else{
-        switch(type)
-        {
-            case 0:
-                //var proReg = new RegExp("省","g");
-                //abbreviation = addrss.replace(proReg,"");
-                abbreviation = addrss.substring(0,2);
-                break;
-            case 1:
-                var cityReg = new RegExp("市","g");
-                abbreviation = addrss.replace(cityReg,"");
-
-                cityReg = new RegExp("区","g");
-                abbreviation = addrss.replace(cityReg,"");
-                break;
-            case 2:
-                var districtReg = new RegExp("区","g");
-                abbreviation = addrss.replace(districtReg,"");
-
-                districtReg = new RegExp("市","g");
-                abbreviation = abbreviation.replace(districtReg,"");
-                break;
-            default:
-                break;
-        }
-    }
-    return abbreviation
-}
-
-/**
- * 设置省
- * type  1:搜索订单赋值   2:只查询全部,默认第一个
- */
-function setPro(provinceName,type) {
-    var proId = '';
-    var province = listProvince();
-    var selectPro = new Array();
-    if(type == 1){
-        selectPro = listProvince("",provinceName);
-    }
-    if(province!=null){
-        var provinceHtml = ''
-        provinceHtml += '<option value="">请选择省份</option>';
-        for(var i=0;i<province.length;i++){
-            provinceHtml += '<option value="'+ province[i].provinceId +'">'+ province[i].province +'</option>';
-        }
-
-        $("#province").html(provinceHtml);
-
-        if(selectPro != null && selectPro.length > 0 ){
-            proId = selectPro[0].provinceId;
-        }else{
-            proId = province[0].provinceId;
-        }
-        $("#province option[value='" + proId + "']").attr("selected","true");
-    }
-    return proId;
-}
-
-/**
- * 设置市
- * type  1:搜索订单赋值   2:只查询全部,默认第一个
- */
-function setCity(cityName,proId,type) {
-    var cityId = '';
-    var city = listCity(proId,"");
-    var selectCity = new Array();
-    if(type == 1){
-        selectCity = listCity(proId,cityName);
-    }
-
-    if(city!=null){
-        var cityHtml = ''
-        for(var i=0;i<city.length;i++){
-            cityHtml += '<option value="'+ city[i].cityId +'">'+ city[i].city +'</option>';
-        }
-        $("#city").html(cityHtml);
-        if(selectCity != null && selectCity.length > 0 ){
-            cityId = selectCity[0].cityId;
-        }else{
-            cityId = city[0].cityId;
-        }
-        $("#city option[value='" + cityId + "']").attr("selected","true");
-    }
-    return cityId;
-}
-
-/**
- * 设置区
- * type  1:搜索订单赋值   2:只查询全部,默认第一个
- */
-function setDistrict(districtName,cityId,type) {
-    var district = listDistrict(cityId,"");
-    var selectDistrict = new Array();
-    if(type == 1){
-        selectDistrict = listDistrict(cityId,districtName);
-    }
-    if(district!=null){
-        var districtHtml = ''
-        for(var i=0;i<district.length;i++){
-            districtHtml += '<option value="'+ district[i].districtId +'">'+ district[i].district +'</option>';
-        }
-        var disId = "";
-        $("#district").html(districtHtml);
-        if(selectDistrict != null && selectDistrict.length > 0 ){
-            disId = selectDistrict[0].districtId;
-        }else{
-            disId = district[0].districtId;
-        }
-        $("#district option[value='" + disId + "']").attr("selected","true");
-    }
-}
-
-/* TDS收集设置区 */
-var TDSCity = '';
-function linkageSetDistrict(){
-    var arrcity_3word = $("#arrcity_3word").val();
-    var cityName = '北京';
-    for(var i = 0;i<citys.length;i++){
-        for(var j=0;j<citys[i].length;j++){
-            if(j == 0 && arrcity_3word == citys[i][j]){
-                cityName = citys[i][1];
-            }
-        }
-    }
-    TDSCity = cityName;
-    var selectCity = listCity(null,cityName);
-    var cityId = selectCity[0].cityId;
-    var selectDistrict = listDistrict(cityId,"");
-    var html = '';
-    for(var i=0;i<selectDistrict.length;i++){
-        html += '<option value="'+ selectDistrict[i].districtId +'">'+ selectDistrict[i].district +'</option>';
-    }
-    $("#TDSArea").html(html);
-    $("#TDSArea").find("option").eq(0).prop("selected",true);
-    setTDSCollect();
+    var addressInfo = addres.substring(addres.lastIndexOf(addresList[2])+addresList[2].length,addres.length);
+    $("#sendAddress").val(addressInfo);
 }
 
 /**
@@ -1270,46 +1118,8 @@ function TDSLinkage(node,maxNumber,minNumber){
     }
 }
 
-/**
- * 获取销售公司
- */
-function getCompany(companyId){
-    var currentlyCompanyId = $("#companyId").val();
-    if(currentlyCompanyId != null && currentlyCompanyId != ""){
-        companyId = currentlyCompanyId;
-    }
-    $.ajax({
-        type: "get",
-        data: {
-        },
-        url: url_path + "/admin/customer/select_company",
-        success: function(data){
-            if (data.returnCode == 200) {
-                var html = '<option value="">销售公司</option>';
-                for(var i=0;i<data.returnMsg.companyInfoList.length;i++){
-                    var company = data.returnMsg.companyInfoList[i];
-                    html += '<option value="'+ company.companyId +'">'+ company.companyName +'</option>';
-                }
-                $("#selectCompany").html(html);
-
-                if(typeof(companyId) != "undefined"){
-                    $("#selectCompany option[value='" + companyId + "']").attr("selected","true");
-                    setStore(companyId,$("#selectStore"));       //获取店铺
-
-                }
-            }
-        },
-        error: function(XmlHttpRequest, textStatus, errorThrown){
-        }
-    });
-}
-
-/**
- * 展示店铺
- */
-function setStore(companyId,node){
-
-    var html = '<option value="">店铺</option>';
+/*获取销售店铺*/
+function setStore(companyId,storeId){
     $.ajax({
         type: "POST",
         data: {
@@ -1317,19 +1127,24 @@ function setStore(companyId,node){
         },
         url: url_path + "/admin/customer/select_storeInfo",
         success: function(data){
-            var id;
+            $("#datalist_1").empty();    //清空下拉框
             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 = '';
-            }
-            $(node).html(html);
-            var currentlyStoreId = $("#storeId").val();
-            if(currentlyStoreId != null && currentlyStoreId != ""){
-                $("#selectStore option[value='" + currentlyStoreId + "']").attr("selected","true");
+                    if(storeId == null){
+                        if(i == 0){
+                            $("#store_1").val(storeInfo.storeName);
+                            $("#storeId").val(storeInfo.storeId);
+                        }
+                    }
+                    if(storeId == storeInfo.storeId) {
+                        if (storeInfo.storeId == storeId) {
+                            $("#store_1").val(storeInfo.storeName);
+                            $("#storeId").val(storeInfo.storeId);
+                        }
+                    }
+                        $("#datalist_1").append("<option  data-id='"+storeInfo.storeId+"' value='"+ storeInfo.storeName +"'>"+ storeInfo.storeName +"</option>");
+                    }
             }
         },
         error: function(XmlHttpRequest, textStatus, errorThrown){
@@ -1337,6 +1152,7 @@ function setStore(companyId,node){
     });
 }
 
+
 /**
  * 控制展示订单
  *  1:需要有订单    2:不需要有订单
@@ -1345,26 +1161,6 @@ function  opentionSelectOrder(){
     // opentionSelectOrderDiv();
 }
 
-/**
- * 展示订单
- */
-// function opentionSelectOrderDiv(){
-//     if(isNeedSelectOrder == 2 || (allProcMethodIsBack == 2 && allProcMethodIsSend == 2) ){        //不展示
-//         $(".orderHead").hide();
-//         $(".renewedProduct").hide();
-//         $(".updateProduct").hide();
-//     }else{      //展示
-//         $(".orderHead").show();
-//         if(allProcMethodIsBack == 1){
-//             $(".renewedProduct").show();
-//             $(".updateProduct").show();
-//         }else{
-//             $(".renewedProduct").hide();
-//             $(".updateProduct").hide();
-//         }
-//     }
-// };
-
 /*===============================客诉提交  -- start -- =============================== */
 $(function(){
     $("#form-customer-add").Validform({

+ 32 - 5
watero-rst-web/src/main/webapp/common/js/salesOrder/salesOrder.js

@@ -30,7 +30,7 @@ $(function(){
             $("#salesCustomerIdHtml").html("未选择客诉编号!");
         }
     })
-})
+});
 
 $(function(){
     var loadIndex = 0;
@@ -123,17 +123,44 @@ function setSelectCustomer(customerId){
         success: function(data){
             if (data.returnCode == 200 && data.returnMsg.customer != null ) {
                 var customer = data.returnMsg.customer;
+                $("#salesOrderStatus").val(2);
                 $("#salesCustomerIdHtml").html("已经选择客诉记录:"+customer.customerId);
                 $("#salesCustomerId").val(customer.customerId);
-                /*sc.setCompanyId(customer.companyId);
-                sc.setStoreId(customer.storeId);*/
+                sc.setCompanyId(customer.companyId);
+                $("#salesStoreId").val(customer.storeId);
+                $("#store_1").val(customer.storeName);
                 /*设置用户姓名、电话*/
                 $("#salesAddressName").val(customer.customerName);
                 $("#salesAddressTel").val(customer.customerTel);
                 /* 售后订单的支付时间、支付方式默认 */
-                $("#salesPayTime").val(customer.salesTime);
+                var newDate = new Date();
+                var salesTIme = customer.salesTime;
+                if(!isEmpty(customer.salesTime)){
+                    salesTIme = newDate.getFullYear()+"-"+ (newDate.getMonth()+1) + "-" + newDate.getDate();
+                }
+                var time = " "+newDate.getHours()+":"+ newDate.getMinutes()+":" + newDate.getSeconds();
+                $("#salesPayTime").val(salesTIme + time);
                 // sc.setUlcById(0,1,11);
-                // ulc.setUlcByName(0,"省","市","区");
+                 ulc.setUlcById(0,customer.customerProvinceId,customer.customerCityId,customer.customerDistrictId);
+                $("#addressDesc").html(customer.customerSendAddress);
+                $("#salesAddressInfo").val(customer.customerSendAddress);
+
+                var cmRelation = data.returnMsg.cmRelation;
+                if(isEmpty(cmRelation.provinceNumber)){
+                    ulc.setUlcById(0,cmRelation.provinceNumber);
+                }
+                if(isEmpty(cmRelation.cityNumber)){
+                    ulc.setUlcById(1,cmRelation.cityNumber);
+                }
+                if(isEmpty(cmRelation.areaNumber)){
+                    ulc.setUlcById(2,cmRelation.areaNumber);
+                }
+                if(isEmpty(cmRelation.relationSendAddress)){
+                    $("#salesAddressInfo").val(cmRelation.relationSendAddress);
+                }
+                if(data.returnMsg.colorIds != null){
+                    setSelectProduct(data.returnMsg.colorIds);
+                }
             }else{
             }
             $("#salesCustomer").show();

+ 10 - 7
watero-rst-web/src/main/webapp/common/static/h-ui.admin/css/H-ui.admin.css

@@ -18,8 +18,8 @@ h4{line-height:30px}
 
 /*页面框架*/
 .Hui-header{position:absolute;top:0; right:0; left:0;height:44px;z-index:999; padding:0 15px}
-.Hui-aside{position: absolute;top:44px;bottom:0;left:0;padding-top:10px;width:199px;z-index:99;overflow:auto; background-color:#58d1eb;_background-color:#58d1eb;border-right: 1px solid #e5e5e5}
-.Hui-article-box{position: absolute;top:44px;right:0;bottom: 0;left:199px; overflow:hidden; z-index:1; background-color:#fff}
+.Hui-aside{position: absolute;top:44px;bottom:0;left:0;padding-top:10px;width:199px;z-index:99;overflow:auto; background-color:#58d1eb;_background-color:#58d1eb;border-right:0}
+.Hui-article-box{position: absolute;top:44px;right:0;bottom: 0;left:138px; overflow:hidden; z-index:1; background-color:#fff}
 	.Hui-article{position: absolute;top:34px;bottom:0;left:0; right:0;overflow:auto;z-index:1}
 .Hui-container{ padding:45px 0 0}
 .Hui-aside,.Hui-article-box,.dislpayArrow{-moz-transition: all 0.2s ease 0s;-webkit-transition: all 0.2s ease 0s;-ms-transition: all 0.2s ease 0s;-o-transition: all 0.2s ease 0s;transition: all 0.2s ease 0s}
@@ -46,7 +46,7 @@ h4{line-height:30px}
 #Hui-msg .badge{ position:absolute; left:19px; top:4px; font-size:12px; font-weight:normal; padding:1px 5px}
 /*左侧菜单*/
 .Hui-aside .menu_dropdown dl{ margin-bottom:0}
-.Hui-aside .menu_dropdown dt{display:block;line-height:50px;padding-left:15px;cursor:pointer;position:relative;border-bottom: 1px solid #e5e5e5;font-weight:normal}
+.Hui-aside .menu_dropdown dt{display:block;line-height:50px;padding-left:35px;cursor:pointer;position:relative;border-bottom: 1px solid #e5e5e5;font-weight:normal;border-left: 4px solid #292f36;}
 .Hui-aside .menu_dropdown dt .menu_dropdown-arrow{ position:absolute;overflow: hidden; top:0; right:15px;transition-duration:0.3s ;transition-property:all}
 .Hui-aside .menu_dropdown dd{ display:none}
 .Hui-aside .menu_dropdown dt.selected .menu_dropdown-arrow{transform: rotate(180deg)}
@@ -55,13 +55,14 @@ h4{line-height:30px}
 .Hui-aside .menu_dropdown li{line-height:35px;overflow:hidden;zoom:1}
 .Hui-aside .menu_dropdown li a{padding-left:15px; display:block;font-weight: bold; margin:0}
 .Hui-aside .menu_dropdown li a i{ font-weight: normal}
-.Hui-aside .menu_dropdown dd ul{padding:3px 8px}
-.Hui-aside .menu_dropdown dd li{line-height:32px}
-.Hui-aside .menu_dropdown dd li a{line-height:42px;padding-left:26px; border-bottom:none; font-weight:normal}
+.Hui-aside .menu_dropdown dd ul{padding:3px 5px}
+.Hui-aside .menu_dropdown dd li{line-height:32px;text-indent: 0.5em;position: relative;font-size: 12px;}
+.Hui-aside .menu_dropdown dd li.active:after{ content: '';position: absolute;width: 6px;height: 6px;left: 24px;top: 18px;border-radius: 6px;background: #fff;}
+.Hui-aside .menu_dropdown dd li a{line-height:42px;padding-left:28px; border-bottom:none; font-weight:normal}
 .Hui-aside .menu_dropdown li a:hover{text-decoration:none}
 .Hui-aside .menu_dropdown li.current a,.menu_dropdown li.current a:hover{background-color:#89e4f8;}
 /*菜单收缩切换*/
-.dislpayArrow{position: absolute;top: 0;bottom: 0;left:200px;width:0px; height:100%;z-index:10}
+.dislpayArrow{position: absolute;top: 0;bottom: 0;left:138px;width:0px; height:100%;z-index:10}
 .dislpayArrow a{ position:absolute; display:block; width:17px; height:61px;top:50%; margin-top:-30px;outline:none}
 .dislpayArrow a.open{ background-position:0 -61px}
 .dislpayArrow a:hover{ text-decoration:none; background-position:right 0}
@@ -73,6 +74,7 @@ h4{line-height:30px}
 .Hui-tabNav .acrossTab li
 ,.Hui-tabNav .acrossTab li em{background-image:url(../images/acrossTab/acrossTab-2.png)}
 .Hui-tabNav{height:35px; padding-right:75px;overflow:hidden; position:relative;background-color: #FFFFFF; background-repeat: repeat-x; background-position: 0 -175px;}
+.Hui-article-box .Hui-tabNav:after{content: '';position: absolute;left: 0;top: 1px;width: 100%;height: 1px;background: #50a2ea; }
 .Hui-tabNav .acrossTab{ position:absolute; height:26px; line-height:26px; background:none; top:8px; left:0;padding-top:0}
 .Hui-tabNav .acrossTab li{height:26px;line-height:26px;}
 .Hui-tabNav .acrossTab li em{ right:-16px; height: 26px; width: 16px}
@@ -83,6 +85,7 @@ h4{line-height:30px}
 
 /*面包屑导航*/
 .breadcrumb{background-color:#fff; padding:0 20px; position:relative; z-index:99;color: #333;}
+.breadcrumb .btn{ line-height: 1.2em;margin-top: 3px;background: #fff;color: #32a3d8;border: 1px solid #fff;font-size: 1.2rem;}
 @media (max-width: 767px) {
 	.breadcrumb{ padding:0 15px;}
 	.show_iframe{-webkit-overflow-scrolling: touch;overflow-y: scroll;}

BIN
watero-rst-web/src/main/webapp/common/static/h-ui.admin/images/acrossTab/acrossTab-2.png


BIN
watero-rst-web/src/main/webapp/common/static/h-ui.admin/skin/default/icon_arrow.png


+ 1 - 1
watero-rst-web/src/main/webapp/common/static/h-ui.admin/skin/default/skin.css

@@ -7,7 +7,7 @@ a{color:#333}a:hover,a:focus,.maincolor,.maincolor a{color:#06c}
 	.navbar-logo:hover,.navbar-logo-m:hover{color:#fff;text-decoration: none}
 	
 .navbar-nav > ul > li, .navbar-nav > ul > li > a{ color:#fff}/*顶部导航文字颜色*/
-.navbar-userbar > ul> > li,.navbar-userbar > ul> > li > a{ color:#fff}
+.navbar-userbar > ul> > li,.navbar-userbar > ul> > li > a{ color:#666}
 
 .Hui-aside{}/*侧边栏*/
 	.Hui-aside .menu_dropdown dt{color:#333}/*左侧二级导航菜单*/

ファイルの差分が大きいため隠しています
+ 1 - 1
watero-rst-web/src/main/webapp/common/static/h-ui/css/H-ui.min.css


BIN
watero-rst-web/src/main/webapp/common/static/h-ui/images/acrossTab/acrossTab-close.png