Преглед на файлове

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

liuzhiwei преди 7 години
родител
ревизия
f563603b40
променени са 15 файла, в които са добавени 357 реда и са изтрити 98 реда
  1. 11 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ComplaintQuestionInfo.java
  2. 2 2
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrderItem.java
  3. 7 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/ComplaintQuestionInfoService.java
  4. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/ComplaintQuestionInfoServiceImpl.java
  5. 21 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  6. 22 16
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintQuestionInfoMapper.xml
  7. 4 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  8. 43 23
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  9. 25 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/ComplaintQuestionInfoController.java
  10. 1 0
      watero-rst-web/src/main/resources/platform.properties
  11. 199 41
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  12. 12 10
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl
  13. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/view_progress.ftl
  14. 1 1
      watero-rst-web/src/main/webapp/common/lib/ueditor/1.4.3/ueditor.all.js
  15. 1 1
      watero-rst-web/src/main/webapp/common/lib/ueditor/1.4.3/ueditor.all.min.js

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

@@ -16,13 +16,15 @@ public class ComplaintQuestionInfo implements Serializable {
     private Integer smallClassId;       //所属小类
     private String questionName;       //问题名称
     private String questionProfile;    //问题回复
-    private Integer questionState;      //问题状态
+    private Integer questionState;      //问题状态  1 使用中  2停止使用
     private Integer questionIsQcDetect; //是否需要QC检测0 .不需要;1 需要
     private Date questionCreateTime; //创建时间
     private Date questionUpdateTime; //修改时间
     private Integer questionResolvedNum;//已解决总数
     private Integer questionNotSolvedNum;//未解决总数
 
+    private Integer complaintId; //问题分类id
+
     public Integer getQuestionId() {
         return questionId;
     }
@@ -102,4 +104,12 @@ public class ComplaintQuestionInfo implements Serializable {
     public void setQuestionNotSolvedNum(Integer questionNotSolvedNum) {
         this.questionNotSolvedNum = questionNotSolvedNum;
     }
+
+    public Integer getComplaintId() {
+        return complaintId;
+    }
+
+    public void setComplaintId(Integer complaintId) {
+        this.complaintId = complaintId;
+    }
 }

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

@@ -13,11 +13,11 @@ public class SalesOrderItem implements Serializable {
     private Integer itemOrderId;        //所属订单
     private Integer itemProductId;      //产品id
     private Integer itemNum;            //产品数量
-    private Integer itemColorId;        //产品颜色
+    private Integer itemColorId;        //产品颜色         为配件时存储配件id
     private Integer itemProductType;    //产品类型id
     private String itemProductName;     //商品名称
     private String itemProductPic;      //介绍图
-    private String itemProductColor;    //产品颜色
+    private String itemProductColor;    //产品颜色         为配件时存储配件名称
     private String itemColorBar;        //产品SKU码(百胜)
     private Integer itemProductPrice;   //产品市场价
     private Integer itemProductDiscount;//产品折扣价

+ 7 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/ComplaintQuestionInfoService.java

@@ -14,6 +14,13 @@ public interface ComplaintQuestionInfoService {
      * @return
      */
     int insert(ComplaintQuestionInfo record);
+
+    /**
+     * 添加单个客诉问题
+     * @return
+     */
+    ComplaintQuestionInfo insertBackInfo(ComplaintQuestionInfo record);
+
     /**
      * 查询单个客诉问题
      * @return

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/ComplaintQuestionInfoServiceImpl.java

@@ -23,6 +23,12 @@ public class ComplaintQuestionInfoServiceImpl implements ComplaintQuestionInfoSe
     }
 
     @Override
+    public ComplaintQuestionInfo insertBackInfo(ComplaintQuestionInfo record) {
+        complaintDetectInfoMapper.insert(record);
+        return record;
+    }
+
+    @Override
     public ComplaintQuestionInfo getQuestionById(Integer questionId) {
         return complaintDetectInfoMapper.getQuestionById(questionId);
     }

+ 21 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -75,6 +75,7 @@ public class CustomerServiceImpl implements CustomerService {
     private EfastOrderService efastOrderService;
 
 
+
     @Override
     public CustomerInfo getCustomerInfo(Integer customerId) {
         return customerInfoMapper.getCustomerInfo(customerId);
@@ -361,6 +362,8 @@ public class CustomerServiceImpl implements CustomerService {
             }
         }
 
+        awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
+        awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId());   //仓储id
         awaitingSignclosedProductInfo.setSignclosedProductType(2);  //类型为配件
         for(int i=0 ;i< customerCommon.getClosedFittings().size();i++){
             ClosedFitting closedFitting = customerCommon.getClosedFittings().get(i);
@@ -475,7 +478,23 @@ public class CustomerServiceImpl implements CustomerService {
      * 向Efast推送订单--添加订单
      * @return
      */
+    @Transactional
     public Map<String,Object> sendEfastOrder(SalesOrder salesOrder) throws Exception{
+
+        //添加订单数据
+        int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
+        if (orderNum <= 0) {
+            throw new Exception("添加订单失败");
+        }
+        for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
+            item.setItemOrderId(salesOrder.getSalesId());
+        }
+        //批量添加订单项数据
+        int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
+        if (itemNum <= 0) {
+            throw new Exception("添加订单项失败");
+        }
+
         Map<String,Object> map = new HashMap<String,Object>();
         List<EfastOrder> orderList = new ArrayList<EfastOrder>();
         List<OrderItem> itemList = new ArrayList<OrderItem>();
@@ -562,6 +581,8 @@ public class CustomerServiceImpl implements CustomerService {
         }
         if(oList != null && oList.size() > 0){
             map.put("EfastOrderId",oList.get(0).getOrderId());
+        }else{
+            throw new Exception("添加订单项失败");
         }
         map.put("status",status);
         return map;

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

@@ -32,24 +32,30 @@
   </select>
 
   <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
-    from tb_rst_complaint_question
+    SELECT
+      tb_rst_complaint_question.question_id,
+      tb_rst_complaint_question.small_class_id,
+      tb_rst_complaint_question.question_name,
+      tb_rst_complaint_question.question_profile,
+      tb_rst_complaint_question.question_state,
+      tb_rst_complaint_question.question_is_qc_detect,
+      tb_rst_complaint_question.question_create_time,
+      tb_rst_complaint_question.question_update_time,
+      tb_rst_complaint_question.question_resolved_num,
+      tb_rst_complaint_question.question_not_solved_num
+    FROM
+      tb_rst_complaint_question
+    INNER JOIN tb_rst_complaint_small_class ON tb_rst_complaint_question.small_class_id = tb_rst_complaint_small_class.small_class_id
+    INNER JOIN tb_rst_complaint_type ON tb_rst_complaint_small_class.complaint_id = tb_rst_complaint_type.complaint_id
     <where>
       <if test="questionId !=null">
         AND question_id = #{questionId}
       </if>
       <if test="smallClassId !=null">
-        AND small_class_id = #{smallClassId}
+        AND tb_rst_complaint_small_class.small_class_id = #{smallClassId}
+      </if>
+      <if test="complaintId !=null">
+        AND tb_rst_complaint_type.complaint_id = #{complaintId}
       </if>
       <if test="questionName !=null and questionName !=''">
         AND question_name like CONCAT('%',#{questionName},'%')
@@ -60,12 +66,12 @@
     limit 0,5
   </select>
 
-  <insert id="insert" parameterType="ComplaintQuestionInfo" >
-    insert into tb_rst_complaint_question (question_id, small_class_id, question_name, 
+  <insert id="insert" parameterType="ComplaintQuestionInfo"  useGeneratedKeys="true" keyProperty="questionId">
+    insert into tb_rst_complaint_question (small_class_id, question_name,
       question_state, question_is_qc_detect, question_create_time, 
       question_update_time, question_profile,question_resolved_num,question_not_solved_num
       )
-    values (#{questionId,jdbcType=INTEGER}, #{smallClassId,jdbcType=INTEGER}, #{questionName,jdbcType=VARCHAR}, 
+    values ( #{smallClassId,jdbcType=INTEGER}, #{questionName,jdbcType=VARCHAR},
       #{questionState,jdbcType=BIT}, #{questionIsQcDetect,jdbcType=BIT}, #{questionCreateTime,jdbcType=TIMESTAMP}, 
       #{questionUpdateTime,jdbcType=TIMESTAMP}, #{questionProfile,jdbcType=LONGVARCHAR}, #{questionResolvedNum,jdbcType=INTEGER}
       , #{questionNotSolvedNum,jdbcType=INTEGER}

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

@@ -214,6 +214,9 @@
   <update id="updateSalesOrder" parameterType="SalesOrder" >
     update tb_rst_sales_order_info
     <set >
+      <if test="salesOrderStatus != null">
+        sales_order_status = #{salesOrderStatus},
+      </if>
       <if test="salesOrderId != null" >
         sales_orderId = #{salesOrderId,jdbcType=VARCHAR},
       </if>
@@ -299,7 +302,7 @@
         sales_type = #{salesType,jdbcType=INTEGER},
       </if>
     </set>
-    where sales_id = #{salesId,jdbcType=INTEGER}
+    where sales_id = #{salesId}
   </update>
 
   <!-- 批量修改订单信息 -->

+ 43 - 23
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -172,17 +172,30 @@ public class AdminCustomerController {
 
         for(int i=0;i<list.size();i++){
             SalesOrderItem salesOrderItem = list.get(i);
-            Product product = productService.getProductById(salesOrderItem.getItemProductId());
-            ProductColor productColor = productService.getProduceColor(salesOrderItem.getItemProductId());
-            salesOrderItem.setItemProductType(product.getProductType());
-            salesOrderItem.setItemProductName(product.getProductName());
-            salesOrderItem.setItemProductPic(productColor.getColorPicture());
-            salesOrderItem.setItemProductColor(productColor.getColorName());
-            salesOrderItem.setItemColorBar(productColor.getColorBar());
-            salesOrderItem.setItemProductPrice(productColor.getColorPrice());
-            salesOrderItem.setItemProductDiscount(productColor.getColorDiscount());
-            salesOrderItem.setItemIsSource(1);
-            salesAmount += productColor.getColorDiscount();
+            if(salesOrderItem.getItemIsSource() == 1){ //产品来源 1:产品颜色表,2:配件表
+                Product product = productService.getProductById(salesOrderItem.getItemProductId());
+                ProductColor productColor = productService.getProduceColor(salesOrderItem.getItemProductId());
+                salesOrderItem.setItemProductType(product.getProductType());
+                salesOrderItem.setItemProductName(product.getProductName());
+                salesOrderItem.setItemProductPic(productColor.getColorPicture());
+                salesOrderItem.setItemProductColor(productColor.getColorName());
+                salesOrderItem.setItemColorBar(productColor.getColorBar());
+                salesOrderItem.setItemProductPrice(productColor.getColorPrice());
+                salesOrderItem.setItemProductDiscount(productColor.getColorDiscount());
+                salesOrderItem.setItemIsSource(1);
+                salesAmount += productColor.getColorDiscount();
+            }else if(salesOrderItem.getItemIsSource() == 2){
+                Product product = productService.getProductById(salesOrderItem.getItemProductId());
+                FittingsInfo fittingsInfo = fittingsInfoService.getFittingsById( salesOrderItem.getItemColorId());
+                salesOrderItem.setItemProductType(product.getProductType());
+                salesOrderItem.setItemProductName(product.getProductName());
+                salesOrderItem.setItemProductColor(fittingsInfo.getFittingsName());
+                salesOrderItem.setItemColorBar(fittingsInfo.getFittingsBar());
+                salesOrderItem.setItemProductPrice(fittingsInfo.getFittingsPrice());
+                salesOrderItem.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
+                salesOrderItem.setItemIsSource(2);
+                salesAmount += fittingsInfo.getFittingsDiscount();
+            }
         }
 
         salesOrder.setSalesOpenId("0");
@@ -215,7 +228,8 @@ public class AdminCustomerController {
         salesOrder.setSalesDealCode(orderCode);
         salesOrder.setSalesOrderId(orderCode);
 
-        salesOrder = salesOrderService.addOrderAndIteminfo(salesOrder,list);
+        //salesOrder = salesOrderService.addOrderAndIteminfo(salesOrder,list);
+        salesOrder.setSalesOrderItemList(list);
 
         Map<String,Object>  map = customerService.sendEfastOrder(salesOrder);
         if(map.get("status") == 1){
@@ -634,19 +648,20 @@ public class AdminCustomerController {
         if(typeCompany == null || typeCompany == 0){
             return new ResponseJson(500, "未获取到产品类型!", 500);
         }
-
-        if(complaintQuestionInfo.getQuestionId() == null){
-            return new ResponseJson(500, "未获取到问题信息或邮寄信息!", 500);
-        }
-
-        flag =  complaintQuestionInfoService.updateQuestionById(complaintQuestionInfo);
-        if (flag < 1) {
-            return new ResponseJson(500, "问题修改失败!", 500);
-        }
-
         String con = "";
         if(type != null && !"".equals(type)){
             if( "p".equals(type)){ //problem" 问题处理;  mailAddress:邮寄地址;
+                if(complaintQuestionInfo.getQuestionId() == null || "".equals(complaintQuestionInfo.getQuestionId())){
+                    complaintQuestionInfo.setQuestionState(1);
+                    complaintQuestionInfo.setQuestionIsQcDetect(0);
+                    complaintQuestionInfo =  complaintQuestionInfoService.insertBackInfo(complaintQuestionInfo);
+                }else{
+                    complaintQuestionInfo.setSmallClassId(null);    //不能修改小类类型
+                    flag =  complaintQuestionInfoService.updateQuestionById(complaintQuestionInfo);
+                    if (flag < 1) {
+                        return new ResponseJson(500, "问题修改失败!", 500);
+                    }
+                }
                 url += "/"+complaintQuestionInfo.getQuestionId();
                 switch (typeCompany){
                     case 1:
@@ -660,7 +675,12 @@ public class AdminCustomerController {
                         break;
                 }
             }else if( "m".equals(type)){
+
+                if(complaintQuestionInfo.getQuestionId() == null){
+                    return new ResponseJson(500, "未获取到邮寄信息!", 500);
+                }
                 complaintQuestionInfo.setQuestionName(null);
+                complaintQuestionInfo.setSmallClassId(null);
                 url += "/5";
                 switch (typeCompany){
                     case 1:
@@ -683,7 +703,7 @@ public class AdminCustomerController {
         if("SUCCESS".equals(result)){
             return new ResponseJson(200, "发送短信成功", 200);
         }else{
-            return new ResponseJson(200, "发送短信失败", 200);
+            return new ResponseJson(500, "发送短信失败,失败原因:" + result, 500);
         }
     }
 

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

@@ -103,6 +103,31 @@ public class ComplaintQuestionInfoController {
         }
     }
 
+    /**
+     * 保存问题
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/save_question")
+    public ResponseJson saveQuestion(HttpServletRequest request,ComplaintQuestionInfo complaintQuestionInfo) {
+        Integer flag;
+        if(complaintQuestionInfo.getQuestionId() == null || "".equals(complaintQuestionInfo.getQuestionId())){
+            complaintQuestionInfo.setQuestionState(1);
+            complaintQuestionInfo.setQuestionIsQcDetect(0);
+            complaintQuestionInfo = complaintQuestionInfoService.insertBackInfo(complaintQuestionInfo);
+        }else{
+            complaintQuestionInfo.setSmallClassId(null);    //不能修改小类类型
+            flag =  complaintQuestionInfoService.updateQuestionById(complaintQuestionInfo);
+            if (flag < 1) {
+                return new ResponseJson(500, "问题修改失败!", 500);
+            }
+        }
+        ResponseJson rj =new ResponseJson(200, "问题保存成功", 200);
+        rj.addResponseKeyValue("questionId", complaintQuestionInfo.getQuestionId());
+        return rj;
+    }
+
 
     /**
      * 修改是否已解决总数

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

@@ -50,6 +50,7 @@ SEND_PRODUCT_SEND_YULIA=\u3010YULIA\u51C0\u6C34\u673A\u3011\u5C0A\u656C\u7684\u5
 RELATION_SEND_WATERO=\u3010\u7F8E\u56FDWaterO\u3011\u5C0A\u656C\u7684\u5BA2\u6237\uFF0C\u60A8\u7533\u8BF7\u7684{0}\u5DF2\u5904\u7406\u53D1\u8D27\uFF0C\u7269\u6D41\u4FE1\u606F\uFF1A{1}\u3002
 RELATION_SEND_SHANGDUO=\u3010\u4E0A\u6735\u5FAE\u5546\u57CE\u3011\u5C0A\u656C\u7684\u5BA2\u6237\uFF0C\u60A8\u7533\u8BF7\u7684{0}\u5DF2\u5904\u7406\u53D1\u8D27\uFF0C\u7269\u6D41\u4FE1\u606F\uFF1A{1}\u3002
 RELATION_SEND_YULIA=\u3010YULIA\u51C0\u6C34\u673A\u3011\u5C0A\u656C\u7684\u5BA2\u6237\uFF0C\u60A8\u7533\u8BF7\u7684{0}\u5DF2\u5904\u7406\u53D1\u8D27\uFF0C\u7269\u6D41\u4FE1\u606F\uFF1A{1}\u3002
+
 #---SMS end---#
 #weixin
 # pubNo

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

@@ -145,7 +145,7 @@
 				</span>
                 </div>
                 <div class="formControls col-2 col-sm-2"> <span class="select-box">
-				<select name="smallClassId" class="select">
+				<select name="smallClassId" id="smallClassId" class="select">
 					<#--<option value="0">使用操作制水出水</option>
 					<option value="1">使用操作制水出水</option>-->
 				</select>
@@ -180,10 +180,10 @@
             <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">
+                    <input type="hidden" name="questionId" id="questionId" value="">
                     <script id="describeContentText" type="text/plain" style="width:983px;height:250px;"></script>
                     </script>
-                    <input type="hidden" name="describeContent" id="describeContent">
+                    <input type="hidden" name="describeContent" id="describeContent" value="">
                 </div>
             </div>
             <div class="row cl">
@@ -194,6 +194,9 @@
                 <div class="formControls col-2 col-sm-2" style="width: 10%">
                     <input type="button" class="btn btn-primary" value="发短信給用户" onclick="sendPhone('p','p-msg');">
                 </div>
+                <div class="formControls col-2 col-sm-2" style="width: 10%">
+                    <input type="button" class="btn btn-primary" value="保存QA" onclick="saveQuestion();">
+                </div>
                 <div class="formControls col-2 col-sm-2 msg-phone">
                     <div id="p-msg" style="color: #e00"></div>
                 </div>
@@ -403,7 +406,7 @@
                 </div>
             </div>
             <div class="row cl" id="updateProduct" style="display: none;">
-                <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-9 col-sm-9" >
 
                     <table class="table table-border table-bg table-bordered">
@@ -693,6 +696,7 @@
 
     /*全局标识当前状态  type : 1 :已解决  2:未解决  3:换新  4:维修  5:补发   6:退货  7:无理由退货*/
     var allCustomerType = 1;
+    var allCustomerTypeName = ["已解决","未解决","换新","维修","补发","退货","无理由退货"];
 
     /*  寄回地址的id */
     var complaint_questionId = 5;
@@ -761,13 +765,8 @@
         });
 
         /*监听回访类型选择事件  是否需要回访  1:不需要回访  2:需要回复  */
-        $("input[name='customerIsVisit']").change(function (){
-            if($(this).val() == 2){
-                $("#needToVisit").css("display","block");
-            }else{
-                $("#needToVisit").css("display","none");
-            }
-        })
+       initVisitEvent();
+
 
         /*监听回访选择客服的选择事件*/
         $(document).on('change', '#visitAdminId', function() {
@@ -806,6 +805,16 @@
 
     })
 
+    function initVisitEvent(){
+        $("input[name='customerIsVisit']").change(function (){
+            if($(this).val() == 2){
+                $("#needToVisit").css("display","block");
+            }else{
+                $("#needToVisit").css("display","none");
+            }
+        })
+    }
+
     /*初始化单选框样式*/
     function initCheck(){
         $('.skin-minimal input').iCheck({
@@ -837,6 +846,7 @@
             initCheckByNode($("#customer-visit-1"));
             $("#needToVisit").css("display","block");
         }
+        initVisitEvent();
     }
 
     function keyFun(node){
@@ -1138,15 +1148,16 @@
     function initComplaintTypeInfo() {
         //默认为售前咨询
         var customerCounselTypeOverall = allCustomerInfoType;
-        var html = "";
+
         $.ajax({
             type: "POST",
             data: {
                 complaintConsultingType : customerCounselTypeOverall
             },
             url: "${path}/admin/complaintQuestion/list_complaintType",
-            async: false,
+            async: true,
             success: function(data){
+                var html = '<option value="">请选择问题分类</option>';
                 var id;
                 if (data.returnCode == 200) {
                     for(var i=0;i<data.returnMsg.complaintTypeInfoList.length;i++){
@@ -1160,7 +1171,6 @@
                     html = '';
                 }
                 $("[name='complaintId']").html(html);
-                initComplaintSmallClassInfo(id)
             },
             error: function(XmlHttpRequest, textStatus, errorThrown){
             }
@@ -1169,28 +1179,33 @@
 
     /*显示小类*/
     function initComplaintSmallClassInfo(complaintId){
-        var html = "";
-        $.ajax({
-            type: "POST",
-            data: {
-                complaintId : complaintId
-            },
-            url: "${path}/admin/complaintQuestion/list_complaintSmallClass",
-            async: false,
-            success: function(data){
-                if (data.returnCode == 200) {
-                    for(var i=0;i<data.returnMsg.complaintSmallClassInfoList.length;i++){
-                        var ComplaintSmallClassInfo = data.returnMsg.complaintSmallClassInfoList[i];
-                        html += '<option value="'+ ComplaintSmallClassInfo.smallClassId +'">'+ ComplaintSmallClassInfo.smallClassName +'</option>';
+        if(complaintId == null || complaintId == ""){
+            var html = '<option value="">请选择问题小类</option>';
+            $("[name='smallClassId']").html(html);
+        }else{
+            $.ajax({
+                type: "POST",
+                data: {
+                    complaintId : complaintId
+                },
+                url: "${path}/admin/complaintQuestion/list_complaintSmallClass",
+                async: true,
+                success: function(data){
+                    var html = '<option value="">请选择问题小类</option>';
+                    if (data.returnCode == 200) {
+                        for(var i=0;i<data.returnMsg.complaintSmallClassInfoList.length;i++){
+                            var ComplaintSmallClassInfo = data.returnMsg.complaintSmallClassInfoList[i];
+                            html += '<option value="'+ ComplaintSmallClassInfo.smallClassId +'">'+ ComplaintSmallClassInfo.smallClassName +'</option>';
+                        }
+                    }else{
+                        html = '';
                     }
-                }else{
-                    html = '';
+                    $("[name='smallClassId']").html(html);
+                },
+                error: function(XmlHttpRequest, textStatus, errorThrown){
                 }
-                $("[name='smallClassId']").html(html);
-            },
-            error: function(XmlHttpRequest, textStatus, errorThrown){
-            }
-        });
+            });
+        }
     }
 
 
@@ -1229,7 +1244,7 @@
                             var complaintQuestion= data.returnMsg.complaintQuestionInfoList[i];
                             html += '<li class="ask">'+ complaintQuestion.questionName +'' +
                                     '</li>' +
-                                    '<li class="answer" style="height: 65px;overflow: hidden;">答:<span>'+ complaintQuestion.questionProfile +'</span><input class="quesId" value="'+ complaintQuestion.questionId +'"></li>';
+                                    '<li class="answer" style="height: 65px;overflow: hidden;">答:<span>'+ complaintQuestion.questionProfile +'</span><input class="quesId" type="hidden" value="'+ complaintQuestion.questionId +'"></li>';
                         }
                     }else{
                         html = '';
@@ -1264,28 +1279,40 @@
         var phone = "";
         var questionId = "";
         var describeTitle = "";
+        var smallClassId = "";  /* 客诉问题类型小类id */
         var typeCompany = parseInt($("input:radio[name='typeId']:checked").attr("typeCompany"));
         if(type == "p"){
             phone = $("#p-phone").val();
             questionId = $("#questionId").val();
             describeTitle = $("#describeTitle").val();
             desc = UE.getEditor('describeContentText').getContent();
+            smallClassId = $("#smallClassId").val();
+            if(smallClassId == null || smallClassId == "" ){
+                layer.close(index);
+                layer.msg("请选择问题分类", {icon: 5, time: 3000});
+                return false;
+            }
+            if(desc == null || desc == "" || describeTitle==null || describeTitle == ""){
+                layer.close(index);
+                layer.msg("信息不全,无法发送短信", {icon: 5, time: 3000});
+                return false;
+            }
         }else if(type == "m"){
             phone = $("#m-phone").val();
             questionId = complaint_questionId;
             desc = UE.getEditor('sendAddressSms').getContent();
+
+            if(desc == null || desc == "" || questionId==null || questionId == ""){
+                layer.close(index);
+                layer.msg("信息不全,无法发送短信", {icon: 5, time: 3000});
+                return false;
+            }
         }else{
             layer.close(index);
             layer.msg("发送报错", {icon: 5, time: 3000});
             return false;
         }
 
-        if(desc == null || desc == "" || questionId==null || questionId == ""){
-            layer.close(index);
-            layer.msg("信息不全,无法发送短信", {icon: 5, time: 3000});
-            return false;
-        }
-
         var reg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
         if(!reg.test(phone)){
             layer.close(index);
@@ -1300,6 +1327,7 @@
                 typeCompany : typeCompany,
                 phone : phone,
                 questionId : questionId,
+                smallClassId : smallClassId,
                 questionName : describeTitle,
                 questionProfile : desc       //回复内容
             },
@@ -1313,7 +1341,71 @@
                         $("#m-msg").html(data.resultMsg);
                     }
                 }else{
+                    if(type == "p"){
+                        $("#p-msg").html(data.resultMsg);
+                    }else  if(type == "m"){
+                        $("#m-msg").html(data.resultMsg);
+                    }
+                }
+                layer.close(index);
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+                if(type == "p"){
+                    $("#p-msg").html("发送短信失败");
+                }else  if(type == "m"){
+                    $("#m-msg").html("发送短信失败");
+                }
+                layer.close(index);
+            }
+        });
+    }
 
+    /*保存QA问题*/
+    function saveQuestion(){
+        var index = layer.load(1, {
+            shade: [0.5,'#fff'] //0.1透明度的白色背景
+        });
+        var desc = "";
+        var questionId = "";
+        var describeTitle = "";
+        var smallClassId = "";  /* 客诉问题类型小类id */
+
+        questionId = $("#questionId").val();
+        describeTitle = $("#describeTitle").val();
+        desc = UE.getEditor('describeContentText').getContent();
+        smallClassId = $("#smallClassId").val();
+        if((smallClassId == null || smallClassId == "") && (questionId == null || questionId == "") ){
+            layer.close(index);
+            layer.msg("请选择问题分类", {icon: 5, time: 3000});
+            return false;
+        }
+        if(describeTitle==null || describeTitle == ""){
+            layer.close(index);
+            layer.msg("请填写问题标题", {icon: 5, time: 3000});
+            return false;
+        }
+        if(desc == null || desc == ""){
+            layer.close(index);
+            layer.msg("请填写问题内容", {icon: 5, time: 3000});
+            return false;
+        }
+
+        $.ajax({
+            type: "POST",
+            data: {
+                questionId : questionId,
+                smallClassId : smallClassId,
+                questionName : describeTitle,
+                questionProfile : desc       //回复内容
+            },
+            url: "${path}/admin/complaintQuestion/save_question",
+            async: true,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    $("#questionId").val(data.returnMsg.questionId);
+                    layer.msg(data.resultMsg, {icon: 1, time: 3000});
+                }else{
+                    layer.msg(data.resultMsg, {icon: 5, time: 3000});
                 }
                 layer.close(index);
             },
@@ -1902,6 +1994,56 @@
             }
         })
 
+        var process = true;
+        switch (allCustomerType){
+            case 3:
+                process = processIsEmpty([closedProdcues,closedFittings]);
+                if(!process){
+                    layer.msg("必须选择一个换新寄回的产品或配件并填写数量!", {icon: 5, time: 3000});
+                    return false;
+                }
+                process = processIsEmpty([sendProdcues,sendFittings]);
+                if(!process){
+                    layer.msg("必须选择一个换新寄送的产品或配件并填写数量!", {icon: 5, time: 3000});
+                    return false;
+                }
+                break;
+            case 4:
+                process = processIsEmpty([closedProdcues,closedFittings]);
+                if(!process){
+                    layer.msg("必须选择一个维修寄回的产品或配件并填写数量!", {icon: 5, time: 3000});
+                    return false;
+                }
+                process = processIsEmpty([sendProdcues,sendFittings]);
+                if(!process){
+                    layer.msg("必须选择一个维修寄送的产品或配件并填写数量!", {icon: 5, time: 3000});
+                    return false;
+                }
+                break;
+            case 5:
+                process = processIsEmpty([sendProdcues,sendFittings]);
+                if(!process){
+                    layer.msg("必须选择一个补发寄送的产品或配件并填写数量!", {icon: 5, time: 3000});
+                    return false;
+                }
+                break;
+            case 6:
+                process = processIsEmpty([closedProdcues,closedFittings]);
+                if(!process){
+                    layer.msg("必须选择一个退货寄回的产品或配件并填写数量!", {icon: 5, time: 3000});
+                    return false;
+                }
+                break;
+            case 7:
+                process = processIsEmpty([closedProdcues,closedFittings]);
+                if(!process){
+                    layer.msg("必须选择一个退货寄回的产品或配件并填写数量!", {icon: 5, time: 3000});
+                    return false;
+                }
+                break;
+            default:
+                break;
+        }
         $("#sendProdcues").val(JSON.stringify(sendProdcues));
         $("#sendFittings").val(JSON.stringify(sendFittings));
         $("#closedProdcues").val(JSON.stringify(closedProdcues));
@@ -1910,6 +2052,22 @@
         return true;
     }
 
+    /* 判断产品与配件是否填入值 */
+    function processIsEmpty(process){
+        if(process != null && process != "" && process.length > 0){
+            var flag = 2;
+            if(process[0] == null ||  process[0].length < 1 ){
+                flag -- ;
+            }
+            if(process[1] == null ||  process[1].length < 1 ){
+                flag -- ;
+            }
+            if(flag == 0){
+                return false
+            }
+        }
+        return true;
+    }
 </script>
 
 <!--/请在上方写此页面业务相关的脚本-->

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

@@ -414,19 +414,21 @@
                         salesOrderItem.itemProductId = $(this).parent().find(".input-produce-id").val();
                         salesOrderItem.itemColorId = $(this).parent().find(".input-color-id").val();
                         salesOrderItem.itemNum = number;
+                        salesOrderItem.itemIsSource = 1;    /*标识产品*/
+                        itemList.push(salesOrderItem);
+                    }
+                })
+                $("#addProduct").find(".input-fittings-number").each(function(){
+                    var number = $(this).val();
+                    if(number != null && number != ""){
+                        var salesOrderItem = new Object();
+                        salesOrderItem.itemProductId = $(this).parent().find(".input-produce-id").val();
+                        salesOrderItem.itemColorId = $(this).parent().find(".input-fittings-id").val();
+                        salesOrderItem.itemNum = number;
+                        salesOrderItem.itemIsSource = 2;    /*标识配件*/
                         itemList.push(salesOrderItem);
                     }
                 })
-//                $("#addProduct").find(".input-color-number").each(function(){
-//                    var number = $(this).val();
-//                    if(number != null && number != ""){
-//                        var salesOrderItem = new Object();
-//                        salesOrderItem.itemProductId = $(this).parent().find(".input-produce-id").val();
-//                        salesOrderItem.itemColorId = $(this).parent().find(".input-color-id").val();
-//                        salesOrderItem.itemNum = number;
-//                        itemList.push(salesOrderItem);
-//                    }
-//                })
                 $("#itemJson").val(JSON.stringify(itemList));
             },
             callback: function (data) {//异步回调函数

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

@@ -7,7 +7,7 @@
     <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
     <meta http-equiv="Cache-Control" content="no-siteapp" />
 <#include "/base/add_base.ftl">
-    <title>修改备注 - H-ui.filter v2.4</title>
+    <title>仓储进度</title>
     <style>
         .my-title{font-weight: 500;padding-left: 15px;position: relative;}
         .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
@@ -34,7 +34,7 @@
         <div class="input-box">
             <span>签收日期:</span>
             <#if signclosedInfo??>
-                ${signclosedInfo.signclosedDate?string("yyyy-MM-dd")!'暂无签收日期'}日
+                ${(signclosedInfo.signclosedDate?string("yyyy-MM-dd"))!'暂无签收日期'}日
             <#else >
                 暂无签收日期
             </#if>

+ 1 - 1
watero-rst-web/src/main/webapp/common/lib/ueditor/1.4.3/ueditor.all.js

@@ -6901,7 +6901,7 @@ var fillCharReg = new RegExp(domUtils.fillChar, 'g');
                     '.view{padding:0;word-wrap:break-word;cursor:text;height:90%;}\n' +
                     //设置默认字体和字号
                     //font-family不能呢随便改,在safari下fillchar会有解析问题
-                    'body{margin:8px;font-family:sans-serif;font-size:16px;}' +
+                    'body{margin:8px;font-family:sans-serif;font-size:12px;}' +
                     //设置段落间距
                     'p{margin:5px 0;}</style>' +
                     ( options.iframeCssUrl ? '<link rel=\'stylesheet\' type=\'text/css\' href=\'' + utils.unhtml(options.iframeCssUrl) + '\'/>' : '' ) +

Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
watero-rst-web/src/main/webapp/common/lib/ueditor/1.4.3/ueditor.all.min.js