소스 검색

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 년 전
부모
커밋
2836343009
23개의 변경된 파일472개의 추가작업 그리고 220개의 파일을 삭제
  1. 6 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/address/City.java
  2. 6 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/address/District.java
  3. 6 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/address/Province.java
  4. 1 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ComplaintSignclosedInfo.java
  5. 30 7
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java
  6. 46 12
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java
  7. 1 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java
  8. 67 26
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  9. 8 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ComplaintDetectInfoMapper.java
  10. 2 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/backGoodsMapper.xml
  11. 26 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintDetectInfoMapper.xml
  12. 11 3
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintQuestionInfoMapper.xml
  13. 2 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintSignclosedInfoMapper.xml
  14. 3 5
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml
  15. 2 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/noreasonBackMapper.xml
  16. 4 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/questionDescribeMapper.xml
  17. 2 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/reissueMapper.xml
  18. 2 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/renewedMapper.xml
  19. 2 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/repairMapper.xml
  20. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/visitMapper.xml
  21. 3 3
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/address/AddressController.java
  22. 40 17
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  23. 201 128
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl

+ 6 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/address/City.java

@@ -12,6 +12,12 @@ public class City implements Serializable {
 
     private Integer divisionCode;
 
+    public City(){}
+
+    public City(Integer cityId){
+        this.cityId = cityId;
+    }
+
     public Integer getCityId() {
         return cityId;
     }

+ 6 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/address/District.java

@@ -12,6 +12,12 @@ public class District implements Serializable {
 
     private Integer divisionCode;
 
+    public District(){}
+
+    public District(Integer districtId){
+        this.districtId = districtId;
+    }
+
     public Integer getDistrictId() {
         return districtId;
     }

+ 6 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/address/Province.java

@@ -12,6 +12,12 @@ public class Province implements Serializable {
 
     private Integer divisionCode;
 
+    public Province (){}
+
+    public Province(Integer provinceId){
+        this.provinceId = provinceId;
+    }
+
     public Integer getProvinceId() {
         return provinceId;
     }

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

@@ -28,7 +28,7 @@ public class ComplaintSignclosedInfo implements Serializable {
     private Integer signclosedIsQuality;//是否品检   1 需要品检 2不需要品检
     private Integer signclosedIsInto;//是否已转入品检    1 已转入品检2未转入品检
     private Integer signclosedState;//处理状态      1已签收2未签收
-    private Integer signclosedObjectsState;//物件状态 1正常签收2物件不对
+    private Integer signclosedObjectsState;//物件状态 1正常签收2物件不对  3:暂未签收
     private Integer signclosedCustomerId;//客诉id
     private Integer signclosedUrgedNum;//qc催促次数
     private String oldEfastId;//原有Efast订单id

+ 30 - 7
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java

@@ -37,19 +37,19 @@ public class CustomerCommon implements Serializable {
     private String relationBackMachineNo;
     //寄送状态  1:未寄送  2:已寄送  3:已收货 
     private Integer relationSendStatus;
-    //寄送人姓名 
+    //寄送人(收件人)姓名
     private String relationSendName;
-    //寄送人电话 
+    //寄送人(收件人)电话
     private String relationSendTel;
-    //寄送地址-省 
+    //寄送(收件人)地址-省
     private Integer provinceNumber;
-    //寄送地址-市 
+    //寄送(收件人)地址-市
     private Integer cityNumber;
-    //寄送地址-区 
+    //寄送(收件人)地址-区
     private Integer areaNumber;
-    //寄送地址-省市区 
+    //寄送(收件人)地址-省市区
     private String relationSendMergeAddress;
-    //寄送地址-详细地址 
+    //寄送(收件人)地址-详细地址
     private String relationSendAddress;
     //寄送物流公司 
     private String relationSendLogisticsCompany;
@@ -341,6 +341,9 @@ public class CustomerCommon implements Serializable {
             case 3: //换新
                 Renewed renewed = new Renewed();
                 renewed.setRenewedId(c.getRelationId());
+                renewed.setCustomerId(c.getCustomerId());
+                renewed.setOrderId(c.orderId);
+                renewed.setSignclosedId(c.signclosedId);
                 renewed.setRenewedBackEfastOrderId(c.getRelationBackEfastOrderId());
                 renewed.setRenewedBackStatus(c.getRelationBackStatus());
                 renewed.setRenewedBackName(c.getRelationBackName());
@@ -352,6 +355,9 @@ public class CustomerCommon implements Serializable {
                 renewed.setRenewedSendStatus(c.getRelationSendStatus());
                 renewed.setRenewedSendName(c.getRelationSendName());
                 renewed.setRenewedSendTel(c.getRelationSendTel());
+                renewed.setProvinceNumber(c.getProvinceNumber());
+                renewed.setCityNumber(c.getCityNumber());
+                renewed.setAreaNumber(c.getAreaNumber());
                 renewed.setRenewedSendMergeAddress(c.getRelationSendMergeAddress());
                 renewed.setRenewedSendAddress(c.getRelationSendAddress());
                 renewed.setRenewedSendLogisticsCompany(c.getRelationSendLogisticsCompany());
@@ -366,6 +372,9 @@ public class CustomerCommon implements Serializable {
             case 4: //维修
                 Repair repair = new Repair();
                 repair.setRepairId(c.getRelationId());
+                repair.setCustomerId(c.getCustomerId());
+                repair.setOrderId(c.orderId);
+                repair.setSignclosedId(c.signclosedId);
                 repair.setRepairBackEfastOrderId( c.getRelationBackEfastOrderId());
                 repair.setRepairBackStatus(c.getRelationBackStatus());
                 repair.setRepairBackName(c.getRelationBackName());
@@ -377,6 +386,9 @@ public class CustomerCommon implements Serializable {
                 repair.setRepairSendStatus(c.getRelationSendStatus());
                 repair.setRepairSendName(c.getRelationSendName());
                 repair.setRepairSendTel(c.getRelationSendTel());
+                repair.setProvinceNumber(c.getProvinceNumber());
+                repair.setCityNumber(c.getCityNumber());
+                repair.setAreaNumber(c.getAreaNumber());
                 repair.setRepairSendMergeAddress(c.getRelationSendMergeAddress());
                 repair.setRepairSendAddress(c.getRelationSendAddress());
                 repair.setRepairSendLogisticsCompany(c.getRelationSendLogisticsCompany());
@@ -391,10 +403,15 @@ public class CustomerCommon implements Serializable {
             case 5://补发
                 Reissue reissue = new Reissue();
                 reissue.setReissueId(c.getRelationId());
+                reissue.setCustomerId(c.getCustomerId());
+                reissue.setOrderId(c.orderId);
                 reissue.setReissueBackEfastOrderId(c.getRelationBackEfastOrderId());
                 reissue.setReissueSendStatus(c.getRelationSendStatus());
                 reissue.setReissueSendName(c.getRelationSendName());
                 reissue.setReissueSendTel(c.getRelationSendTel());
+                reissue.setProvinceNumber(c.getProvinceNumber());
+                reissue.setCityNumber(c.getCityNumber());
+                reissue.setAreaNumber(c.getAreaNumber());
                 reissue.setReissueSendMergeAddress(c.getRelationSendMergeAddress());
                 reissue.setReissueSendAddress(c.getRelationSendAddress());
                 reissue.setReissueSendLogisticsCompany(c.getRelationSendLogisticsCompany());
@@ -407,6 +424,9 @@ public class CustomerCommon implements Serializable {
             case 6://退货
                 BackGoods backGoods = new BackGoods();
                 backGoods.setBackGoodsId(c.getRelationId());
+                backGoods.setCustomerId(c.getCustomerId());
+                backGoods.setOrderId(c.orderId);
+                backGoods.setSignclosedId(c.signclosedId);
                 backGoods.setBackGoodsBackStatus(c.getRelationBackStatus());
                 backGoods.setBackGoodsBackName(c.getRelationBackName());
                 backGoods.setBackGoodsBackTel(c.getRelationBackTel());
@@ -424,6 +444,9 @@ public class CustomerCommon implements Serializable {
             case 7://无理由退货
                 NoreasonBack noreasonBack = new NoreasonBack();
                 noreasonBack.setNoreasonBackId( c.getRelationId());
+                noreasonBack.setCustomerId(c.getCustomerId());
+                noreasonBack.setOrderId(c.orderId);
+                noreasonBack.setSignclosedId(c.signclosedId);
                 noreasonBack.setNoreasonBackBackStatus(c.getRelationBackStatus());
                 noreasonBack.setNoreasonBackBackName(c.getRelationBackName());
                 noreasonBack.setNoreasonBackBackTel(c.getRelationBackTel());

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

@@ -52,9 +52,6 @@ public class CustomerInfo  implements Serializable {
     private String productName;         //客诉产品
     private String complaintClassName;  //客诉类型名称
     private String questionProfile;     //问题回复
-    private Integer complaintId;        //客诉类型id
-    private String smallClassName;      //客诉小类名称
-    private String describeTitle;       //客诉问题标题
     private String companyName;         //销售公司名称
     private String storeName;           //店铺名称
     private Integer detectState;        //检测状态
@@ -64,19 +61,36 @@ public class CustomerInfo  implements Serializable {
     private Date salesTime;             //购买日期
     private Integer backStatus;         //寄回状态
     private Integer sendStatus;         //寄送状态
+
+    /*  客诉问题关联qa查询表  */
+    private Integer complaintId;        //客诉类型id
+    private String smallClassName;      //客诉小类名称
+    private String describeTitle;       //客诉问题标题
+
+    /* 回访表 */
     private Integer visitStatus;        //回访状态
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date visitCompleteDate;     //回访完成时间
     private String visitName;           //回访人姓名
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String visitTel;            //回访联系电话
+    @DateTimeFormat(pattern="yyyy-MM-dd")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
-    private Date visitDate;             //回访时间
-    private Integer visitTimeSelect;    //回访时间选择
+    private Date visitDate;              //回访时间
+    private Integer visitTimeSelect;    //回访时间选择  1: 9:00-12:00  2: 12:00-14:00   3: 14:00-18:00
     private String visitCompleteName;   //回访联系人
-    private String visitCompleteTel;    //回访联系电话
+    private String visitCompleteTel;    //回访完成时的电话
+    private Integer visitAdminId; //回访提醒人
+
+    /*  问题表 */
+    private String describeContent;     //客诉问题描述
     private String describeHandleDesc;  //处理描述
 
+    private Visit visit = new Visit();  //回访类
+
+    private CustomerCommon customerCommon = new CustomerCommon(); //处理结果综合  公共类
+
+
     public Date getVisitDate() {
         return visitDate;
     }
@@ -133,10 +147,6 @@ public class CustomerInfo  implements Serializable {
         this.questionProfile = questionProfile;
     }
 
-    private Visit visit = new Visit();  //回访
-
-    private CustomerCommon customerCommon = new CustomerCommon();
-
     public Integer getVisitStatus() {
         return visitStatus;
     }
@@ -424,4 +434,28 @@ public class CustomerInfo  implements Serializable {
     public void setCustomerCommon(CustomerCommon customerCommon) {
         this.customerCommon = customerCommon;
     }
+
+    public Integer getVisitAdminId() {
+        return visitAdminId;
+    }
+
+    public void setVisitAdminId(Integer visitAdminId) {
+        this.visitAdminId = visitAdminId;
+    }
+
+    public String getVisitTel() {
+        return visitTel;
+    }
+
+    public void setVisitTel(String visitTel) {
+        this.visitTel = visitTel;
+    }
+
+    public String getDescribeContent() {
+        return describeContent;
+    }
+
+    public void setDescribeContent(String describeContent) {
+        this.describeContent = describeContent;
+    }
 }

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

@@ -16,7 +16,7 @@ public interface CustomerService {
      * @param customerInfo
      * @return
      */
-    Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder,Map<String,Object> produceMap);
+    Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder) throws Exception;
 
     /**
      * 根据id获取客诉信息

+ 67 - 26
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -1,13 +1,19 @@
 package com.iamberry.rst.service.cm;
 
 import com.github.pagehelper.PageHelper;
+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.order.EfastOrder;
 import com.iamberry.rst.core.order.OrderItem;
+import com.iamberry.rst.core.order.Product;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.cm.CustomerService;
+import com.iamberry.rst.service.address.mapper.AddressMapper;
 import com.iamberry.rst.service.cm.mapper.*;
 import com.iamberry.rst.service.order.EfastOrderServiceImpl;
+import com.iamberry.rst.service.product.mapper.ProductMapper;
 import com.iamberry.rst.util.PageUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -51,6 +57,12 @@ public class CustomerServiceImpl implements CustomerService {
     private ComplaintSignclosedInfoMapper complaintSignclosedInfoMapper;  //仓储
     @Autowired
     private ComplaintDetectInfoMapper complaintDetectInfoMapper;    //品检
+    @Autowired
+    private QuestionDescribeMapper questionDescribeMapper;   //客诉问题
+    @Autowired
+    private AddressMapper addressMapper;      //地址
+    @Autowired
+    private ProductMapper productMapper;  //产品
 
     @Override
     public CustomerInfo getCustomerInfo(Integer customerId) {
@@ -59,20 +71,43 @@ public class CustomerServiceImpl implements CustomerService {
 
     @Override
     @Transactional
-    public Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder,Map<String,Object> produceMap) {
-
-        salesOrder = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
+    public Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder) throws Exception{
 
         //添加客诉基本信息
         Integer flag = 0;
         flag = customerInfoMapper.insert(customerInfo);
+        if(flag < 1){
+            throw new Exception("添加客诉失败");
+        }
+
+        QuestionDescribe questionDescribe = new QuestionDescribe();
+        questionDescribe.setCustomerId(customerInfo.getCustomerId());
+        questionDescribe.setDescribeTitle(customerInfo.getDescribeTitle());  //客诉问题标题
+        questionDescribe.setDescribeContent(customerInfo.getDescribeContent());  //客诉问题描述
+        questionDescribe.setDescribeHandleDesc(customerInfo.getDescribeHandleDesc());   //处理描述
+        flag = questionDescribeMapper.insert(questionDescribe);
+        if(flag < 1){
+            throw new Exception("添加客诉失败");
+        }
 
         if ("2".equals(customerInfo.getCustomerIsVisit())) {
-            Visit visit = customerInfo.getVisit();
+            Visit visit = new Visit();
+            visit.setCustomerId(customerInfo.getCustomerId());
+            visit.setAdminId(customerInfo.getVisitAdminId());
+            visit.setVisitName(customerInfo.getVisitName());
+            visit.setVisitTel(customerInfo.getVisitTel());
+            visit.setVisitDate(customerInfo.getVisitDate());
+            visit.setVisitTimeSelect(customerInfo.getVisitTimeSelect());
+            visit.setVisitStatus(1);    //回访状态
             flag = visitMapper.addVisitInfo(visit);
+            if(flag < 1){
+                throw new Exception("添加客诉失败");
+            }
         }
 
         if (2 == customerInfo.getCustomerCounselType()) {
+            salesOrder = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
+
             CustomerCommon customerCommon = customerInfo.getCustomerCommon();
             customerCommon.setCustomerId(customerInfo.getCustomerId()); //设置客诉id
             customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
@@ -80,8 +115,8 @@ public class CustomerServiceImpl implements CustomerService {
             customerCommon.setRelationState(1); //状态  默认使用中
             customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
 
-            ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo();
-            ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo();
+            ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo();  //品质检测
+            ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo(); //客诉-签收表
             Map<String,Object> map;
             switch (customerInfo.getCustomerIsSolve()) {  //处理结果: 1:已解决  2:未解决 3:换新  4:维修 5:补发 6:退货 7:无理由退货
                 case 3: //换新
@@ -90,7 +125,7 @@ public class CustomerServiceImpl implements CustomerService {
                         customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId")));  //存放Efast订单编号
                         complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId")));     //仓储签收表添加  发货的Efast订单id
                     }else{
-
+                        throw new Exception("换新创建Efast订单失败");
                     }
                     complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
                     this.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
@@ -103,7 +138,7 @@ public class CustomerServiceImpl implements CustomerService {
                         customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId")));  //存放Efast订单编号
                         complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId")));     //仓储签收表添加  发货的Efast订单id
                     }else{
-
+                        throw new Exception("维修创建Efast订单失败");
                     }
                     complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());    //原有订单的Efast的订单编号
                     this.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
@@ -116,7 +151,7 @@ public class CustomerServiceImpl implements CustomerService {
                         customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId")));  //存放Efast订单编号
                         complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId")));     //仓储签收表添加  发货的Efast订单id
                     }else{
-
+                        throw new Exception("补发创建Efast订单失败");
                     }
                     break;
                 case 6: //退货
@@ -134,10 +169,6 @@ public class CustomerServiceImpl implements CustomerService {
             }
             customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储id
 
-            //新建仓储任务,  补发不用生成
-            //
-
-
             Object object = CustomerCommon.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
             Integer relationId;
             switch (customerInfo.getCustomerIsSolve()) {  //处理结果: 1:已解决  2:未解决 3:换新  4:维修 5:补发 6:退货 7:无理由退货
@@ -168,10 +199,10 @@ public class CustomerServiceImpl implements CustomerService {
                     break;
             }
             if (flag < 1) {
-
+                throw new Exception("添加客诉失败");
             }
         }
-        return null;
+        return flag;
     }
 
     /**
@@ -181,16 +212,27 @@ public class CustomerServiceImpl implements CustomerService {
      * @return
      */
     @Transactional
-    public void saveComplaintDetectInfo(ComplaintDetectInfo complaintDetectInfo,CustomerCommon customerCommon){
-        Integer flag;
+    public void saveComplaintDetectInfo(ComplaintDetectInfo complaintDetectInfo,CustomerCommon customerCommon) throws  Exception{
+        Integer flag = 0;
+        List<ComplaintDetectInfo> complaintDetectInfoList = new ArrayList<ComplaintDetectInfo>();
         complaintDetectInfo.setCustomerId(customerCommon.getCustomerId());    //添加客诉
-//        complaintDetectInfo.setProductId();     //品检产品id
-//        complaintDetectInfo.setDetectProductNumber();   //产品型号
         complaintDetectInfo.setDetectState(1);      //状态  1待仓库转入
         complaintDetectInfo.setDetectRevolutionProduced(1);  //是否转入生产部门  1待转入
-        flag = complaintDetectInfoMapper.insert(complaintDetectInfo);
+        for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
+            ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
+            for(int j=0; j<closedProdcue.getClosedProdcueNumber();j++){
+                complaintDetectInfo.setProductId(closedProdcue.getProductId());
+                Product product = productMapper.getProductById(closedProdcue.getProductId());
+                complaintDetectInfo.setDetectProductType(product.getProductType());
+                complaintDetectInfo.setDetectProductNumber(product.getProductNumber());
+            }
+            complaintDetectInfoList.add(complaintDetectInfo);
+        }
+        if(complaintDetectInfoList.size() > 0){
+            flag = complaintDetectInfoMapper.insertList(complaintDetectInfoList);
+        }
         if(flag < 1){
-
+            throw new Exception("添加品检失败");
         }
     }
 
@@ -200,9 +242,9 @@ public class CustomerServiceImpl implements CustomerService {
      * @return
      */
     @Transactional
-    public void saveComplaintSignclosedInfo(ComplaintSignclosedInfo complaintSignclosedInfo,CustomerCommon customerCommon){
+    public void saveComplaintSignclosedInfo(ComplaintSignclosedInfo complaintSignclosedInfo,CustomerCommon customerCommon)throws  Exception{
         Integer flag;
-        complaintSignclosedInfo.setSignclosedId(1); //签收类型 : 客诉寄回
+        complaintSignclosedInfo.setSignclosedType(1); //客诉寄回
         complaintSignclosedInfo.setSignclosedIsQuality(1); //是否平品检 1:需要品检
         complaintSignclosedInfo.setSignclosedIsInto(2); //是否已转入品检 2:未转入品检
         complaintSignclosedInfo.setSignclosedState(2); //处理状态  2:未签收
@@ -210,14 +252,13 @@ public class CustomerServiceImpl implements CustomerService {
         complaintSignclosedInfo.setSignclosedCustomerId(customerCommon.getCustomerId()); //客诉id
         flag = complaintSignclosedInfoMapper.insert(complaintSignclosedInfo);
         if(flag < 1){
-
+            throw new Exception("添加仓储任务失败");
         }
-
         //添加代签收表
     }
 
     /**
-     * 像Efast推送订单  仅换新,维修
+     * 像Efast推送订单  仅换新,维修 ,补发
      * @return
      */
     public Map<String,Object> sendEfastOrder(){

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

@@ -13,6 +13,14 @@ public interface ComplaintDetectInfoMapper {
      * @return
      */
     int insert(ComplaintDetectInfo record);
+
+    /**
+     * 批量添加品检
+     * @param complaintDetectInfoList
+     * @return
+     */
+    int insertList(List<ComplaintDetectInfo> complaintDetectInfoList);
+
     /**
      * 查询单个品质检测产品
      * @return

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

@@ -54,7 +54,7 @@
     where back_goods_id = #{backGoodsId,jdbcType=INTEGER}
   </delete>
   <insert id="insert" parameterType="BackGoods" >
-    insert into tb_rst_back_goods (back_goods_id, customer_id, order_id, 
+    insert into tb_rst_back_goods (customer_id, order_id,
       signclosed_id, back_goods_back_status, back_goods_back_name, 
       back_goods_back_tel, back_goods_back_logistics_company, 
       back_goods_back_logistics_no, back_goods_back_postage, 
@@ -62,7 +62,7 @@
       back_goods_state, back_goods_alipay, back_goods_is_transfer, 
       back_goods_create_time, back_goods_update_time
       )
-    values (#{backGoodsId,jdbcType=INTEGER}, #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER}, 
+    values ( #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{signclosedId,jdbcType=INTEGER}, #{backGoodsBackStatus,jdbcType=BIT}, #{backGoodsBackName,jdbcType=VARCHAR}, 
       #{backGoodsBackTel,jdbcType=CHAR}, #{backGoodsBackLogisticsCompany,jdbcType=VARCHAR}, 
       #{backGoodsBackLogisticsNo,jdbcType=VARCHAR}, #{backGoodsBackPostage,jdbcType=INTEGER}, 

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

@@ -118,6 +118,32 @@
       )
   </insert>
 
+  <insert id="insertList" parameterType="java.util.List" >
+    insert into tb_rst_complaint_detect
+    (
+        customer_id,signclosed_id,product_id,
+        detect_product_number, detect_state, detect_phenomenon,
+        detect_failure_classification, detect_failure_cause,
+        detect_results, detect_point, detect_analysis,
+        detect_revolution_produced,
+        detect_desc, signclosed_create_time, signclosed_update_time,
+        machine_no,detect_is_maintenance,detect_date,maintenance_results
+      )
+    values
+      <foreach collection="list" item="node" index="index" separator="," open="" close="">
+        (
+          #{node.customerId},#{node.signclosedId},
+          #{node.productId},
+          #{node.detectProductNumber}, #{node.detectState}, #{node.detectPhenomenon},
+          #{node.detectFailureClassification}, #{node.detectFailureCause},
+          #{node.detectResults}, #{node.detectPoint}, #{node.detectAnalysis},
+          #{node.detectRevolutionProduced},
+          #{node.detectDesc}, #{node.signclosedCreateTime}, #{node.signclosedUpdateTime}
+          ,#{node.machineNo},#{node.detectIsMaintenance},#{node.detectDate},#{node.maintenanceResults}
+        )
+      </foreach>
+  </insert>
+
   <update id="updateComplaintDetectById" parameterType="ComplaintDetectInfo" >
     update tb_rst_complaint_detect
     <set >

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

@@ -31,10 +31,18 @@
     where question_id = #{questionId,jdbcType=INTEGER}
   </select>
 
-  <select id="listComplaintQuestionInfo" resultMap="BaseResultMap" parameterType="ComplaintQuestionInfo" >
+  <select id="listComplaintQuestionInfo" resultType="ComplaintQuestionInfo" parameterType="ComplaintQuestionInfo" >
     select
-    question_id, small_class_id, question_name, question_state, question_is_qc_detect,question_profile,
-    question_create_time, question_update_time,question_resolved_num,question_not_solved_num
+    question_id,
+    small_class_id,
+    question_name,
+    question_state,
+    question_is_qc_detect,
+    question_profile,
+    question_create_time,
+    question_update_time,
+    question_resolved_num,
+    question_not_solved_num
     from tb_rst_complaint_question
     <where>
       <if test="smallClassId !=null">

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

@@ -170,7 +170,7 @@
   </select>
 
   <insert id="insert" parameterType="ComplaintSignclosedInfo" useGeneratedKeys="true" keyProperty="signclosedId" >
-    insert into tb_rst_complaint_signclosed (signclosed_id, signclosed_type, signclosed_type_name, 
+    insert into tb_rst_complaint_signclosed (signclosed_type, signclosed_type_name,
       machine_no, signclosed_logistics, signclosed_logistics_number, 
       signclosed_send_name, signclosed_send_tel, 
       signclosed_addr_provinces, signclosed_addr_city, 
@@ -180,7 +180,7 @@
       old_efast_id, new_efast_id, signclosed_customer_desc, 
       signclosed_desc, signclosed_create_time, 
       signclosed_update_time)
-    values (#{signclosedId,jdbcType=INTEGER}, #{signclosedType,jdbcType=BIT}, #{signclosedTypeName,jdbcType=VARCHAR}, 
+    values (#{signclosedType,jdbcType=BIT}, #{signclosedTypeName,jdbcType=VARCHAR},
       #{machineNo,jdbcType=VARCHAR}, #{signclosedLogistics,jdbcType=VARCHAR}, #{signclosedLogisticsNumber,jdbcType=VARCHAR}, 
       #{signclosedSendName,jdbcType=VARCHAR}, #{signclosedSendTel,jdbcType=VARCHAR}, 
       #{signclosedAddrProvinces,jdbcType=INTEGER}, #{signclosedAddrCity,jdbcType=INTEGER}, 

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

@@ -110,20 +110,18 @@
     </where>
   </select>
 
-  <insert id="insert" parameterType="CustomerInfo" >
+  <insert id="insert" parameterType="CustomerInfo"  useGeneratedKeys="true"  keyProperty="customerId">
     insert into tb_rst_customer_info (customer_id, admin_id, question_id, 
       company_id, store_id, customer_source_type, 
       customer_source, customer_counsel_type, customer_name, 
       customer_tel, customer_is_solve, customer_is_visit, 
-      customer_in_TDS, customer_out_TDS, customer_area, 
-      customer_create_time, customer_update_time
+      customer_in_TDS, customer_out_TDS, customer_area
       )
     values (#{customerId,jdbcType=INTEGER}, #{adminId,jdbcType=INTEGER}, #{questionId,jdbcType=INTEGER}, 
       #{companyId,jdbcType=INTEGER}, #{storeId,jdbcType=INTEGER}, #{customerSourceType,jdbcType=TINYINT}, 
       #{customerSource,jdbcType=VARCHAR}, #{customerCounselType,jdbcType=BIT}, #{customerName,jdbcType=VARCHAR}, 
       #{customerTel,jdbcType=VARCHAR}, #{customerIsSolve,jdbcType=TINYINT}, #{customerIsVisit,jdbcType=VARCHAR}, 
-      #{customerInTds,jdbcType=INTEGER}, #{customerOutTds,jdbcType=INTEGER}, #{customerArea,jdbcType=VARCHAR}, 
-      #{customerCreateTime,jdbcType=TIMESTAMP}, #{customerUpdateTime,jdbcType=TIMESTAMP}
+      #{customerInTDS,jdbcType=INTEGER}, #{customerOutTDS,jdbcType=INTEGER}, #{customerArea,jdbcType=VARCHAR}
       )
   </insert>
 

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

@@ -55,7 +55,7 @@
     where noreason_back_id = #{noreasonBackId,jdbcType=INTEGER}
   </delete>
   <insert id="insert" parameterType="NoreasonBack" >
-    insert into tb_rst_noreason_back (noreason_back_id, customer_id, order_id, 
+    insert into tb_rst_noreason_back (customer_id, order_id,
       signclosed_id, noreason_back_back_status, noreason_back_back_name, 
       noreason_back_back_tel, noreason_back_back_logistics_company, 
       noreason_back_back_logistics_no, noreason_back_back_postage, 
@@ -63,7 +63,7 @@
       noreason_back_state, noreason_back_alipay, noreason_back_is_transfer, 
       noreason_back_create_time, noreason_back_update_time
       )
-    values (#{noreasonBackId,jdbcType=INTEGER}, #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER}, 
+    values ( #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{signclosedId,jdbcType=INTEGER}, #{noreasonBackBackStatus,jdbcType=BIT}, #{noreasonBackBackName,jdbcType=VARCHAR}, 
       #{noreasonBackBackTel,jdbcType=CHAR}, #{noreasonBackBackLogisticsCompany,jdbcType=VARCHAR}, 
       #{noreasonBackBackLogisticsNo,jdbcType=VARCHAR}, #{noreasonBackBackPostage,jdbcType=INTEGER}, 

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

@@ -32,12 +32,12 @@
     delete from tb_rst_question_describe
     where describe_id = #{describeId,jdbcType=INTEGER}
   </delete>
+
   <insert id="insert" parameterType="QuestionDescribe" >
-    insert into tb_rst_question_describe (describe_id, describe_content, customer_id
-      )
-    values (#{describeId,jdbcType=INTEGER}, #{describeContent,jdbcType=VARCHAR}, #{customerId,jdbcType=INTEGER}
-      )
+    insert into tb_rst_question_describe (describe_id, describe_content, customer_id,describe_title,describe_handle_desc)
+    values (#{describeId,jdbcType=INTEGER}, #{describeContent,jdbcType=VARCHAR}, #{customerId,jdbcType=INTEGER}, #{describeTitle}, #{describeHandleDesc})
   </insert>
+
   <insert id="insertSelective" parameterType="QuestionDescribe" >
     insert into tb_rst_question_describe
     <trim prefix="(" suffix=")" suffixOverrides="," >

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

@@ -55,7 +55,7 @@
     where reissue_id = #{reissueId,jdbcType=INTEGER}
   </delete>
   <insert id="insert" parameterType="Reissue" >
-    insert into tb_rst_reissue (reissue_id, customer_id, order_id, 
+    insert into tb_rst_reissue (customer_id, order_id,
       reissue_back_efast_order_id, reissue_send_status, 
       reissue_send_name, reissue_send_tel, province_number, 
       city_number, area_number, reissue_send_merge_address, 
@@ -63,7 +63,7 @@
       reissue_send_logistics_no, reissue_desc, reissue_state, 
       reissue_create_time, reissue_update_time
       )
-    values (#{reissueId,jdbcType=INTEGER}, #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER}, 
+    values ( #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{reissueBackEfastOrderId,jdbcType=VARCHAR}, #{reissueSendStatus,jdbcType=BIT}, 
       #{reissueSendName,jdbcType=VARCHAR}, #{reissueSendTel,jdbcType=CHAR}, #{provinceNumber,jdbcType=VARCHAR}, 
       #{cityNumber,jdbcType=VARCHAR}, #{areaNumber,jdbcType=VARCHAR}, #{reissueSendMergeAddress,jdbcType=VARCHAR}, 

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

@@ -113,7 +113,7 @@
     where renewed_id = #{renewedId,jdbcType=INTEGER}
   </delete>
   <insert id="insert" parameterType="Renewed" >
-    insert into tb_rst_renewed (renewed_id, customer_id, order_id, 
+    insert into tb_rst_renewed (customer_id, order_id,
       signclosed_id, renewed_back_efast_order_id, 
       renewed_back_status, renewed_back_name, renewed_back_tel, 
       renewed_back_logistics_company, renewed_back_logistics_no, 
@@ -125,7 +125,7 @@
       renewed_desc, renewed_state, renewed_alipay, 
       renewed_is_transfer, renewed_create_time, renewed_update_time
       )
-    values (#{renewedId,jdbcType=INTEGER}, #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER}, 
+    values ( #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{signclosedId,jdbcType=INTEGER}, #{renewedBackEfastOrderId,jdbcType=VARCHAR}, 
       #{renewedBackStatus,jdbcType=BIT}, #{renewedBackName,jdbcType=VARCHAR}, #{renewedBackTel,jdbcType=CHAR}, 
       #{renewedBackLogisticsCompany,jdbcType=VARCHAR}, #{renewedBackLogisticsNo,jdbcType=VARCHAR}, 

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

@@ -95,7 +95,7 @@
     where repair_id = #{repairId,jdbcType=INTEGER}
   </delete>
   <insert id="insert" parameterType="Repair" >
-    insert into tb_rst_repair (repair_id, customer_id, order_id, 
+    insert into tb_rst_repair (customer_id, order_id,
       signclosed_id, repair_back_efast_order_id, repair_back_status, 
       repair_back_name, repair_back_tel, repair_back_logistics_company, 
       repair_back_logistics_no, repair_back_postage, 
@@ -106,7 +106,7 @@
       repair_desc, repair_state, repair_alipay, 
       repair_is_transfer, repair_create_time, repair_update_time
       )
-    values (#{repairId,jdbcType=INTEGER}, #{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER}, 
+    values (#{customerId,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER},
       #{signclosedId,jdbcType=INTEGER}, #{repairBackEfastOrderId,jdbcType=VARCHAR}, #{repairBackStatus,jdbcType=BIT}, 
       #{repairBackName,jdbcType=VARCHAR}, #{repairBackTel,jdbcType=CHAR}, #{repairBackLogisticsCompany,jdbcType=VARCHAR}, 
       #{repairBackLogisticsNo,jdbcType=VARCHAR}, #{repairBackPostage,jdbcType=INTEGER}, 

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

@@ -46,7 +46,7 @@
   </delete>
 
   <!-- 添加客诉回访信息 -->
-  <insert id="addVisitInfo" parameterType="Visit" >
+  <insert id="addVisitInfo" parameterType="Visit" useGeneratedKeys="true"  keyProperty="visitId" >
     insert into tb_rst_visit (visit_id, customer_id, admin_id, 
       visit_name, visit_tel, visit_date, 
       visit_time_select, visit_status, visit_complete_date, 

+ 3 - 3
watero-rst-web/src/main/java/com/iamberry/rst/controllers/address/AddressController.java

@@ -28,7 +28,7 @@ public class AddressController {
      */
     @ResponseBody
     @RequestMapping(value = "/list_province")
-    public ResponseJson listProvince(Province province) throws UnsupportedEncodingException {
+    public ResponseJson listProvince(Province province) throws Exception {
         ResponseJson rj =new ResponseJson(200, "查询成功", 200);
         List<Province> provinceList = addressService.listProvince(province);
         rj.addResponseKeyValue("provinceList", provinceList);
@@ -46,7 +46,7 @@ public class AddressController {
      */
     @ResponseBody
     @RequestMapping(value = "/list_city")
-    public ResponseJson listCity(City city){
+    public ResponseJson listCity(City city)throws Exception{
         ResponseJson rj =new ResponseJson(200, "查询成功", 200);
         List<City> cityList = addressService.listCity(city);
         rj.addResponseKeyValue("cityList", cityList);
@@ -64,7 +64,7 @@ public class AddressController {
      */
     @ResponseBody
     @RequestMapping(value = "/list_district")
-    public ResponseJson listDistrict(District district){
+    public ResponseJson listDistrict(District district)throws Exception{
         ResponseJson rj =new ResponseJson(200, "查询成功", 200);
         List<District> districtList = addressService.listDistrict(district);
         rj.addResponseKeyValue("cityList", districtList);

+ 40 - 17
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -5,6 +5,8 @@ import com.iamberry.rst.core.order.Product;
 import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.order.ProductType;
 import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.core.pts.ProcessNode;
+import com.iamberry.rst.core.pts.ProduceProcess;
 import com.iamberry.rst.core.sys.Admin;
 import com.iamberry.rst.faces.cm.*;
 import com.iamberry.rst.faces.product.ProductService;
@@ -12,6 +14,7 @@ import com.iamberry.rst.faces.sys.SysService;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.tools.ResponseJson;
+import net.sf.json.JSONArray;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,10 +25,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Created by wxm
@@ -227,12 +227,13 @@ public class AdminCustomerController {
     public ModelAndView toCustomerInfo(HttpServletRequest request) throws Exception {
         ModelAndView mv = new ModelAndView("cm/customer/custome_detail");
         String customerId = request.getParameter("customerId");
-        mv.addObject("customerId",customerId);
+        mv.addObject("customerId", customerId);
         return mv;
     }
 
     /**
      * 查询客诉基本信息
+     *
      * @param request
      * @return
      * @throws Exception
@@ -247,11 +248,11 @@ public class AdminCustomerController {
         }
         CustomerInfo customerInfo = new CustomerInfo();
         customerInfo.setCustomerId(Integer.parseInt(customerId));
-        Map<String,Object> map = customerService.getCustomerInfo(customerInfo);
+        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"));
+        rj.addResponseKeyValue("customerCommon", map.get("customerCommon"));
+        rj.addResponseKeyValue("customer", map.get("customer"));
+        rj.addResponseKeyValue("salesOrder", map.get("salesOrder"));
         return rj;
     }
 
@@ -422,19 +423,41 @@ public class AdminCustomerController {
     @ResponseBody
     @RequiresPermissions("customer:add:customer")
     @RequestMapping("/save_customer")
-    public ResponseJson addCustomer(HttpServletRequest request, CustomerInfo customerInfo,SalesOrder salesOrder,String productAllJson) {
+    public ResponseJson addCustomer(HttpServletRequest request, CustomerInfo customerInfo, SalesOrder salesOrder, CustomerCommon customerCommon,
+                                    String sendProdcuesJson, String sendFittingsJson, String closedProdcuesJson, String closedFittingsJson) throws Exception {
         Integer flag = 0;
+        JSONArray jsonArray;
+        List<SendProdcue> sendProdcueList = new ArrayList<>();
+        List<SendFitting> sendFittingList = new ArrayList<>();
+        List<ClosedProdcue> closedProdcueList = new ArrayList<>();
+        List<ClosedFitting> closedFittingList = new ArrayList<>();
 
+        jsonArray = JSONArray.fromObject(sendProdcuesJson);
+        sendProdcueList = (List) JSONArray.toCollection(jsonArray, SendProdcue.class);
 
-        Map<String,Object> produceMap = new HashMap<String, Object>();
+        jsonArray = JSONArray.fromObject(sendFittingsJson);
+        sendFittingList = (List) JSONArray.toCollection(jsonArray, SendFitting.class);
 
-        flag = customerService.saveCustomerInfo(customerInfo,salesOrder,produceMap);
+        jsonArray = JSONArray.fromObject(closedProdcuesJson);
+        closedProdcueList = (List) JSONArray.toCollection(jsonArray, ClosedProdcue.class);
 
-//        if (produceFittingsList != null && produceFittingsList.size()> 0) {
-//
-//        } else {
-//        }
-        return new ResponseJson(500, "查询失败!", 500);
+        jsonArray = JSONArray.fromObject(closedFittingsJson);
+        closedFittingList = (List) JSONArray.toCollection(jsonArray, ClosedFitting.class);
+
+        customerCommon.setSendProdcues(sendProdcueList);
+        customerCommon.setSendFittings(sendFittingList);
+        customerCommon.setClosedProdcues(closedProdcueList);
+        customerCommon.setClosedFittings(closedFittingList);
+
+        customerInfo.setCustomerCommon(customerCommon);
+
+        flag = customerService.saveCustomerInfo(customerInfo, salesOrder);
+
+        if (flag < 1) {
+            return new ResponseJson(500, "添加客诉失败!", 500);
+        } else {
+            return new ResponseJson(200, "添加客诉成功!", 200);
+        }
     }
 
     /**

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

@@ -48,6 +48,8 @@
         .my-search-input{padding-left: 30px;background: url(${path}/common/images/cm/search.png) 6px center no-repeat;background-size: auto 60%; }
         .input-produce{height: 25px;line-height: 25px}
         .color-div{height: 30px;}
+
+        .table-td-color{}
     </style>
     <title>添加客诉 - 客诉管理 - RST</title>
 </head>
@@ -143,7 +145,7 @@
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <div class="clearfix">
-                        <input type="text" placeholder="搜索关键词" class="input-text  ac_input" name="questionId" value="" id="search_text" autocomplete="off" style="width:60%"><button type="button" class="btn btn-primary" id="search_button">搜索</button>
+                        <input type="text" placeholder="搜索关键词" class="input-text  ac_input" name="questionIdMsg" value="" id="search_text" autocomplete="off" style="width:60%"><button type="button" class="btn btn-primary" id="search_button">搜索</button>
                     </div>
                 </div>
 
@@ -159,11 +161,21 @@
                 </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">
+                    <input type="text" class="input-text" style="width: 625px;" name="describeTitle" id="describeTitle">
+                </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">
                     <input type="hidden" name="questionId" id="questionId">
-                    <script id="describeContentText" type="text/plain" style="width:650px;height:250px;"></script>
+                    <script id="describeContentText" type="text/plain" style="width:650px;height:250px;">
+                    </script>
+                    </script>
                     <input type="hidden" name="describeContent" id="describeContent">
                 </div>
             </div>
@@ -184,6 +196,13 @@
                 <div class="formControls col-10 col-sm-10">
                 </div>
             </div>
+
+            <input type="hidden" id="sendProdcues" name="sendProdcuesJson" value="">
+            <input type="hidden" id="sendFittings" name="sendFittingsJson" value="">
+            <input type="hidden" id="closedProdcues" name="closedProdcuesJson" value="">
+            <input type="hidden" id="closedFittings" name="closedFittingsJson" value="">
+
+
             <div class="row cl">
                 <label class="form-label col-1 col-sm-1">处理类型:</label>
                 <div class="formControls col-10 col-sm-10 skin-minimal">
@@ -262,15 +281,18 @@
                         <#--<tr id="showOrderAddress">-->
                         <#--</tr>-->
                     </table>
+                    <input type="hidden" id="companyId" name="companyId" value="" >
+                    <input type="hidden" id="storeId" name="storeId" value="" >
+                    <input type="hidden" id="orderId" name="salesId" value="" >
                 </div>
             </div>
             <div class="row cl" id="recipientInfo" style="display: none;">
                 <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="sendName" name="sendName">
+                    <input type="text" class="input-text" value="" placeholder="填写收件人姓名" id="sendName" name="relationSendName" datatype="s1-20" errormsg="联系人格式不正确!" >
                 </div>
                 <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="" placeholder="填写收件人手机号" id="sendTel" name="sendTel">
+                    <input type="text" class="input-text" value="" placeholder="填写收件人手机号" id="sendTel" name="relationSendTel" datatype="m" errormsg="联系人电话格式不正确!">
                 </div>
             </div>
             <div class="row cl" id="recipientAddress" style="display: none;">
@@ -278,28 +300,30 @@
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                         <select id="province" class="select">
+                         <select id="province" class="select" name="provinceNumber">
                          </select>
                      </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                        <select id="city" class="select">
+                        <select id="city" class="select" name="cityNumber">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                        <select id="district" class="select">
+                        <select id="district" class="select" name="areaNumber">
                         </select>
                     </span>
                 </div>
 
+                <input type="hidden" name="relationSendMergeAddress" id="relationSendMergeAddress">
+
             </div>
             <div class="row cl" id="recipientAddressText" style="display: none;">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-5 col-sm-5">
-                    <textarea name="" id="sendAddress" cols="" rows="2" class="textarea" placeholder="请填写详细地址"></textarea>
+                    <textarea name="relationSendAddress" id="sendAddress" cols="" rows="2" class="textarea" placeholder="请填写详细地址,最多支持50字符" onKeyUp="$.Huitextarealength(this,50)"></textarea>
                     <span id="addrssMsg"></span>
                 </div>
             </div>
@@ -316,7 +340,7 @@
                             </tr>
                         </thead>
                         <tbody id="addProduct">
-                            <tr >
+                            <#--<tr >
                                 <td>冲奶机</td>
                                 <td>
                                     <div>
@@ -338,7 +362,7 @@
                                         <input type="text" class="input-text" style="width: 40px;text-align: center;" value="1" placeholder="" id="" name="">
                                     </div>
                                 </td>
-                            </tr>
+                            </tr>-->
                         </tbody>
                     </table>
 
@@ -394,9 +418,9 @@
             </div>
             <div class="row cl" id="updateProduct" style="display: none;">
                 <label class="form-label col-1 col-sm-1">更换产品:</label>
-                <div class="formControls col-7 col-sm-7" id="back-product">
+                <div class="formControls col-9 col-sm-9" >
 
-                   <#-- <table class="table table-border table-bg table-bordered">
+                    <table class="table table-border table-bg table-bordered">
                         <thead>
                         <tr class="text-c">
                             <th style="text-align: center;" width="60">产品名称</th>
@@ -404,39 +428,18 @@
                             <th style="text-align: center;" width="60">产品配件</th>
                         </tr>
                         </thead>
-                        <tbody id="addProduct">
-                        <tr >
-                            <td>冲奶机</td>
-                            <td>
-                                <div>
-                                    白色
-                                    <input type="text" class="input-text" style="width: 40px;text-align: center;" value="1" placeholder="" id="" name="">
-                                </div>
-                                <div>
-                                    白色
-                                    <input type="text" class="input-text" style="width: 40px;text-align: center;" value="1" placeholder="" id="" name="">
-                                </div>
-                            </td>
-                            <td>
-                                <div>
-                                    水箱
-                                    <input type="text" class="input-text" style="width: 40px;text-align: center;" value="1" placeholder="" id="" name="">
-                                </div>
-                                <div>
-                                    水箱
-                                    <input type="text" class="input-text" style="width: 40px;text-align: center;" value="1" placeholder="" id="" name="">
-                                </div>
-                            </td>
-                        </tr>
+                        <tbody id="back-product">
+
                         </tbody>
-                    </table>-->
+                    </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-5 col-sm-5">
-                    <script id="describeHandleDescText" type="text/plain" style="width:1024px;height:300px;"></script>
+                    <script id="describeHandleDescText" type="text/plain" style="width:650px;height:250px;"></script>
+                    </script>
                     <input type="hidden" id="describeHandleDesc" name="describeHandleDesc">
                 </div>
             </div>
@@ -454,34 +457,34 @@
                 </div>
             </div>
             <div id="needToVisit">
-                <div class="row cl" id="needToVisit">
+                <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="visitName">
+                        <input type="text" class="input-text" value="" placeholder="填写回访人姓名" id="" name="visitName"  datatype="s1-20" errormsg="回访人姓名格式不正确!" >
                     </div>
                     <div class="formControls col-2 col-sm-2">
-                        <input type="text" class="input-text" value="" placeholder="填写回访人手机号" id="" name="visitTel">
+                        <input type="text" class="input-text" value="" placeholder="填写回访人手机号" id="" name="visitTel" datatype="m" errormsg="回访人手机号码格式不正确!">
                     </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"  name="visitDate" class="input-text Wdate" onclick="WdatePicker({skin:'whyGreen',minDate:'%y-%M-%d'})"  readonly="readonly">
+                        <input type="text" placeholder="请选择回访日期" id="datemin"  name="visitDate" datatype="*" class="input-text Wdate" onclick="WdatePicker({skin:'whyGreen',minDate:'%y-%M-%d'})"  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="visit-time-1" name="visitTimeSelect">
+                            <input type="radio" id="visit-time-1" name="visitTimeSelect" value="1" checked>
                             <label for="visit-time-1">09:00-12:00</label>
                         </div>
                         <div class="radio-box">
-                            <input type="radio" id="visit-time-2" name="visitTimeSelect">
+                            <input type="radio" id="visit-time-2" name="visitTimeSelect" value="2">
                             <label for="visit-time-2">12:00-14:00</label>
                         </div>
                         <div class="radio-box">
-                            <input type="radio" id="visit-time-3" name="visitTimeSelect">
+                            <input type="radio" id="visit-time-3" name="visitTimeSelect" value="3">
                             <label for="visit-time-3">14:00-18:00</label>
                         </div>
                     </div>
@@ -489,7 +492,7 @@
                 <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" id="visitAdminId" name="adminId">
+                    <select class="select" id="visitAdminId" name="visitAdminId">
 
                     </select>
                     </span>
@@ -532,6 +535,7 @@
 
 <script type="text/javascript">
     $(function(){
+
         $("#province").ProvinceCity();
         $('.skin-minimal input').iCheck({
             checkboxClass: 'icheckbox-blue',
@@ -553,8 +557,13 @@
 
         $("#questionId").val($(this).find(".quesId").val());
 
+        var title = $(this).prev().html();
+        $("#describeTitle").val(title);
+
+        //$("#questionId").val(.find(".quesId").val());
+
         //$("#answer-textarea").text();
-        //$(".dalog-ask").hide(); 隐藏qa
+        $(".dalog-ask").hide(); //隐藏qa
     });
 
     /*实时监听文本框-- 员工编号*/
@@ -654,14 +663,13 @@
         /*监听回访类型选择事件  是否需要回访  1:不需要回访  2:需要回复  */
         $("input[name='customerIsVisit']").change(function (){
             if($(this).val() == 2){
-                $("#needToVisit").show();
+                $("#needToVisit").css("display","block");
             }else{
-                $("#needToVisit").hide();
+                $("#needToVisit").css("display","none");
             }
         })
 
 
-
         /*监听回访选择客服的选择事件*/
         $(document).on('change', '#visitAdminId', function() {
             var visitAdminName = $("#visitAdminId").find("option:selected").text();
@@ -732,8 +740,11 @@
     }
 
     /*获取客服*/
+    var sysAminList;
     function getSysAdmin(){
-        var sysAminList;
+        if(sysAminList != null && sysAminList.length > 0){
+            return sysAminList
+        }
         $.ajax({
             type: "POST",
             data: {
@@ -1003,7 +1014,7 @@
     function initComplaintQuestionInfo(){
         var complaintId = $("[name='complaintId']").val();
         var smallClassId = $("[name='smallClassId']").val();;
-        var questionName = $("[name='questionId']").val();;;
+        var questionName = $("[name='questionIdMsg']").val();;;
         var html = "";
         $.ajax({
             type: "POST",
@@ -1057,6 +1068,8 @@
         var html = '';
         var address = ''; //地址
         var orderItemList = {};
+        var companyId = ''; //销售公司
+        var storeId = '';  //店铺
         $.ajax({
             type: "POST",
             data: {
@@ -1069,6 +1082,9 @@
                     for(var i=0;i<data.returnMsg.salesOrderList.length;i++){
                         var salesOrder = data.returnMsg.salesOrderList[i];
 
+                        companyId = salesOrder.salesCompanyId;
+                        storeId = salesOrder.salesStoreId;
+
                         var productsHtml = '';
                         var salesOrderItem = salesOrder.salesOrderItemList;
                         orderItemList = salesOrder.salesOrderItemList;
@@ -1108,6 +1124,10 @@
         $("#addressInfo").val(address);
         setAdress();  //显示地址
         setProduce(orderItemList); //显示产品
+
+        $("#companyId").val(companyId);
+        $("#storeId").val(storeId);
+        $("#orderId").val(orderId);
     }
 
     /**
@@ -1129,7 +1149,11 @@
         var proId = setPro(getAddress(addresList[0],0),1);
         var cityId = setCity(getAddress(addresList[1],1),proId,1);
         setDistrict(getAddress(addresList[2],2),cityId,1);
-        $("#sendAddress").val(addresList[3]);
+        var sendAddress = addresList[3];
+        if(addresList.length > 4){
+            sendAddress += addresList[4];
+        }
+        $("#sendAddress").val(sendAddress);
     }
 
     /***
@@ -1287,39 +1311,54 @@
 
             var colorHtml = '';
             if(colorList != null && colorList.length >0 ){
-                for(var k=0;k<orderItemList.length;k++){
-                    var item = orderItemList[k];
-                    for(var j=0;j<colorList.length;j++){
-                        var color = colorList[j];
-                        var number = "";
+                colorHtml += '<table style="height: 100%;">';
+                for(var j=0;j<colorList.length;j++){
+                    var number = "";
+                    var color = colorList[j];
+                    for(var k=0;k<orderItemList.length;k++){
+                        var item = orderItemList[k];
                         if(item.itemColorId == color.colorId){
                             number = item.itemNum;
                         }
-                        if(color.colorProductId == product.productId) {
-                            colorHtml += '<div class="color-div">' +
-                                    '<input type="hidden" value="' + color.colorId + '">' +
-                                    '<span>' + color.colorName + '<span>&nbsp;&nbsp;' +
-                                    '<input type="text" class="input-text input-produce input-pro-number" style="width: 40px;text-align: center;" value="'+ number +'" placeholder="" id="" name="">' +
-                                    '</div>';
-                        }
                     }
+                    var fristInputStyle = "border-top: 1px solid #ddd;";
+                    if(color.colorProductId == product.productId) {
+                        colorHtml += '<tr >' +
+                                '         <td width="85" style="border-left: none;text-align: center;'+ fristInputStyle +'">' + color.colorName + '</td>' +
+                                '         <td width="15" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + color.colorProductId + '">' +
+                                '             <input type="hidden" class="input-color-id" value="' + color.colorId + '">' +
+                                '             <input type="text" class="input-text input-color-number" style="width: 100%;" value="'+ number +'" placeholder="产品数量" id="" name="">' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
+                    }
+
                 }
+                colorHtml += '</table>';
             }else{
                 colorHtml += '<span>暂无该产品的颜色!<span>';
             }
 
             var produceFittingsHtml = '';
             if(produceFittings != null && produceFittings.length > 0){
+                produceFittingsHtml += '<table style="height: 100%;">';
                 for(var m=0;m<produceFittings.length;m++){
                     var produceFit = produceFittings[m];
-                    if(produceFit.productId == product.productId){
-                        produceFittingsHtml += '<div class="color-div">' +
-                                '<input type="hidden" value="' + produceFit.fittingsId +'">'+
-                                '<span>' + produceFit.fittingsName +'<span>&nbsp;&nbsp;'+
-                                '<input type="text" class="input-text input-produce input-pro-number" style="width: 40px;text-align: center;" value="" placeholder="" id="" name="">' +
-                                '</div>';
+                    if(produceFit.productId == product.productId) {
+                        var fristInputStyle = "border-top: 1px solid #ddd;";
+                        produceFittingsHtml += '<tr >' +
+                                '         <td width="85" style="border-left: none;text-align: center; '+ fristInputStyle +'">' + produceFit.fittingsName +'</td>' +
+                                '         <td width="15" style="'+ fristInputStyle +'">' +
+                                '             <input type="hidden" class="input-produce-id" value="' + produceFit.productId + '">' +
+                                '             <input type="hidden" class="input-fittings-id" value="' + produceFit.fittingsId +'">' +
+                                '             <input type="text" class="input-text input-fittings-number" style="width: 100%;" value="'+ number +'" placeholder="产品数量" id="" name="">' +
+                                '         </td>' +
+                                '     </tr>';
+                        fristInputStyle = "";
                     }
                 }
+                produceFittingsHtml += '</table>';
             }else{
                 produceFittingsHtml += '<span>暂无产品配件!<span>';
             }
@@ -1328,11 +1367,11 @@
                     '<span>'+  product.productName +'</span>';
 
             html += ' <tr >' +
-                    '    <td>'+ produceHtml +'</td>' +
-                    '    <td>' +
+                    '    <td width="80">'+ produceHtml +'</td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
                     colorHtml +
-                    '    </td>' +
-                    '    <td>' +
+                    '   </td>' +
+                    '    <td style="padding: 0px;text-align: center;">' +
                     produceFittingsHtml +
                     '    </td>' +
                     '</tr>';
@@ -1342,7 +1381,7 @@
 
         initCheck(); //因为需要展示产品,所以再次初始化多选框
 
-        setBackProduct();  //设置寄回产品
+        setBackProduct(html);  //设置寄回产品
 
         monitorProduct();   //监听产品变化
     }
@@ -1391,65 +1430,23 @@
     /*监听产品变化*/
     function monitorProduct(){
         /*产品数量*/
-        $(".input-pro-number").blur(function (){
+        $("#addProduct").find(".input-color-number").blur(function (){
+            setBackProduct();
+        })
+        /*产品配件*/
+        $("#addProduct").find(".input-fittings-number").blur(function (){
             setBackProduct();
         })
-    }
-
-    /*添加产品*/
-    function addProduct(){
-        var html = '';
-        var productList = getProduct();
-
-        var produceHtml = '<select name="" class="select" style="width: 100px;">';
-        for(var i=0;i<productList.length;i++){
-
-        }
-        html+= '<div class="formControls col-1 col-sm-1">\n' +
-                '                    <a><img src="${path}/common/images/cm/add-produce.png" width="21" height="21"></button></a>\n' +
-                '                </div>'
-
-        html += '<div class="skin-minimal">' +
-                '          <div class="check-box">' +
-                '              <input type="checkbox" id="checkbox-1" checked>' +
-                '' +
-                '              <label for="checkbox-1">净水机</label> -' +
-                '' +
-                '              <label for="checkbox-1">净水机</label>' +
-                '' +
-                '              <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>'
-
     }
 
     /*设置寄回产品*/
-    function setBackProduct() {
-        var  html = '';
+    function setBackProduct(html) {
+        if(html != null && html != "" && typeof(html) != "undefined"){
+            $("#back-product").html(html);
+        }else{
 
-        $("#back-product").html(html);
+        }
     }
-
 </script>
 <script>
     $(function(){
@@ -1507,6 +1504,14 @@
         }
         /*----TDS收集模块--end-----*/
 
+        /* 地址拼接  */
+        var province = $("#province").find("option:selected").text();
+        var city = $("#city").find("option:selected").text();
+        var district = $("#district").find("option:selected").text();
+        var relationSendMergeAddress = province + "-" + city + "-" + district;
+        $("#relationSendMergeAddress").val(relationSendMergeAddress);
+        /* 地址拼接  */
+
         /*----问题描述- start --*/
         var describeContentText = UE.getEditor('describeContentText').getContent();
         $("#describeContent").val(describeContentText);
@@ -1517,7 +1522,75 @@
         $("#describeHandleDesc").val(describeHandleDescText);
         /*----处理描述--end-----*/
 
+        /* --- 类型:售后   处理结果:维修/换新/补发/退货/无理由退货 -- 处理产品 start---- */
+        var sendProdcues = new Array();  //寄出产品表
+        var sendFittings = new Array();
+        var closedProdcues = new Array();
+        var closedFittings = new Array();
+        $("#addProduct").find(".input-color-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var product = new Object();
+                product.productId = $(this).parent().find(".input-produce-id").val();
+                product.colorId = $(this).parent().find(".input-color-id").val();
+                product.closedProdcueNumber = $(this).val();
+                //换新、维修,退货,无理由退货,
+                if(allCustomerType == 3 || allCustomerType == 4 || allCustomerType == 6 || allCustomerType == 7){
+                    closedProdcues.push(product);
+                }else if(allCustomerType == 5){
+                    sendProdcues.push(product);
+                }
+            }
+        })
+
+        $("#addProduct").find(".input-fittings-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                var fittings = new Object();
+                fittings.productId = $(this).parent().find(".input-produce-id").val();
+                fittings.fittingsId = $(this).parent().find(".input-fittings-id").val();
+                fittings.sendFittingNumber = $(this).val();
+                //换新、维修,退货,无理由退货,
+                if(allCustomerType == 3 || allCustomerType == 4 || allCustomerType == 6 || allCustomerType == 7){
+                    closedFittings.push(fittings);
+                }else if(allCustomerType == 5){
+                    sendFittings.push(fittings);
+                }
+            }
+        })
+
+        $("#back-product").find(".input-color-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                //换新、维修,
+                if(allCustomerType == 3 || allCustomerType == 4){
+                    var fittings = new Object();
+                    fittings.productId = $(this).parent().find(".input-produce-id").val();
+                    fittings.fittingsId = $(this).parent().find(".input-fittings-id").val();
+                    fittings.sendFittingNumber = $(this).val();
+                    sendProdcues.push(fittings);
+                }
+            }
+        })
+
+        $("#back-product").find(".input-fittings-number").each(function(){
+            var number = $(this).val();
+            if(number != null && number != ""){
+                //换新、维修
+                if(allCustomerType == 3 || allCustomerType == 4){
+                    var fittings = new Object();
+                    fittings.productId = $(this).parent().find(".input-produce-id").val();
+                    fittings.fittingsId = $(this).parent().find(".input-fittings-id").val();
+                    fittings.sendFittingNumber = $(this).val();
+                    sendFittings.push(fittings);
+                }
+            }
+        })
 
+        $("#sendProdcues").val(JSON.stringify(sendProdcues));
+        $("#sendFittings").val(JSON.stringify(sendFittings));
+        $("#closedProdcues").val(JSON.stringify(closedProdcues));
+        $("#closedFittings").val(JSON.stringify(closedFittings));
     }
 
     /* 添加客诉 */