Pārlūkot izejas kodu

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

# Conflicts:
#	watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
wangxiaoming 7 gadi atpakaļ
vecāks
revīzija
62dc454b90
19 mainītis faili ar 795 papildinājumiem un 326 dzēšanām
  1. 42 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java
  2. 70 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java
  3. 2 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java
  4. 5 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/AwaitingSignclosedProductInfoService.java
  5. 3 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/ComplaintSignclosedInfoService.java
  6. 10 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java
  7. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/AwaitingSignclosedProductInfoServiceImpl.java
  8. 51 7
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/ComplaintSignclosedInfoServiceImpl.java
  9. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/AwaitingSignclosedProductMapper.java
  10. 21 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/awaitingSignclosedProductMapper.xml
  11. 4 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintSignclosedInfoMapper.xml
  12. 12 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml
  13. 24 6
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  14. 76 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminSignclosedController.java
  15. 170 299
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_detail.ftl
  16. 2 3
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_list.ftl
  17. 1 1
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/add_signclosed.ftl
  18. 287 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/complete_signclosed.ftl
  19. 5 2
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/signclosed_list.ftl

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

@@ -1,7 +1,9 @@
 package com.iamberry.rst.core.cm;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * wxm 客诉处理公共类
@@ -65,6 +67,46 @@ public class CustomerCommon implements Serializable {
     private Date relationCreateTime;
     // 修改时间,
     private Date relationUpdateTime;
+    //售后寄出产品表
+    private List<SendProdcue> sendProdcues = new ArrayList<SendProdcue>();
+    //售后寄出产品配件表
+    private List<SendFitting> sendFittings = new ArrayList<SendFitting>();
+    //售后寄回产品表
+    private List<ClosedProdcue> closedProdcues = new ArrayList<ClosedProdcue>();
+    //售后寄回产品配件表
+    private List<ClosedFitting> closedFittings = new ArrayList<ClosedFitting>();
+
+    public List<SendProdcue> getSendProdcues() {
+        return sendProdcues;
+    }
+
+    public void setSendProdcues(List<SendProdcue> sendProdcues) {
+        this.sendProdcues = sendProdcues;
+    }
+
+    public List<SendFitting> getSendFittings() {
+        return sendFittings;
+    }
+
+    public void setSendFittings(List<SendFitting> sendFittings) {
+        this.sendFittings = sendFittings;
+    }
+
+    public List<ClosedProdcue> getClosedProdcues() {
+        return closedProdcues;
+    }
+
+    public void setClosedProdcues(List<ClosedProdcue> closedProdcues) {
+        this.closedProdcues = closedProdcues;
+    }
+
+    public List<ClosedFitting> getClosedFittings() {
+        return closedFittings;
+    }
+
+    public void setClosedFittings(List<ClosedFitting> closedFittings) {
+        this.closedFittings = closedFittings;
+    }
 
     public Integer getRelationId() {
         return relationId;

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

@@ -1,5 +1,8 @@
 package com.iamberry.rst.core.cm;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -48,6 +51,7 @@ public class CustomerInfo  implements Serializable {
 
     private String productName;         //客诉产品
     private String complaintClassName;  //客诉类型名称
+    private String questionProfile;     //问题回复
     private Integer complaintId;        //客诉类型id
     private String smallClassName;      //客诉小类名称
     private String describeTitle;       //客诉问题标题
@@ -61,7 +65,73 @@ public class CustomerInfo  implements Serializable {
     private Integer backStatus;         //寄回状态
     private Integer sendStatus;         //寄送状态
     private Integer visitStatus;        //回访状态
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date visitCompleteDate;     //回访完成时间
+    private String visitName;           //回访人姓名
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
+    private Date visitDate;             //回访时间
+    private Integer visitTimeSelect;    //回访时间选择
+    private String visitCompleteName;   //回访联系人
+    private String visitCompleteTel;    //回访联系电话
+    private String describeHandleDesc;  //处理描述
+
+    public Date getVisitDate() {
+        return visitDate;
+    }
+
+    public void setVisitDate(Date visitDate) {
+        this.visitDate = visitDate;
+    }
+
+    public String getVisitName() {
+        return visitName;
+    }
+
+    public void setVisitName(String visitName) {
+        this.visitName = visitName;
+    }
+
+    public Integer getVisitTimeSelect() {
+        return visitTimeSelect;
+    }
+
+    public void setVisitTimeSelect(Integer visitTimeSelect) {
+        this.visitTimeSelect = visitTimeSelect;
+    }
+
+    public String getVisitCompleteName() {
+        return visitCompleteName;
+    }
+
+    public void setVisitCompleteName(String visitCompleteName) {
+        this.visitCompleteName = visitCompleteName;
+    }
+
+    public String getVisitCompleteTel() {
+        return visitCompleteTel;
+    }
+
+    public void setVisitCompleteTel(String visitCompleteTel) {
+        this.visitCompleteTel = visitCompleteTel;
+    }
+
+    public String getDescribeHandleDesc() {
+        return describeHandleDesc;
+    }
+
+    public void setDescribeHandleDesc(String describeHandleDesc) {
+        this.describeHandleDesc = describeHandleDesc;
+    }
+
+    public String getQuestionProfile() {
+        return questionProfile;
+    }
+
+    public void setQuestionProfile(String questionProfile) {
+        this.questionProfile = questionProfile;
+    }
 
     private Visit visit = new Visit();  //回访
 

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

@@ -36,6 +36,8 @@ public class SalesOrder implements Serializable {
     private Integer salesWaitMoney;         //待付金额
     private Integer salesLastMoney;         //本次支付金额
     private Integer salesShippingFee;       //邮费
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date salesPayTime;              //支付时间
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")

+ 5 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/AwaitingSignclosedProductInfoService.java

@@ -29,4 +29,9 @@ public interface AwaitingSignclosedProductInfoService {
      * @return
      */
     int updateById(AwaitingSignclosedProductInfo record);
+
+    /**
+     * 根据签收id获取多个待签收产品
+     */
+    List<AwaitingSignclosedProductInfo> listBySignclosedId(Integer signclosedId);
 }

+ 3 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/ComplaintSignclosedInfoService.java

@@ -30,7 +30,9 @@ public interface ComplaintSignclosedInfoService {
      * 修改单个签收记录
      * @return
      */
-    int updateSignclosedById(ComplaintSignclosedInfo record);
+    boolean updateSignclosedById(ComplaintSignclosedInfo record,
+                             Map<String,Integer> alreadyColorMap,
+                             Map<String,Integer> alreadyFittingsMap);
 
     /**
      * 增加催促次数

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

@@ -4,6 +4,7 @@ import com.iamberry.rst.core.cm.*;
 import com.iamberry.rst.core.page.PagedResult;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 客诉基本信息
@@ -43,7 +44,7 @@ public interface CustomerService {
      * @param customerInfo
      * @return
      */
-    CustomerCommon getCustomerInfo(CustomerInfo customerInfo);
+    Map<String,Object> getCustomerInfo(CustomerInfo customerInfo);
 
     /**
      * 获取售后退货信息
@@ -58,4 +59,12 @@ public interface CustomerService {
      * @return
      */
     Reissue getReissue(Reissue reissue);
+
+    /**
+     * 查询寄回和寄出的产品和配件信息
+     * @param customerCommon
+     * @param isSolve
+     * @return
+     */
+    CustomerCommon selectProdcueAndFitting(CustomerCommon customerCommon, int isSolve);
 }

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/AwaitingSignclosedProductInfoServiceImpl.java

@@ -32,4 +32,9 @@ public class AwaitingSignclosedProductInfoServiceImpl implements AwaitingSignclo
     public int updateById(AwaitingSignclosedProductInfo record) {
         return awaitingSignclosedProductMapper.updateById(record);
     }
+
+    @Override
+    public List<AwaitingSignclosedProductInfo> listBySignclosedId(Integer signclosedId) {
+        return awaitingSignclosedProductMapper.listBySignclosedId(signclosedId);
+    }
 }

+ 51 - 7
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/ComplaintSignclosedInfoServiceImpl.java

@@ -74,8 +74,8 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
                     awaitingSignclosedInfo.setProductName(fittingsInfo.getFittingsName());
                     awaitingSignclosedInfo.setProductNum(entry.getValue());
                     awaitingSignclosedInfo.setSignclosedProductType(2);
-                    awaitingSignclosedInfo.setSignclosedProductId(fittingsInfo.getProductId());
-                    awaitingSignclosedInfo.setSignclosedProductColor(Integer.valueOf(entry.getKey()));
+                    awaitingSignclosedInfo.setSignclosedProductId(fittingsInfo.getFittingsId());
+                    awaitingSignclosedInfo.setSignclosedProductColor(null);
                     awaitingSignclosedInfo.setSignclosedCreateTime(new Date());
                     awaitingSignclosedProductMapper.insert(awaitingSignclosedInfo);
                 }
@@ -110,8 +110,8 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
                     signclosedProductInfo.setProductName(fittingsInfo.getFittingsName());
                     signclosedProductInfo.setProductNum(entry.getValue());
                     signclosedProductInfo.setSignclosedProductType(2);
-                    signclosedProductInfo.setSignclosedProductId(fittingsInfo.getProductId());
-                    signclosedProductInfo.setSignclosedProductColor(Integer.valueOf(entry.getKey()));
+                    signclosedProductInfo.setSignclosedProductId(fittingsInfo.getFittingsId());
+                    signclosedProductInfo.setSignclosedProductColor(null);
                     signclosedProductInfo.setSignclosedCreateTime(new Date());
                     complaintSignclosedProductInfoMapper.insert(signclosedProductInfo);
                 }
@@ -146,10 +146,54 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
     public ComplaintSignclosedInfo getSignclosedById(Integer signclosedId) {
         return complaintSignclosedInfoMapper.getSignclosedById(signclosedId);
     }
-
+    @Transactional
     @Override
-    public int updateSignclosedById(ComplaintSignclosedInfo record) {
-        return complaintSignclosedInfoMapper.updateSignclosedById(record);
+    public boolean updateSignclosedById(ComplaintSignclosedInfo record,
+                                    Map<String,Integer> alreadyColorMap,
+                                    Map<String,Integer> alreadyFittingsMap) {
+        boolean msg = true;
+        int num = complaintSignclosedInfoMapper.updateSignclosedById(record);
+        if(num < 1){
+            msg = false;
+        }else{
+            if(alreadyColorMap != null || alreadyColorMap.size() != 0){
+                for (Map.Entry<String,Integer> entry : alreadyColorMap.entrySet()) {
+                    SignclosedProductInfo signclosedProductInfo = new SignclosedProductInfo();
+                    //根据颜色id获取产品信息获取产品信息
+                    Product product = productMapper.getProductById(Integer.valueOf(entry.getKey()));
+                    if(product == null){
+                        return false;
+                    }
+                    signclosedProductInfo.setSignclosedId(record.getSignclosedId());
+                    signclosedProductInfo.setProductName(product.getProductName());
+                    signclosedProductInfo.setProductNum(entry.getValue());
+                    signclosedProductInfo.setSignclosedProductType(1);
+                    signclosedProductInfo.setSignclosedProductId(product.getProductId());
+                    signclosedProductInfo.setSignclosedProductColor(Integer.valueOf(entry.getKey()));
+                    signclosedProductInfo.setSignclosedCreateTime(new Date());
+                    complaintSignclosedProductInfoMapper.insert(signclosedProductInfo);
+                }
+            }
+            if(alreadyFittingsMap != null || alreadyFittingsMap.size() != 0){
+                for (Map.Entry<String,Integer> entry : alreadyFittingsMap.entrySet()) {
+                    SignclosedProductInfo signclosedProductInfo = new SignclosedProductInfo();
+                    //根据配件id获取配件信息
+                    FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById(Integer.valueOf(entry.getKey()));
+                    if(fittingsInfo == null){
+                        return false;
+                    }
+                    signclosedProductInfo.setSignclosedId(record.getSignclosedId());
+                    signclosedProductInfo.setProductName(fittingsInfo.getFittingsName());
+                    signclosedProductInfo.setProductNum(entry.getValue());
+                    signclosedProductInfo.setSignclosedProductType(2);
+                    signclosedProductInfo.setSignclosedProductId(fittingsInfo.getFittingsId());
+                    signclosedProductInfo.setSignclosedProductColor(null);
+                    signclosedProductInfo.setSignclosedCreateTime(new Date());
+                    complaintSignclosedProductInfoMapper.insert(signclosedProductInfo);
+                }
+            }
+        }
+        return msg;
     }
 
     @Override

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/AwaitingSignclosedProductMapper.java

@@ -29,4 +29,9 @@ public interface AwaitingSignclosedProductMapper {
      * @return
      */
     int updateById(AwaitingSignclosedProductInfo record);
+    /**
+     * 根据签收id获取多个待签收产品
+     */
+    List<AwaitingSignclosedProductInfo> listBySignclosedId(Integer signclosedId);
+
 }

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

@@ -72,4 +72,25 @@
     </set>
     where product_id = #{productId,jdbcType=INTEGER}
   </update>
+
+
+
+  <select id="listBySignclosedId" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+    SELECT
+      sp.product_id productId,
+      sp.signclosed_id signclosedId,
+      sp.product_name productName,
+      sp.product_num productNum,
+      sp.signclosed_create_time signclosedCreateTime,
+      sp.signclosed_update_time signclosedUpdateTime,
+      sp.signclosed_product_type signclosedProductType,
+      sp.signclosed_product_id signclosedProductId,
+      sp.signclosed_product_color signclosedProductColor,
+      pc.color_name colorName
+      FROM
+      tb_rst_complaint_awaiting_signclosed_product sp
+      LEFT JOIN tb_rst_product_color pc on sp.signclosed_product_color = pc.color_id
+      WHERE
+      signclosed_id = #{signclosedId}
+  </select>
 </mapper>

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

@@ -70,7 +70,7 @@
     <collection property="awaitingSignclosedProductInfoList" column="SIGNCLOSED_ID" ofType="AwaitingSignclosedProductInfo" select="listAwaitingSignclosedById"/>
     <collection property="signclosedProductInfoList" column="SIGNCLOSED_ID" ofType="SignclosedProductInfo" select="listSignclosedById"/>
   </resultMap>
-  <select id="listAwaitingSignclosedById" resultType="AwaitingSignclosedProductInfo" parameterType="String" >
+  <select id="listAwaitingSignclosedById" resultType="AwaitingSignclosedProductInfo" parameterType="Integer" >
     select
     sp.product_id productId,
     sp.signclosed_id signclosedId,
@@ -87,10 +87,10 @@
     tb_rst_complaint_awaiting_signclosed_product sp
     LEFT JOIN tb_rst_product_color pc on sp.signclosed_product_color = pc.color_id
     LEFT JOIN tb_rst_product_info pi on sp.signclosed_product_id = pi.product_id
-    where signclosed_id = #{signclosedId}
+    where sp.signclosed_id = #{signclosedId}
   </select>
 
-  <select id="listSignclosedById" resultType="SignclosedProductInfo" parameterType="String" >
+  <select id="listSignclosedById" resultType="SignclosedProductInfo" parameterType="Integer" >
     select
     sp.product_id productId,
     sp.signclosed_id signclosedId,
@@ -107,7 +107,7 @@
     tb_rst_complaint_signclosed_product sp
     LEFT JOIN tb_rst_product_color pc on sp.signclosed_product_color = pc.color_id
     LEFT JOIN tb_rst_product_info pi on sp.signclosed_product_id = pi.product_id
-    where signclosed_id = #{signclosedId}
+    where sp.signclosed_id = #{signclosedId}
   </select>
   <select id="listSignclosed" resultMap="complaintSignclosedInfoMap" parameterType="ComplaintSignclosedInfo" >
     SELECT

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

@@ -42,7 +42,7 @@
   <select id="listCustomer" parameterType="CustomerInfo" resultType="CustomerInfo">
     select
       c.customer_id customerId,
-      c.customer_source_type customerSourceType,
+      c.customer_counsel_type customerCounselType,
       a.admin_name adminName,
       c.customer_name customerName,
       c.customer_tel customerTel,
@@ -62,7 +62,14 @@
       c.customer_create_time customerCreateTime,
       v.visit_status visitStatus,
       v.visit_complete_date visitCompleteDate,
-      cd.detect_state detectState
+      v.visit_name visitName,
+      v.visit_date visitDate,
+      v.visit_time_select visitTimeSelect,
+      v.visit_complete_name visitCompleteName,
+      v.visit_complete_tel visitCompleteTel,
+      cd.detect_state detectState,
+      q.question_profile questionProfile,
+      d.describe_handle_desc describeHandleDesc
     from
       tb_rst_customer_info c
     LEFT JOIN tb_rst_question_describe d ON c.customer_id = d.customer_id
@@ -97,6 +104,9 @@
       <if test="adminId != null and adminId != ''">
         and c.admin_id = #{adminId}
       </if>
+      <if test="customerId != null and customerId != ''">
+        and c.customer_id = #{customerId}
+      </if>
     </where>
   </select>
 

+ 24 - 6
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -24,6 +24,7 @@ import org.springframework.web.servlet.ModelAndView;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Created by wxm
@@ -220,20 +221,37 @@ public class AdminCustomerController {
      * @return
      * @throws Exception
      */
+    @RequiresPermissions("customer:select:customer")
+    @RequestMapping("/_customer_info")
+    public ModelAndView toCustomerInfo(HttpServletRequest request) throws Exception {
+        ModelAndView mv = new ModelAndView("cm/customer/custome_detail");
+        String customerId = request.getParameter("customerId");
+        mv.addObject("customerId",customerId);
+        return mv;
+    }
+
+    /**
+     * 查询客诉基本信息
+     * @param request
+     * @return
+     * @throws Exception
+     */
     @ResponseBody
     @RequiresPermissions("customer:select:customer")
     @RequestMapping("/get_customer_info")
-    public ModelAndView getCustomerInfo(HttpServletRequest request) throws Exception {
-        ModelAndView mv = new ModelAndView("cm/customer/custome_detail");
+    public ResponseJson getCustomerInfo(HttpServletRequest request) throws Exception {
         String customerId = request.getParameter("customerId");
         if (!StringUtils.isNotEmpty(customerId)) {
-            return mv;
+            return new ResponseJson(500, "该客诉信息不存在!", 500);
         }
         CustomerInfo customerInfo = new CustomerInfo();
         customerInfo.setCustomerId(Integer.parseInt(customerId));
-        CustomerCommon customerCommon = customerService.getCustomerInfo(customerInfo);
-        mv.addObject("customerCommon",customerCommon);
-        return mv;
+        Map<String,Object> map = customerService.getCustomerInfo(customerInfo);
+        ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
+        rj.addResponseKeyValue("customerCommon",map.get("customerCommon"));
+        rj.addResponseKeyValue("customer",map.get("customer"));
+        rj.addResponseKeyValue("salesOrder",map.get("salesOrder"));
+        return rj;
     }
 
     /**

+ 76 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminSignclosedController.java

@@ -4,6 +4,7 @@ import com.iamberry.rst.core.cm.*;
 import com.iamberry.rst.core.order.Product;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.faces.cm.AwaitingSignclosedProductInfoService;
 import com.iamberry.rst.faces.cm.ComplaintDetectInfoService;
 import com.iamberry.rst.faces.cm.ComplaintSignclosedInfoService;
 import com.iamberry.rst.faces.cm.FittingsInfoService;
@@ -45,6 +46,8 @@ public class AdminSignclosedController {
     private FittingsInfoService fittingsInfoService;
     @Autowired
     private ComplaintSignclosedInfoService complaintSignclosedInfoService;
+    @Autowired
+    private AwaitingSignclosedProductInfoService awaitingSignclosedProductInfoService;
     /**
      * 跳转到添加签收记录页面
      *
@@ -167,5 +170,78 @@ public class AdminSignclosedController {
         return msg;
     }
 
+    /**
+     * 跳转到完成签收记录页面
+     *
+     * @return
+     */
+    @RequiresPermissions("signclosed:update:signclosed")
+    @RequestMapping(value = "/to_complete_signclosed")
+    public ModelAndView toCompleteDetect(HttpServletRequest request,Integer signclosedId) {
+        ModelAndView mv = new ModelAndView("cm/signclosed/complete_signclosed");
+        //获取所有待收产品及其颜色,配件
+        if(signclosedId == null){
+            return mv;
+        }
+        ComplaintSignclosedInfo complaintSignclosedInfo = complaintSignclosedInfoService.getSignclosedById(signclosedId);
+        List<AwaitingSignclosedProductInfo> signclosedList = awaitingSignclosedProductInfoService.listBySignclosedId(signclosedId);
+        mv.addObject("signclosedList",signclosedList);
+        mv.addObject("complaintSignclosedInfo",complaintSignclosedInfo);
+        return mv;
+    }
+
+
+    /**
+     * 完成签收信息
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("signclosed:update:signclosed")
+    @ResponseBody
+    @RequestMapping("/complete_signclosed")
+    public ResponseJson completeSignclosed(HttpServletRequest request,ComplaintSignclosedInfo signclosedInfo) throws Exception {
+        ResponseJson msg = new ResponseJson();
+        if(signclosedInfo == null){
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+            return msg;
+        }
+
+
+        /**签收产品**/
+        String[] alreadyColorName = request.getParameterValues("alreadyColorName");
+        String[] alreadyFittingsName = request.getParameterValues("alreadyFittingsName");
+
+        Map<String,Integer> alreadyColorMap = new HashMap<>();
+        if(alreadyColorName != null && alreadyColorName.length> 0){
+            for (int i = 0;i<alreadyColorName.length;i++){
+                alreadyColorMap.put(alreadyColorName[i],Integer.valueOf(request.getParameter("alreadyColorId"+alreadyColorName[i])));
+            }
+        }
+        Map<String, Integer> alreadyFittingsMap = new HashMap<>();
+        if(alreadyFittingsName != null && alreadyFittingsName.length> 0) {
+            for (int i = 0; i < alreadyFittingsName.length; i++) {
+                alreadyFittingsMap.put(alreadyFittingsName[i], Integer.valueOf(request.getParameter("alreadyFittingsId" + alreadyFittingsName[i])));
+            }
+        }
+        String signclosedDate = request.getParameter("signclosed_date");
+        if(signclosedDate != null){
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+            signclosedInfo.setSignclosedDate(format.parse(signclosedDate));
+        }
+        signclosedInfo.setSignclosedState(1);
+        boolean num = complaintSignclosedInfoService.updateSignclosedById(signclosedInfo,alreadyColorMap,alreadyFittingsMap);
+
+
+        if (!num) {
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+        } else {
+            msg.setResultCode(200);
+            msg.setReturnCode(200);
+        }
+        return msg;
+    }
 }
 

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

@@ -6,17 +6,16 @@
     <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" />
-    <link href="css/H-ui.min.css" rel="stylesheet" type="text/css" />
-    <link href="css/H-ui.admin.css" rel="stylesheet" type="text/css" />
-    <link href="lib/icheck/icheck.css" rel="stylesheet" type="text/css" />
-    <link href="lib/Hui-iconfont/1.0.1/iconfont.css" rel="stylesheet" type="text/css" />
-    <link href="lib/webuploader/0.1.5/webuploader.css" rel="stylesheet" type="text/css" />
+<#include "/base/add_base.ftl">
+    <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
+    <link href="${path}/common/lib/webuploader/0.1.5/webuploader.css" rel="stylesheet" type="text/css"/>
+    <link href="${path}/common/lib/icheck/icheck.css" rel="stylesheet" type="text/css"/>
     <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(images/select-1.png) right center no-repeat;background-size: auto 100%;padding-left:3px;padding-right: 25px;}
+        #province select{margin-right:10px; width:100px;height: 31px;-webkit-appearance:none !important;appearance:none;background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;padding-left:3px;padding-right: 25px;}
 
         #suggest, #suggest2 {width:200px}
         .gray {color:gray}
@@ -27,7 +26,7 @@
         .ac_results li a span {float:right}
         .ac_result_tip {border-bottom:1px dashed #666;padding:3px}
 
-        .select-box{background: url(images/select-1.png) right center no-repeat;background-size: auto 100%;}
+        .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;}
@@ -45,7 +44,7 @@
         .time-line-list>li:first-child .arrow{display: none;}
         .table-bg th{background-color: #e2f6ff;}
         .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
-        .my-search-input{padding-left: 30px;background: url(images/search.png) 6px center no-repeat;background-size: auto 60%; }
+        .my-search-input{padding-left: 30px;background: url(${path}/common/images/cm/search.png) 6px center no-repeat;background-size: auto 60%; }
     </style>
     <title>客诉基本信息</title>
 </head>
@@ -53,7 +52,6 @@
 <article class="cl pd-20">
     <form action="" method="post" class="form form-horizontal" id="form-article-add">
         <div class="row cl">
-
             <label class="form-label col-3">
                 <div class="tit-2">客诉基本信息</div>
             </label>
@@ -62,146 +60,54 @@
         </div>
         <div class="row cl">
             <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>跟进客服:</label>
-            <div class="formControls col-4 col-sm-4"> <span class="select-box">
-				<select name="" class="select">
-					<option value="0">薇薇</option>
-					<option value="1">薇薇</option>
-					<option value="11">薇薇</option>
-					<option value="12">薇薇</option>
-					<option value="13">薇薇</option>
-				</select>
-				</span>
+            <div class="formControls col-4 col-sm-4">
+				<label id="adminName"></label>
             </div>
         </div>
         <div class="row cl">
             <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>来源入口:</label>
             <div class="formControls col-10 col-sm-10 skin-minimal">
-                <div class="radio-box">
-                    <input type="radio" id="tel-1" name="sex" datatype="*" nullmsg="请选择来源入口!">
-                    <label for="tel-1">400电话</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="tel-2" name="sex">
-                    <label for="tel-2">微信公众号</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="tel-3" name="sex">
-                    <label for="tel-3">其他</label>
-                    <input type="text" style="width: 150px;margin-left: 10px;" class="input-text" value="" placeholder="" id="" name="">
-                </div>
+                <label id="customerSourceType"></label>
             </div>
         </div>
         <div class="row cl">
             <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>咨询类型:</label>
             <div class="formControls col-10 col-sm-10 skin-minimal">
-                <div class="radio-box">
-                    <input type="radio" id="tel-3" name="tel" datatype="*" nullmsg="请选择来源入口!">
-                    <label for="tel-3">售前咨询</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="tel-4" name="tel">
-                    <label for="tel-4">售后咨询</label>
-                </div>
+                <label id="customerCounselType"></label>
+            </div>
+        </div>
+        <div class="row cl">
+            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>产品类别:</label>
+            <div class="formControls col-10 col-sm-10 skin-minimal">
+                <label id="typeName"></label>
             </div>
         </div>
         <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="" class="select">
-					<option value="0">使用操作</option>
-					<option value="1">使用操作</option>
-				</select>
-				</span>
-            </div>
-            <div class="formControls col-2 col-sm-2"> <span class="select-box">
-				<select name="" class="select">
-					<option value="0">使用操作制水出水</option>
-					<option value="1">使用操作制水出水</option>
-				</select>
-				</span>
-            </div>
-            <div class="formControls col-2 col-sm-2">
-                <div class="clearfix">
-                    <input type="text" placeholder="搜索关键词" class="input-text  ac_input" name="search_text" value="" id="search_text" autocomplete="off" style="width:60%"><button type="button" class="btn btn-primary" id="search_button">搜索</button>
-                </div>
-            </div>
-
-            <div class="dalog-ask">
-                <div class="tag">
-                    <em></em>
-                    <strong>相关QA</strong>
-                    <ul>
-                        <li class="ask">1、净水机面板操作不灵敏,是怎么回事?</li>
-                        <li class="answer">答:<span>1净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
-                        <li class="ask">2、净水机面板操作不灵敏,是怎么回事?</li>
-                        <li class="answer">答:<span>2净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
-                        <li class="ask">3、净水机面板操作不灵敏,是怎么回事?</li>
-                        <li class="answer">答:<span>3净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
-                        <li class="ask">4、净水机面板操作不灵敏,是怎么回事?</li>
-                        <li class="answer">答:<span>4净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
-                    </ul>
-                </div>
-            </div>
-
+            <label id="describeTitle"></label>
         </div>
         <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>问题内容:</label>
+            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>回复内容:</label>
             <div class="formControls col-5 col-sm-5">
-                <textarea name="" cols="" rows="2" class="textarea" placeholder="说点什么..." id="answer-textarea"></textarea>
+                <label id="questionProfile"></label>
             </div>
         </div>
         <div class="row cl">
-            <label class="form-label col-1 col-sm-1"></label>
-            <div class="formControls col-2 col-sm-2">
-                <input type="text" class="input-text" value="" placeholder="请输入手机号" id="" name="">
-            </div>
+            <label class="form-label col-1 col-sm-1">用户信息:</label>
             <div class="formControls col-2 col-sm-2">
-                <input type="button" class="btn btn-primary" value="发短信給用户">
+                <label id="customerName"></label>
+                <label id="customerTel"></label>
             </div>
         </div>
         <div class="row cl">
-
             <label class="form-label col-1 col-sm-1">
-                <div class="tit">处理结果</div>
+                <div class="tit">处理结果<label id="customerIsSolve"></label></div>
             </label>
             <div class="formControls col-10 col-sm-10">
             </div>
         </div>
         <div class="row cl">
             <label class="form-label col-1 col-sm-1"></label>
-            <div class="formControls col-10 col-sm-10 skin-minimal">
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">已解决</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">未解决</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">换新</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">维修</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">补发</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">退货</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">无理由退货</label>
-                </div>
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"></label>
             <div class="formControls col-10 col-sm-10">
                 <ul class="time-line-list">
                     <li><span class="arrow"></span><div class="number">1</div><div>录入客诉</div></li>
@@ -215,213 +121,62 @@
             </div>
         </div>
         <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>订单信息:</label>
-            <div class="formControls col-1 col-sm-1">
-                <button type="button" class="btn btn-primary">搜索订单</button>
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"></label>
+            <label class="form-label col-1 col-sm-1">订单信息</label>
             <div class="formControls col-7 col-sm-7 text-c">
                 <table class="table table-border table-bg table-bordered">
                     <tr>
-                        <th>销售</th><th>订单号</th><th>姓名</th><th>电话</th><th>订单金额</th><th>购买产品</th><th>购买日期</th>
+                        <th>销售</th>
+                        <th>订单号</th>
+                        <th>姓名</th>
+                        <th>电话</th>
+                        <th>订单金额</th>
+                        <th>购买产品</th>
+                        <th>购买日期</th>
                     </tr>
                     <tr>
-                        <td>爱贝源-微信商城</td><td>1290387806</td><td>何小小</td><td>1882222888</td><td>¥3680</td><td>Watero净水机</td><td>2017-06-06</td>
+                        <td id="companyName"></td>
+                        <td id="salesOrderId"></td>
+                        <td id="salesAddressName"></td>
+                        <td id="salesAddressTel"></td>
+                        <td id="salesPayMoney"></td>
+                        <td id="salesItem"></td>
+                        <td id="salesPayTime"></td>
                     </tr>
                 </table>
             </div>
         </div>
         <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>收件信息:</label>
-            <div class="formControls col-2 col-sm-2">
-                <input type="text" class="input-text" value="何秀刚" placeholder="填写收件人姓名" id="" name="">
-            </div>
+            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>寄回产品:</label>
             <div class="formControls col-2 col-sm-2">
-                <input type="text" class="input-text" value="13800138000" placeholder="填写收件人手机号" id="" name="">
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"></label>
-            <div class="formControls col-4 col-sm-4">
-                <div id="province"></div>
-            </div>
-            <div class="formControls col-1 col-sm-1">
-                <button type="button" class="btn btn-primary">修改收货地址</button>
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"></label>
-            <div class="formControls col-5 col-sm-5">
-                <textarea name="" cols="" rows="2" class="textarea" placeholder="请填写详细地址">莲花街道深南大道特区报业大厦12b</textarea>
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>换新产品:</label>
-            <div class="formControls col-10 col-sm-10">
-                <div class="skin-minimal">
-                    <div class="check-box">
-                        <input type="checkbox" id="checkbox-1" checked>
-                        <label for="checkbox-1">净水机</label>
-                        <select name="" class="select" style="width: 100px;">
-                            <option value="0">WX-12</option>
-                            <option value="1">WX-13</option>
-                        </select>
-
-
-                        <select name="" class="select" style="width: 100px;">
-                            <option value="0">黑色</option>
-                            <option value="1">白色</option>
-                        </select>
-                        <input type="text" class="input-text" style="width: 40px;text-align: center;" value="1" placeholder="" id="" name="">
-                    </div>
-
-
-                    <div class="check-box">
-                        <input type="checkbox" id="checkbox-2" checked>
-                        <label for="checkbox-2">水箱</label>
-                        <input type="text" class="input-text" style="width: 40px;text-align: center;" value="1" placeholder="" id="" name="">
-                    </div>
-                    <div class="check-box">
-                        <input type="checkbox" id="checkbox-3" checked>
-                        <label for="checkbox-2">T1</label>
-                        <input type="text" class="input-text" style="width: 40px;text-align: center;" value="1" placeholder="" id="" name="">
-                    </div>
-                    <div class="check-box">
-                        <input type="checkbox" id="checkbox-4" checked>
-                        <label for="checkbox-2">T2</label>
-                        <input type="text" class="input-text" style="width: 40px;text-align: center;" value="1" placeholder="" id="" name="">
-                    </div>
-                </div>
+                <label id="closeprodcue"></label>
+                <!--TDS收集-->
+                <label id="customerTDS"></label>
             </div>
-        </div>
 
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>TDS收集:</label>
-            <div class="formControls col-2 col-sm-2" style="position: relative;">
-                <input type="hidden" name="arrcity_3word" id="arrcity_3word" value="" />
-                <input style="width: 140px;" placeholder="" class="input-text my-search-input" type="text" name="arrcity" id="arrcity" />
-                <div id="suggest" class="ac_results"></div>
-            </div>
-            <div class="formControls col-2 col-sm-2">
-				<span class="select-box">
-				<select name="" class="select">
-					<option value="0">罗湖区</option>
-					<option value="1">福田区</option>
-				</select>
-				</span>
-            </div>
-            <div class="formControls col-2 col-sm-2">
-                <input type="text" class="input-text" value="" placeholder="进水tds数值" id="" name="">
-            </div>
-            <div class="formControls col-2 col-sm-2">
-                <input type="text" class="input-text" value="" placeholder="出水tds数值" id="" name="">
-            </div>
         </div>
         <div class="row cl">
-            <label class="form-label col-1 col-sm-1"></label>
-            <div class="formControls col-6 col-sm-6">
-                tds收集:广东省-深圳市-福田区   进水:100ppm   出水:100ppm
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>寄回信息:</label>
-            <div class="formControls col-5 col-sm-5">
-				<textarea name="" cols="" rows="2" class="textarea" placeholder="说点什么...">邮寄地址:东莞清溪三中金龙工业区徐福记对面优尼雅电子科技,杨春有,13592708169邮寄备注:您好,麻烦您那边把机器邮寄前请将水箱、接水台中的水倒掉并擦干,不要留有水渍,避免运输途中水或奶粉
-溅入机器内部造成不必要的损失;用原包装或泡沫等材质包裹好机身。避免运输途中造成机器     磕碰、损坏。
-请勿寄顺丰、圆通、EMS以及到付件快递,其他快递物流随意,寄回时,麻烦您在产品里面留下故障原因说明,
-提示:寄回后把单号给我们提供下然后提供下您的姓名、地址和电话方便我们修好后给您寄回去。</textarea>
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"></label>
+            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>收货地址:</label>
             <div class="formControls col-2 col-sm-2">
-                <input type="text" class="input-text" value="" placeholder="请输入手机号" id="" name="">
-            </div>
-            <div class="formControls col-2 col-sm-2">
-                <input type="button" class="btn btn-primary" value="发短信給用户">
+                <label id="relationSendMergeAddress"></label>
             </div>
+
         </div>
         <div class="row cl">
-            <label class="form-label col-1 col-sm-1"></label>
-            <div class="formControls col-7 col-sm-7">
-                <div class="update-parts">更换:<span>红色净水机(wx-1)x 1台</span><span>水箱 x 1件</span><span>t1 x 1件</span><span>t2 x 1件</span></div>
+            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>寄送产品:</label>
+            <div class="formControls col-10 col-sm-10">
+                <label id="sendprodcue"></label>
             </div>
         </div>
         <div class="row cl">
             <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>处理描述:</label>
             <div class="formControls col-5 col-sm-5">
-                <textarea name="" cols="" rows="2" class="textarea" placeholder="说点什么..."></textarea>
+                <textarea id="describeHandleDesc" cols="" rows="2" class="textarea" placeholder="说点什么..."></textarea>
             </div>
         </div>
         <div class="row cl">
             <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>回访信息:</label>
-            <div class="formControls col-10 col-sm-10 skin-minimal">
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">需要回访</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">不需要回访</label>
-                </div>
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>回访人信息:</label>
             <div class="formControls col-2 col-sm-2">
-                <input type="text" class="input-text" value="" placeholder="填写回访人姓名" id="" name="">
-            </div>
-            <div class="formControls col-2 col-sm-2">
-                <input type="text" class="input-text" value="" placeholder="填写回访人手机号" id="" name="">
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>回访日期:</label>
-            <div class="formControls col-2 col-sm-2">
-                <input type="text" placeholder="请选择回访日期" id="datemin" class="input-text Wdate" readonly="readonly">
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>回访时间:</label>
-            <div class="formControls col-10 col-sm-10 skin-minimal">
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">09:00-12:00</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">12:00-14:00</label>
-                </div>
-                <div class="radio-box">
-                    <input type="radio" id="a-7" name="bbb">
-                    <label for="a-7">14:00-18:00</label>
-                </div>
-            </div>
-        </div>
-        <div class="row cl">
-            <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>提醒人:</label>
-            <div class="formControls col-4 col-sm-4"> <span class="select-box">
-				<select name="" class="select">
-					<option value="0">薇薇</option>
-					<option value="1">薇薇</option>
-					<option value="11">薇薇</option>
-					<option value="12">薇薇</option>
-					<option value="13">薇薇</option>
-				</select>
-				</span>
-            </div>
-        </div>
-        <div class="cl"  style="display: table;width: 100%;">
-            <label class="form-label col-1 col-sm-1"></label>
-            <div class="formControls col-4 col-sm-4">
-                <span class="c-red">您将为自己指定一个回访任务</span>
-            </div>
-        </div>
-        <div class="row cl">
-            <div class="col-2 col-sm-2 col-offset-3">
-                <button onClick="save_submit();" class="btn btn-block btn-primary size-XL" type="submit">确认录入</button>
+                <label id="txtVisit"></label>
             </div>
         </div>
     </form>
@@ -433,8 +188,11 @@
 <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" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.js"></script>
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.parse.js"></script>
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/lang/zh-cn/zh-cn.js"></script>
 <script type="text/javascript">
     $(function(){
         $('.skin-minimal input').iCheck({
@@ -450,12 +208,125 @@
         });
         $("#arrcity").suggest(citys,{hot_list:commoncitys,dataContainer:'#arrcity_3word',onSelect:function(result){
             console.log($(this)[0].value);
-//		$("#city2").click()
+        //		$("#city2").click()
         },
             attachObject:'#suggest'
         });
-//$("#city2").suggest(citys,{hot_list:commoncitys,attachObject:"#suggest2"})
+        //$("#city2").suggest(citys,{hot_list:commoncitys,attachObject:"#suggest2"})
+        getCustomerInfo();
     });
+
+    /**
+     * 查询客诉基本信息
+     */
+    function getCustomerInfo() {
+        $.ajax({
+            cache: true,
+            type: "POST",
+            data: {"customerId":${customerId!''}},
+            url: "${path}/admin/customer/get_customer_info",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    console.log(data.returnMsg);
+                    var customer = data.returnMsg.customer;
+                    var customerCommon = data.returnMsg.customerCommon;
+                    var salesOrder = data.returnMsg.salesOrder;
+                    $('#adminName').html(customer.adminName);
+                    var customerSource = '';
+                    switch (customer.customerSourceType) {
+                        case 1:customerSource = '400电话';break;
+                        case 2:customerSource = '微信公众号';break;
+                        case 3:customerSource = customer.customerSource;break;
+                    }
+                    $('#customerSourceType').html(customerSource);
+                    var customerCounsel = '';
+                    switch (customer.customerCounselType) {
+                        case 1:customerCounsel = '售前咨询';break;
+                        case 2:customerCounsel = '售后咨询';break;
+                        case 3:customerCounsel = '其他';break;
+                    }
+                    $('#customerCounselType').html(customerCounsel);
+                    $('#typeName').html(customer.typeName);
+                    $('#describeTitle').html(customer.describeTitle);
+                    $('#questionProfile').html(customer.questionProfile);
+                    $('#customerName').html(customer.customerName);
+                    $('#customerTel').html(customer.customerTel);
+                    var txtcustomerIsSolve = '';
+                    switch (customer.customerIsSolve) {
+                        case 1:txtcustomerIsSolve = '已解决';break;
+                        case 2:txtcustomerIsSolve = '未解决';break;
+                        case 3:txtcustomerIsSolve = '换新';break;
+                        case 4:txtcustomerIsSolve = '维修';break;
+                        case 5:txtcustomerIsSolve = '补发';break;
+                        case 6:txtcustomerIsSolve = '退货';break;
+                        case 7:txtcustomerIsSolve = '无理由退货';break;
+                    }
+                    $('#customerIsSolve').html(txtcustomerIsSolve);
+                    $('#companyName').html(customer.companyName+"-"+customer.storeName);
+                    $('#salesOrderId').html(salesOrder.salesOrderId);
+                    $('#salesAddressName').html(salesOrder.salesAddressName);
+                    $('#salesAddressTel').html(salesOrder.salesAddressTel);
+                    $('#salesPayMoney').html('¥'+salesOrder.salesPayMoney/100);
+                    var salesItem = '';
+                    $.each(salesOrder.salesOrderItemList,function(index,item){
+                        salesItem = this.itemProductName + '*' + this.itemNum
+                    })
+                    $('#salesItem').html(salesItem);
+                    $('#salesPayTime').html(salesOrder.salesPayTime);
+                    $('#relationSendMergeAddress').html(customerCommon.relationSendMergeAddress+"-"+customerCommon.relationSendAddress);
+                    $('#describeHandleDesc').val(customer.describeHandleDesc);
+                    var sendprodcue = '';
+                    var sendprodcueshow = false;
+                    var closeprodcue = '';
+                    var closeprodcueshow = false;
+                    if (customerCommon.sendProdcues != null && customerCommon.sendProdcues.length > 0) {
+                        sendprodcueshow = true;
+                        $.each(customerCommon.sendProdcues,function(index,item){
+                            sendprodcue += this.sendProduceName + '*' + this.sendProdcueNumber
+                        })
+                    }
+                    if (customerCommon.sendFittings != null && customerCommon.sendFittings.length > 0) {
+                        sendprodcueshow = true;
+                        $.each(customerCommon.sendFittings,function(index,item){
+                            sendprodcue += this.sendProductName + '*' + this.sendFittingNumber
+                        })
+                    }
+                    if (customerCommon.closedProdcues != null && customerCommon.closedProdcues.length > 0) {
+                        closeprodcueshow = true;
+                        $.each(customerCommon.closedProdcues,function(index,item){
+                            closeprodcue += this.closedProductName + '*' + this.closedProdcueNumber
+                        })
+                    }
+                    if (customerCommon.closedFittings != null && customerCommon.closedFittings.length > 0) {
+                        closeprodcueshow = true;
+                        $.each(customerCommon.closedFittings,function(index,item){
+                            closeprodcue += this.fittingName + '*' + this.closedFittingNumber
+                        })
+                    }
+                    $('#sendprodcue').html(sendprodcue);
+                    $('#closeprodcue').html(closeprodcue);
+                    $('#customerTDS').html(customerCommon.relationSendMergeAddress+",进水"+
+                            customer.customerInTDS+"ppm"+",出水"+customer.customerOutTDS+"ppm");
+
+                    if (customer.customerIsVisit == '2') {
+                        var visitTime = '';
+                        switch (customer.visitTimeSelect) {
+                            case 1:visitTime = '9:00-12:00';break;
+                            case 2:visitTime = '12:00-14:00';break;
+                            case 3:visitTime = '14:00-18:00';break;
+                        }
+                        $('#txtVisit').html("("+customer.visitName+")"+"在"+customer.visitDate+
+                                " "+visitTime+"对"+customer.visitCompleteName+" "+
+                                customer.visitCompleteTel+" 完成回访");
+                    }
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+    }
+
     $(document).on('click', '#search_button', function() {
         $(".dalog-ask").show();
     });

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

@@ -951,7 +951,7 @@
                                         <i class="Hui-iconfont">已解决</i>
                                     </a>&nbsp;
                                 </#if>
-                                <a style="text-decoration:none" href="javascript:void(0);" title="详情" onclick="admin_update_customer(${customer.customerId!''})">
+                                <a style="text-decoration:none" href="javascript:void(0);" title="详情" onclick="admin_details_customer(${customer.customerId!''})">
                                     <i class="Hui-iconfont">详情</i>
                                 </a>&nbsp;
                                 <#if customer.customerIsVisit == "2">
@@ -1016,7 +1016,7 @@
      * @param employee
      */
     function admin_details_customer(customerId) {
-        window.location.href= "${path}/admin/customer/to_details_customer?customerId="+customerId;
+        window.location.href= "${path}/admin/customer/_customer_info?customerId="+customerId;
     }
 
     function showVisitFinish(customerId) {
@@ -1069,7 +1069,6 @@
      */
     function addVisitInfo() {
         checkValue();
-        alert(flag);
         if (flag) {
             $.ajax({
                 cache: true,

+ 1 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/add_signclosed.ftl

@@ -46,7 +46,7 @@
         .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
         .my-search-input{padding-left: 30px;background: url(${path}/common/images/cm/search.png) 6px center no-repeat;background-size: auto 60%; }
     </style>
-    <title>添加客诉 - 客诉管理 - RST</title>
+    <title>添加签收 - 客诉管理 - RST</title>
 </head>
 <body>
 <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页

+ 287 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/complete_signclosed.ftl

@@ -0,0 +1,287 @@
+<!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">
+    <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
+    <link href="${path}/common/lib/webuploader/0.1.5/webuploader.css" rel="stylesheet" type="text/css"/>
+    <link href="${path}/common/lib/icheck/icheck.css" rel="stylesheet" type="text/css"/>
+    <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;}
+
+        #suggest, #suggest2 {width:200px}
+        .gray {color:gray}
+        .ac_results {background:#fff;border:1px solid #7f9db9;position: absolute;z-index: 10000;display: none}
+        .ac_results li a {white-space: nowrap;text-decoration:none;display:block;color:#05a;padding:1px 3px}
+        .ac_results li {border:1px solid #fff}
+        .ac_over, .ac_results li a:hover {background:#c8e3fc}
+        .ac_results li a span {float:right}
+        .ac_result_tip {border-bottom:1px dashed #666;padding:3px}
+
+        .select-box{background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;}
+        .select-box select{-webkit-appearance:none !important;background-color: transparent; appearance:none;padding-right: 25px;}
+        .dalog-ask{position: absolute;left:60%;top:0;-webkit-transform: translateY(-30%);transform: translateY(-30%);display: none;background-color: #fff;z-index: 10;}
+        .tag{ width:300px; min-height:300px; border:1px solid #32a3d8; position:relative;background-color: #fff;line-height: 1.5;padding: 10px 12px;}
+        .tag em{display:block; border-width:15px; position:absolute; top:30%; left:-30px;border-style:solid dashed dashed; border-color:transparent  #32a3d8 transparent transparent;font-size:0; line-height:0;}
+        .dalog-ask .ask{color: #000;margin: 10px 0 5px 0;}
+        .dalog-ask .answer{color: #666;margin-bottom: 10px;}
+        .dalog-ask .answer:hover{color: #32a3d8;cursor: pointer;}
+        .time-line-list{list-style: none;width: 100%;margin-left: -20px;}
+        .time-line-list>li{position: relative;float: left; text-align: center;width: 100px;overflow: hidden;white-space: nowrap;word-break: break-all;padding: 2px 0;}
+        .time-line-list .number{display: inline-block; padding: 2px; background: #32a3d8;border: 2px solid #fff;box-shadow:0 0 0 1px #32a3d8;width: 20px;height: 20px;color: #fff;line-height: 20px;border-radius: 50%;}
+        .time-line-list>li:before{content:'';position: absolute;height: 1px;width: 30%;right:0;top: 15px; background-color: #32a3d8;}
+        .time-line-list>li:after{content: '';position: absolute;height: 1px;width: 30%;left: 0;top: 15px;background:#32a3d8;}
+        .time-line-list>li:first-child:after,.time-line-list>li:last-child:before{display: none;}
+        .time-line-list .arrow{border-width:7px; position:absolute; left:25%; top:9px;border-style:solid dashed dashed; border-color:transparent  transparent  transparent #32a3d8;font-size:0; line-height:0;}
+        .time-line-list>li:first-child .arrow{display: none;}
+        .table-bg th{background-color: #e2f6ff;}
+        .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        .my-search-input{padding-left: 30px;background: url(${path}/common/images/cm/search.png) 6px center no-repeat;background-size: auto 60%; }
+    </style>
+    <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> 完成签收
+    <a class="btn radius r"
+       style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;"
+       href="javascript:location.replace(location.href);" title="刷新"><i class="Hui-iconfont">&#xe68f;</i></a>
+</nav>
+<article class="page-container" style="padding: 10px;">
+    <div class="pd-20 cl">
+        <form action="" method="post" class="form form-horizontal" id="form-signclosed-add">
+            <div class="row cl">
+                <label class="form-label col-3 col-sm-3"><span class="c-red">*</span>寄送信息:</label>
+                <#if (signclosedList?size > 0)>
+                    <#list signclosedList as signclosed>
+                        <#if signclosed.signclosedProductType == 1>
+                            ${signclosed.productName!''}-${signclosed.colorName!''}*${signclosed.productNum!''}台
+                        <#else>
+                            ${signclosed.productName!''}*${signclosed.productNum!''}件
+                        </#if>
+                    </#list>
+                </#if>
+            </div>
+            <div class="row cl">
+                <label class="form-label col-3 col-sm-3"><span class="c-red">*</span>客服备注:</label>
+                ${complaintSignclosedInfo.signclosedCustomerDesc!''}
+            </div>
+            <div class="row cl">
+                <label class="form-label col-3 col-sm-3"><span class="c-red">*</span>寄回产品:</label>
+                <div class="formControls col-8 col-sm-8 text-c" id="produceSelect">
+                    <table class="table table-border table-bg table-bordered">
+                        <thead>
+                        <tr class="text-c">
+                            <th style="text-align: center;" width="100">产品名称</th>
+                            <th style="text-align: center;" width="100">产品数量</th>
+                        </tr>
+                        </thead>
+                        <tbody id="addProduct">
+                        <#if (signclosedList?size > 0)>
+                            <#list signclosedList as signclosed>
+                            <tr >
+                                <#if signclosed.signclosedProductType == 1>
+                                    <td>
+                                        <input type="checkbox" id="" value="${signclosed.signclosedProductColor!''}" name="alreadyColorName" datatype="*">
+                                        ${signclosed.productName!''}-${signclosed.colorName!''}</td>
+                                    <td>
+                                        <input type="text" style="width: 50px;margin-left: 10px;" class="input-text" value="${signclosed.productNum!''}" placeholder="数量" id="alreadyColorId${signclosed.signclosedProductColor!''}" name="alreadyColorId${signclosed.signclosedProductColor!''}"><br>
+                                    </td>
+                                <#else>
+                                    <td>
+                                        <input type="checkbox" id="" value="${signclosed.signclosedProductId!''}" name="alreadyFittingsName" datatype="*">
+                                        ${signclosed.productName!''}</td>
+                                    <td>
+                                        <input type="text" style="width: 50px;margin-left: 10px;" class="input-text" value="${signclosed.productNum!''}" placeholder="数量" id="alreadyFittingsId${signclosed.signclosedProductId!''}" name="alreadyFittingsId${signclosed.signclosedProductId!''}"><br>
+                                    </td>
+                                </#if>
+
+                            </tr>
+                            </#list>
+                        </#if>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+
+
+            <div class="row cl">
+                <label class="form-label col-3 col-sm-3"><span class="c-red">*</span>寄件人信息:</label>
+                <div class="formControls col-4 col-sm-4 skin-minimal">
+                    <input type="text" style="width: 150px;margin-left: 10px;" class="input-text" placeholder="寄件方姓名/公司名称" id="signclosedSendName" name="signclosedSendName">
+                    <input type="text" style="width: 150px;margin-left: 10px;" class="input-text" placeholder="寄件方联系电话" id="signclosedSendTel" name="signclosedSendTel">
+                </div>
+            </div>
+
+            <div class="row cl" style="position: relative;">
+                <label class="form-label col-3 col-sm-3"><span class="c-red">*</span>寄件区域:</label>
+                <div class="formControls col-3 col-sm-3 skin-minimal">
+                    <span class="select-box">
+                    <select name="signclosedAddrProvinces" id="province" class="select">
+
+
+                    </select>
+                     </span>
+                </div>
+                    <div class="formControls col-3 col-sm-3 skin-minimal">
+                    <span class="select-box">
+                    <select name="signclosedAddrCity" id="city" class="select">
+
+
+                    </select>
+                    </span>
+                </div>
+            </div>
+            <div class="row cl">
+                <label class="form-label col-3 col-sm-3"><span class="c-red">*</span>签收日期:</label>
+                <div class="formControls col-5 col-sm-5 skin-minimal">
+                    <input type="text" style="width: 150px;margin-left: 10px;" class="input-text my-input-date" placeholder="签收日期" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})" id="signclosed_date" name="signclosed_date" readonly="readonly"/>
+                </div>
+            </div>
+
+            <div class="row cl">
+                <label class="form-label col-3 col-sm-3"><span class="c-red">*</span>是否少配件:</label>
+                <div class="formControls col-5 col-sm-5 skin-minimal">
+                    <div class="radio-box">
+                        <input type="radio" id="tel-4" name="signclosedIsFittings" value="1" datatype="*" checked  >
+                        <label for="tel-4">缺少配件</label>
+                    </div>
+                    <div class="radio-box">
+                        <input type="radio" id="tel-5" name="signclosedIsFittings" value="2" datatype="*">
+                        <label for="tel-5">不缺配件</label>
+                    </div>
+                </div>
+            </div>
+
+            <div class="row cl" id="objectsStateId">
+                <label class="form-label col-3 col-sm-3"><span class="c-red">*</span>物件状态:</label>
+                <div class="formControls col-5 col-sm-5 skin-minimal">
+                    <div class="radio-box">
+                        <input type="radio" id="tel-12" name="signclosedObjectsState" value="1" datatype="*" checked  >
+                        <label for="tel-8">正常签收</label>
+                    </div>
+                    <div class="radio-box">
+                        <input type="radio" id="tel-13" name="signclosedObjectsState" value="2" datatype="*">
+                        <label for="tel-9">物件不对</label>
+                    </div>
+                </div>
+            </div>
+            <div class="row cl">
+                <label class="form-label col-3 col-sm-3">备注:</label>
+                <div class="formControls col-5 col-sm-5">
+                    <textarea name="signclosedDesc" id="signclosedDesc" cols="" rows="2" class="textarea" placeholder="请填写备注"></textarea>
+                </div>
+            </div>
+            <div class="row cl">
+                <div class="col-2 col-sm-2 col-offset-3">
+                    <input type="hidden" id="signclosedId" name="signclosedId" value="${complaintSignclosedInfo.signclosedId!''}">
+                    <button onClick="add();" class="btn btn-block btn-primary size-XL" type="button">确认签收</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</article>
+
+<script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
+<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">
+    $(function(){
+        var province = listProvince(null,null);
+        var provinceHtml = '';
+        for(var i=0;i<province.length;i++){
+                provinceHtml += '<option value="'+ province[i].provinceId +'">'+ province[i].province +'</option>';
+        }
+        $("#province").html(provinceHtml);
+
+       var city = listCity(null,null);
+        var cityHtml = '';
+        for(var i=0;i<city.length;i++){
+            cityHtml += '<option value="'+ city[i].cityId +'">'+ city[i].city +'</option>';
+        }
+        $("#city").html(cityHtml);
+
+
+        /*监听省选择事件*/
+        $(document).on('change', '#province', function() {
+            var proId = $("#province").val();
+            var city = listCity(proId,null);
+            var cityHtml = '';
+            for(var i=0;i<city.length;i++){
+                cityHtml += '<option value="'+ city[i].cityId +'">'+ city[i].city +'</option>';
+            }
+            $("#city").html(cityHtml);
+        });
+    });
+
+
+    function  add() {
+        var signclosedSendName = $("#signclosedSendName").val();
+        if( signclosedSendName == null || signclosedSendName == "" ){
+            layer.msg('寄件人姓名不能为空',{icon: 5,time:1000});
+            return;
+        }
+        if( signclosedSendName.length > 10 ){
+            layer.msg('寄件人姓名长度不得大于10个字符',{icon: 5,time:1000});
+            return;
+        }
+        var signclosedSendTel = $("#signclosedSendTel").val();
+        if( signclosedSendTel == null || signclosedSendTel == "" ){
+            layer.msg('请输入寄件人电话',{icon: 5,time:1000});
+            return;
+        }
+        if( signclosedSendTel.length > 11 ){
+            layer.msg('寄件人电话长度不得大于11个字符',{icon: 5,time:1000});
+            return;
+        }
+        var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
+        if(!myreg.test(signclosedSendTel)){
+            layer.msg('寄件人电话格式不正确',{icon: 5,time:1000});
+            return;
+        }
+
+        var signclosedDesc = $("#signclosedDesc").val();
+        if( signclosedDesc != null || signclosedDesc == "" ){
+            if( signclosedDesc.length > 300 ){
+                layer.msg('备注长度不得大于150个字符',{icon: 5,time:1000});
+                return;
+            }
+        }
+        $.ajax({
+            cache: true,
+            type: "POST",
+            url: "${path}/admin/signclosed/complete_signclosed",
+            data:$('#form-signclosed-add').serialize(),// 你的formid
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    layer.msg('添加成功',{icon: 1,time:1000},function () {
+                        location.replace(location.href);
+                    });
+                } else {
+                    layer.msg('添加失败',{icon: 5,time:1000});
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+                layer.msg('添加错误',{icon: 5,time:1000});
+            }
+        });
+    }
+</script>
+<!--/请在上方写此页面业务相关的脚本-->
+</body>
+</html>

+ 5 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/signclosed_list.ftl

@@ -196,7 +196,10 @@
                     <td class="text-c" width="100">${signclosed.signclosedDesc!}</td>
                     <!-- 遍历操作 -->
                     <td class="td-manage text-c">
-
+                        <a style="text-decoration:none" href="javascript:;" title="签收"
+                           onclick="update_info('签收','${path}/admin/signclosed/to_complete_signclosed?signclosedId=${signclosed.signclosedId!}','570','450');">
+                            <i class="Hui-iconfont">&#xe6df;</i>
+                        </a>
                     </td>
                 </tr>
                 </#list>
@@ -219,7 +222,7 @@
     function add_remark(title,url,w,h){
         layer_show(title,url,w,h);
     }
-    /*转入生产*/
+    /*签收*/
     function update_info(title,url,w,h){
         layer_show(title,url,w,h);
     }