ソースを参照

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

wangxiaoming 5 年 前
コミット
89fb9609f3
21 ファイル変更275 行追加48 行削除
  1. 9 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintDetectInfo.java
  2. 5 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/fm/ComplaintSignclosedInfoService.java
  3. 5 5
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java
  4. 2 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  5. 8 6
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java
  6. 35 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java
  7. 6 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintDetectInfoMapper.xml
  8. 5 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintSignclosedInfoMapper.xml
  9. 28 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminSignclosedController.java
  10. 1 1
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java
  11. 3 2
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  12. 10 4
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl
  13. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_customer.ftl
  14. 15 4
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_relation.ftl
  15. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_detect.ftl
  16. 37 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_detail.ftl
  17. 8 4
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_repair_list.ftl
  18. 8 8
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/perfect_detect.ftl
  19. 33 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/customer_signclosed_list.ftl
  20. 50 3
      watero-rst-web/src/main/webapp/WEB-INF/views/order/excel_to_order_new.ftl
  21. 1 1
      watero-rst-web/src/main/webapp/common/js/customer/customer.js

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintDetectInfo.java

@@ -103,6 +103,7 @@ public class ComplaintDetectInfo implements Serializable {
     private Integer detectIsPrint;// 是否打印 1未打印 2已打印
     private Date detectPrintTime;//首次打印时间
     private String signclosedName;//签收人姓名
+    private String signclosedTel;//签收人电话
     private Integer detectPlaceorder;//是否下单 1否 2是
     private String salesOrderId;//订单号
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@@ -860,4 +861,12 @@ public class ComplaintDetectInfo implements Serializable {
     public void setCompanyId(Integer companyId) {
         this.companyId = companyId;
     }
+
+    public String getSignclosedTel() {
+        return signclosedTel;
+    }
+
+    public void setSignclosedTel(String signclosedTel) {
+        this.signclosedTel = signclosedTel;
+    }
 }

+ 5 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/fm/ComplaintSignclosedInfoService.java

@@ -99,4 +99,9 @@ public interface ComplaintSignclosedInfoService {
      * @return
      */
     Integer getSignclosedDay(ComplaintSignclosedInfo complaintSignclosedInfo);
+    /**
+     * 改为优尼雅客户
+     * @return
+     */
+    Integer updateSignclosedByYny(ComplaintSignclosedInfo record);
 }

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

@@ -181,7 +181,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
             salesOrderItem.setItemOrderId(so.getSalesId());
             List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
             //去除已退货的订单项
-            int num = salesOrderItemList.size();
+            /*int num = salesOrderItemList.size();  2019年7月10日 更新
             for(int i = 0;i< num;){
                 SalesOrderItem item = salesOrderItemList.get(i);
                 if(item.getItemNum().intValue() == item.getItemReturnNum().intValue()){
@@ -191,7 +191,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
                 }else{
                     i++;
                 }
-            }
+            }*/
             for(SalesOrderItem item : salesOrderItemList){//判断是否包含净水机 1是 2否
                 if(item.getColorIsMachine() != null){
                     if(item.getColorIsMachine() == 1){
@@ -551,7 +551,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     @Override
     public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
         // 通过计算机名称来判断服务器环境
-        Map<String,String> map = System.getenv();
+        /*Map<String,String> map = System.getenv();
         String name = map.get("COMPUTERNAME");
         if ("iZ94klno8qrZ".equalsIgnoreCase(name)) {
             name = "RST_";
@@ -565,8 +565,8 @@ public class SalesOrderServiceImpl implements SalesOrderService {
             list = salesOrderMapper.listSalesOrderItem(salesOrderItem);
             RedisUtils.put(key, list);
             RedisUtils.expire(key, new Date(259200000 + System.currentTimeMillis()));
-        }
-        return list;
+        }*/
+        return salesOrderMapper.listSalesOrderItem(salesOrderItem);
     }
 
     @Override

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

@@ -184,7 +184,8 @@
     trsi.store_name  storeName,
     ci.customer_is_solve customerIsSolve,
     od.batch_create_time  batchCreateTime,
-    ao.admin_name AS salesAdminName
+    ao.admin_name AS salesAdminName,
+    oi.item_return_num AS itemReturnNum
     from tb_rst_sales_order_info
     LEFT JOIN tb_rst_sales_company trsc ON tb_rst_sales_order_info.sales_company_id = trsc.company_id
     LEFT JOIN tb_rst_store_info trsi ON tb_rst_sales_order_info.sales_store_id = trsi.store_id

+ 8 - 6
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java

@@ -369,12 +369,14 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
             if(complaintDetectInfo.getDetectSource() == 2){//手动添加需要给业务员发送短信
                 //发送短信通知维修检测人员
                 if(record.getDetectState() == 30 || record.getDetectState() == 34|| record.getDetectState() == 38){
-                    String text = MessageFormat.format(SmsConfig.NOTIFY_SALESMAN, complaintDetectInfo.getDetectName()+complaintDetectInfo.getDetectTel(), ResultInfo.DETECT_MSG+complaintDetectInfo.getDetectId());
-                    Admin admin = new Admin();
-                    admin.setAdminId(complaintDetectInfo.getSalesmanAdminId());
-                    admin = sysMapper.get(admin);
-                    String result = smsService.sendOtherCMS(admin.getAdminTel(), text);
-                    logger.info("给 " + complaintDetectInfo.getDetectTel() + " 手机用户发送短信:" + text+"发送通知业务员选择处理方式:"+result+"维修id:"+record.getDetectId());
+                    if(complaintDetectInfo.getDetectTel() != null && !complaintDetectInfo.getDetectTel().equals("")){
+                        String text = MessageFormat.format(SmsConfig.NOTIFY_SALESMAN, complaintDetectInfo.getDetectName()+complaintDetectInfo.getDetectTel(), ResultInfo.DETECT_MSG+complaintDetectInfo.getDetectId());
+                        Admin admin = new Admin();
+                        admin.setAdminId(complaintDetectInfo.getSalesmanAdminId());
+                        admin = sysMapper.get(admin);
+                        String result = smsService.sendOtherCMS(admin.getAdminTel(), text);
+                        logger.info("给 " + complaintDetectInfo.getDetectTel() + " 手机用户发送短信:" + text+"发送通知业务员选择处理方式:"+result+"维修id:"+record.getDetectId());
+                    }
                 }
 
             }

+ 35 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java

@@ -444,6 +444,41 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
         return complaintSignclosedInfoMapper.getSignclosedDay(complaintSignclosedInfo);
     }
 
+    @Override
+    @Transactional
+    public Integer updateSignclosedByYny(ComplaintSignclosedInfo record) {
+        int num = complaintSignclosedInfoMapper.updateSignclosedById(record);
+        if(num > 0){
+            try {
+                ComplaintSignclosedInfo signclosedInfo = complaintSignclosedInfoMapper.getSignclosedById(record.getSignclosedId());
+                //新增维修记录
+                if(signclosedInfo != null && signclosedInfo.getSignclosedProductInfoList().size() > 0){
+                    for (SignclosedProductInfo productInfo : signclosedInfo.getSignclosedProductInfoList()){
+                        Product product = productMapper.getProduce(productInfo.getSignclosedProductId());
+                        if (product.getProductIsDetection() == 1) {
+                            ComplaintDetectInfo  info = new ComplaintDetectInfo();
+                            //生成维修编号
+                            String number = detectNumber();
+                            info.setDetectNumber(number);
+                            info.setDetectState(40);
+                            info.setDetectSource(2);
+                            info.setProductId(productInfo.getSignclosedProductId());
+                            info.setProductColorId(productInfo.getSignclosedProductColor());
+                            info.setSignclosedId(record.getSignclosedId());
+                            complaintDetectInfoMapper.insert(info);
+                        }
+                    }
+                }
+            }catch (Exception e){
+                throw new RuntimeException("------------改为优尼雅客户生成检测信息出错------------");
+            }
+
+        }else{
+            return num;
+        }
+        return 1;
+    }
+
     private Integer addSifnclosed(Map<String,Integer> Map,Integer signclosedId) {
         Integer msg = 0;
         for (Map.Entry<String, Integer> entry : Map.entrySet()) {

+ 6 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintDetectInfoMapper.xml

@@ -50,6 +50,8 @@
       ad.district signclosedAddrAreaName,
       cs.signclosed_date signclosedDate,
       cs.signclosed_logistics_number logisticsNumber,
+      cs.signclosed_send_name signclosedName,
+      cs.signclosed_send_tel signclosedTel,
       cd.detect_is_print detectIsPrint,
       cd.detect_print_time detectPrintTime,
       cd.detect_placeorder detectPlaceorder,
@@ -152,6 +154,7 @@
     cd.detect_is_print detectIsPrint,
     cd.detect_print_time detectPrintTime,
     cs.signclosed_send_name signclosedName,
+    cs.signclosed_send_tel signclosedTel,
     cd.detect_placeorder detectPlaceorder,
     cd.detect_completion_time detectCompletionTime,
     cd.maintenance_completion_time maintenanceCompletionTime,
@@ -323,7 +326,7 @@
         and cd.detect_state != 40
       </if>
       <if test="detectSource != null and detectSource == 2">
-        and cd.detect_state in(30,34,38,40)
+        and cd.detect_state in(30,34,38,40) AND cd.detect_source = 2
       </if>
       <if test="salesmanAdminId != null and salesmanAdminId != ''">
         and ssa.admin_id = #{salesmanAdminId}
@@ -479,7 +482,7 @@
         detect_source = #{detectSource},
       </if>
       <if test="maintenanceCutTime != null" >
-          maintenance_cut_time = #{maintenanceCutTime}
+          maintenance_cut_time = #{maintenanceCutTime},
       </if>
       <if test="companyId != null" >
         company_id = #{companyId}
@@ -735,6 +738,7 @@
       LEFT JOIN tb_rst_cm_proc_method cpm ON cpm.proc_method_id = cr.proc_method_id
       LEFT JOIN tb_rst_cm_proc_type cpt ON cpt.proc_type_id = cpm.proc_type_id
         <where>
+          ci.customer_id is NOT NULL
             <if test="adminId != null and adminId != ''" >
                 AND ci.admin_id = #{adminId}
             </if>

+ 5 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintSignclosedInfoMapper.xml

@@ -135,7 +135,8 @@
     ac.city signclosedAddrCityName,
     ad.district signclosedAddrAreaName,
     qd.describe_title customerIdDescribe,
-    li.logistics_name signclosedLogisticsName
+    li.logistics_name signclosedLogisticsName,
+    cs.signclosed_company_id signclosedCompanyId
     FROM
     tb_rst_complaint_signclosed cs
     LEFT JOIN tb_rst_address_province ap ON cs.signclosed_addr_provinces = ap.province_id
@@ -243,6 +244,9 @@
       <if test="signclosedIsWhetherLess != null" >
         signclosed_is_whetherLess = #{signclosedIsWhetherLess,jdbcType=INTEGER}
       </if>
+      <if test="signclosedCompanyId != null" >
+        signclosed_company_id = #{signclosedCompanyId,jdbcType=INTEGER}
+      </if>
     </set>
       where
           signclosed_id = #{signclosedId,jdbcType=INTEGER}

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

@@ -460,5 +460,33 @@ public class AdminSignclosedController {
         }
         return msg;
     }
+    /**
+     * 改为优尼雅客户并增加维修记录
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("signclosed:update:signclosed")
+    @RequestMapping(value = "/update_company")
+    public ResponseJson updateCompany(HttpServletRequest request,ComplaintSignclosedInfo signclosedInfo){
+        ResponseJson msg = new ResponseJson();
+        if(signclosedInfo == null || signclosedInfo.getSignclosedCompanyId() == null){
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+            return msg;
+        }
+        int num = complaintSignclosedInfoService.updateSignclosedByYny(signclosedInfo);
+
+        if (num < 1) {
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+        } else {
+            msg.setResultCode(200);
+            msg.setReturnCode(200);
+
+        }
+        return msg;
+    }
+
 }
 

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

@@ -560,7 +560,7 @@ public class MQTask implements InitializingBean {
 	/**
 	 * 查询维修超时数据并短信通知
 	 */
-	@Scheduled(cron = "0 0 9 * * ?")//每天上午午9点触发
+	@Scheduled(cron = "0 50 8 * * ?")//每天上午午9点触发
 /*	@Scheduled(cron = "0 0/1 * * * ?")//每2分钟执行一次*/
 	public void detectTimeoutNotice() throws Exception {
 		logger.info("---------------- 询维修超时数据并短信通知开始 ---------------");

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

@@ -514,9 +514,10 @@
 
             <div class="row cl renewedProduct" id="" style="display: none">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span><span id="relationProduct">寄回产品</span>:</label>
-                <div class="formControls col-1 col-sm-1">
-                    <button type="button" class="btn btn-primary" id="" onclick="addProduct(1)">添加产品</button>
+                <div class="formControls col-9 col-sm-9">
+                    <button type="button" class="btn btn-primary" id="" onclick="addProduct(1)">添加产品</button><span>&nbsp;&nbsp;&nbsp;&nbsp;请完整选择要退回的机器,如有不退回的请删除产品项或者填写数量0 。</span>
                 </div>
+
             </div>
             <div class="row cl renewedProduct" id="" style="display: none">
                 <label class="form-label col-1 col-sm-1"></label>

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

@@ -360,12 +360,18 @@
                 if (data.returnCode == 200 && data.returnMsg.salesOrderList.length > 0 ) {
                     for(var i=0;i<data.returnMsg.salesOrderList.length;i++){
                         var salesOrder = data.returnMsg.salesOrderList[i];
-
+                        var disHtml =  "";
                         var productsHtml = '';
                         var salesOrderItem = salesOrder.salesOrderItemList;
                         for(var j=0;j<salesOrderItem.length;j++){
                             var item = interceptToString(salesOrderItem[j].itemProductName) +'('+salesOrderItem[j].itemProductColor+ ")*" + salesOrderItem[j].itemNum;
-                                productsHtml += '<span class="label label-success radius" title="'+ salesOrderItem[j].itemProductName +'('+salesOrderItem[j].itemProductColor+')*'+ salesOrderItem[j].itemNum +'">' + item + '</span>';
+                                productsHtml += '<span class="label label-success radius" title="'+ salesOrderItem[j].itemProductName +'('+salesOrderItem[j].itemProductColor+')*'+ (salesOrderItem[j].itemNum - salesOrderItem[j].itemReturnNum) +'">' + item + '</span>';
+
+                                if(salesOrderItem[j].itemNum - salesOrderItem[j].itemReturnNum <= 0){
+                                    disHtml = 'disabled="disabled"';
+                                }else{
+                                    disHtml =  "";
+                                }
                         }
                         var time = formatDate(new Date(salesOrder.salesPayTime),"yyyy-MM-dd");
                         var orderStatus = null;
@@ -377,12 +383,12 @@
 
                         <#--1:正常 2:换货 3:退货  4:维修  5:补发-->
 
-                        var disHtml =  "";
+
                         if(salesOrder.salesOrderId == null || salesOrder.salesOrderId == "" || typeof (salesOrder.salesOrderId) == 'undefined' || salesOrder.salesReturnStatus == 2){
                             disHtml = 'disabled="disabled"';
                         }
                         html += '<tr class="text-c">' +
-                                ' <td><input type="checkbox" class="sales_order_id" id="" value="'+ salesOrder.salesId +'" '+ disHtml +'></td>' +
+                                ' <td><input type="checkbox" class="sales_order_id" title="订单状态为已退货并且可退货数量为0时不可选择" id="" value="'+ salesOrder.salesId +'" '+ disHtml +'></td>' +
                                 ' <td>'+ convertUndefinedToEmpty(salesOrder.companyName) +'</td>' +
                                 ' <td>'+ convertUndefinedToEmpty(salesOrder.storeName) +'</td>' +
                                 ' <td>'+ convertUndefinedToEmpty(salesOrder.salesOrderId) +'</td>' +

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

@@ -414,7 +414,7 @@
                                         <td style="text-align: center;">${salesOrder.salesPayMoney!''}</td>
                                         <td style="text-align: center;">
                                             <#list salesOrder.salesOrderItemList as salesOrderItem>
-                                                ${salesOrderItem.itemProductName}(${salesOrderItem.itemProductColor})* ${salesOrderItem.itemNum}<br>
+                                                ${salesOrderItem.itemProductName}(${salesOrderItem.itemProductColor})* ${salesOrderItem.itemNum - salesOrderItem.itemReturnNum}<br>
                                             </#list>
                                         </td>
                                         <td style="text-align: center;">${(salesOrder.salesPayTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
@@ -526,8 +526,8 @@
 
             <div class="row cl renewedProduct" id="" style="display: none;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span><span id="relationProduct">寄回产品</span>:</label>
-                    <div class="formControls col-1 col-sm-1">
-                            <button type="button" class="btn btn-primary" id="" onclick="addProduct(1)">添加产品</button>
+                    <div class="formControls col-9 col-sm-9">
+                            <button type="button" class="btn btn-primary" id="" onclick="addProduct(1)">添加产品</button><span>&nbsp;&nbsp;&nbsp;&nbsp;请完整选择要退回的机器,如有不退回的请删除产品项或者填写数量0 。</span>
                     </div>
                     <div class="formControls col-9 col-sm-9 text-c" id="produceSelect">
                 </div>

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

@@ -1310,14 +1310,19 @@
             var sendbackTel = $("#sendbackTel").val();
             var sendbackSignTime = $("#sendbackSignTime").val();
             var sendProdcues = new Array();  //寄出产品表
-
+            var num = 0;
             $("#productbodyId").find(".input-prodcueNumber-id").each(function () {
                 var product = new Object();
                 product.sendbackProdcueNumber = $(this).val();
                 product.sendbackProductId = $(this).parents("tr").find(".input-produce-id").eq(0).val();    //产品id
                 product.sendbackColorId = $(this).parents("tr").find(".input-color-id").eq(0).val();    //颜色id
                 sendProdcues.push(product);
+                num = num+ parseInt(product.sendbackProdcueNumber);
             });
+            if(num === 0){
+                layer.msg("产品数量不能为0!",{icon: 5,time:2000});
+                return;
+            }
             $("#sendProdcues").val(JSON.stringify(sendProdcues));
             var SendProdcues = $("#sendProdcues").val();
             if(sendbackStatus == null || sendbackStatus == ""){
@@ -1363,7 +1368,8 @@
                             $("#colspanSendbackId").remove();
                             sendbackInfo = data.returnMsg.sendbackInfo;
                             var sendbackStatus;
-                            var htmls = '<a onclick="deleteSendbackInfo('+sendbackInfo.sendbackId+');">删除</a>&nbsp&nbsp<a onclick="getSendbackInfo('+sendbackInfo.sendbackId+');">修改</a>&nbsp&nbsp<a onclick="updateSendbackStatus('+sendbackInfo.sendbackId+');">签收</a>';
+                            /*var htmls = '<a onclick="deleteSendbackInfo('+sendbackInfo.sendbackId+');">删除</a>&nbsp&nbsp<a onclick="getSendbackInfo('+sendbackInfo.sendbackId+');">修改</a>&nbsp&nbsp<a onclick="updateSendbackStatus('+sendbackInfo.sendbackId+');">签收</a>';*/
+                            var htmls = '<a onclick="deleteSendbackInfo('+sendbackInfo.sendbackId+');">删除</a>&nbsp&nbsp<a onclick="getSendbackInfo('+sendbackInfo.sendbackId+');">修改</a>';
                             if(sendbackInfo.sendbackStatus == 1){
                                 sendbackStatus = "未配送";
                             }
@@ -1394,7 +1400,7 @@
                     }
                 },
                 error: function(XmlHttpRequest, textStatus, errorThrown){
-                    window.parent.admin_result("修改失败!",5);
+                    window.parent.admin_result("添加失败!",5);
                 }
                 })
     }
@@ -1409,7 +1415,7 @@
         var sendbackTel = $("#sendbackTels").val();
         /*var sendbackSignTime = $("#sendbackSignTimes").val();*/
         var sendProdcues = new Array();  //寄出产品表
-
+        var num = 0;
         $("#productbodyIds").find(".input-prodcueNumber-ids").each(function () {
             var product = new Object();
             product.sendbackProdcueNumber = $(this).val();
@@ -1417,7 +1423,12 @@
             product.sendbackColorId = $(this).parents("tr").find(".input-color-ids").eq(0).val();    //颜色id
             product.sendbackItemId = $(this).parents("tr").find(".input-item-ids").eq(0).val();    //寄回项主键
             sendProdcues.push(product);
+            num = num+ parseInt(product.sendbackProdcueNumber);
         });
+        if(num === 0){
+            layer.msg("产品数量不能为0!",{icon: 5,time:2000});
+            return;
+        }
         $("#sendProdcues").val(JSON.stringify(sendProdcues));
         var SendProdcues = $("#sendProdcues").val();
         if(sendbackStatus == null || sendbackStatus == ""){

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

@@ -87,7 +87,7 @@
         </div>
     </div>
     <div class="input-box">
-        <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>业务员:</label>
+        <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">业务员:</label>
         <div class="formControls col-xs-9 col-sm-9 skin-minimal" style="margin: 10px 0px;padding-left: 0;">
             <select id="salesmanAdminId" name="salesmanAdminId" class="chosen" style="width: 93%;">
                 <option value="">请选择业务员</option>
@@ -310,11 +310,11 @@
             layer.msg('请选择客户问题',{icon: 5,time:1000});
             return;
         }
-        var salesmanAdminId = $("#salesmanAdminId").val();
+        /*var salesmanAdminId = $("#salesmanAdminId").val();
         if( salesmanAdminId == null || salesmanAdminId == "" ){
             layer.msg('请选择业务员',{icon: 5,time:1000});
             return;
-        }
+        }*/
         /*var itemDate = $("#itemDate").val();
         if( itemDate == null || itemDate == "" ){
             layer.msg('请选择检测日期',{icon: 5,time:1000});

+ 37 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_detail.ftl

@@ -233,6 +233,43 @@
         <div class="row cl">
             <label class="form-label col-3">
                 <div class="tit-2">
+                    客户信息
+                </div>
+            </label>
+            <div class="formControls col-10 col-sm-10">
+            </div>
+        </div>
+        <table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
+            <thead>
+            <tr>
+                <th width="10">业务员:</th>
+                <td width="10" style="font-weight: normal;"><span><#if detectinfo.salesmanAdminName??>${detectinfo.salesmanAdminName!''}</#if></span></td>
+                <td width="10"></td>
+                <th width="10"></th>
+                <td width="10" style="font-weight: normal;"><span></span></td>
+                <td width="10"></td>
+            </tr>
+            <tr>
+                <th width="10">客户姓名:</th>
+                <td width="10" style="font-weight: normal;"><span><#if detectinfo.detectName??>${detectinfo.detectName!''}</#if></span></td>
+                <td width="10"></td>
+                <th width="10">客户电话:</th>
+                <td width="10" style="font-weight: normal;"><span><#if detectinfo.detectTel??>${detectinfo.detectTel!''}</#if></span></td>
+                <td width="10"></td>
+            </tr>
+            <tr>
+                <th width="10">客户问题:</th>
+                <td width="10" style="font-weight: normal;"><span><#if detectinfo.questionName??>${detectinfo.questionName!''}</#if></span></td>
+                <td width="10"></td>
+                <th width="10">问题回复:</th>
+                <td width="10" style="font-weight: normal;"><span><#if detectinfo.questionProfile??>${detectinfo.questionProfile!''}</#if></span></td>
+                <td width="10"></td>
+            </tr>
+            </thead>
+        </table>
+        <div class="row cl">
+            <label class="form-label col-3">
+                <div class="tit-2">
                     检测信息
                 </div>
             </label>

+ 8 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_repair_list.ftl

@@ -120,8 +120,10 @@
             <thead>
             <tr class="text-c">
                 <#--<th width="100">客诉编号</th>-->
+                    <th width="100">维修编号</th>
+                    <th width="100">寄回单号</th>
+                    <th width="100">寄件人信息</th>
                 <th width="100">所属业务员</th>
-                <th width="100">维修编号</th>
                 <th width="100">客户信息</th>
                 <th width="100">客户问题</th>
                 <th width="100">机器信息</th>
@@ -130,15 +132,17 @@
                 <th width="120">操作</th>
             </tr>
             </thead>
-            <tbody id="listid">
+            <tbody id="listid">1
             <#if (page.dataList?size > 0)>
                 <#list page.dataList as detect>
                 <tr>
                     <#--<td class="text-c" width="100">${detect.customerId!}</td>-->
-                    <td class="text-c" width="100">${detect.salesmanAdminName!''}</td>
                     <td class="text-c" width="100">${detect.detectNumber!''}</td>
-                    <td class="text-c" width="100">${detect.detectName!''}<br>${detect.detectTel!''}</td>
+                    <td class="text-c" width="100">${detect.logisticsNumber!''}</td>
+                    <td class="text-c" width="100">${detect.signclosedName!''}-${detect.signclosedTel!''}</td>
+                    <td class="text-c" width="100">${detect.salesmanAdminName!''}</td>
                     <td class="text-c" width="100">${detect.questionName!''}</td>
+                    <td class="text-c" width="100">${detect.detectName!''}<br>${detect.detectTel!''}</td>
                     <td class="text-c" width="100">${detect.productName!'暂无产品'}(${detect.colorName!'暂无颜色'})</td>
                     <td class="text-c" width="100">
                         <#if detect.detectState == 1>

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

@@ -53,19 +53,19 @@
             <div class="formControls col-9">
             </div>
         </div>
-        <div class="input-box">
+        <#--<div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 11px;"><span class="c-red">*</span>所属公司:</label>
             <div class="formControls col-xs-9 col-sm-9 skin-minimal" style="margin: 10px 0px;padding-left: 0;">
             <#if companyInfoList?? &&  (companyInfoList?size > 0) >
                 <#list companyInfoList as companyInfo>
                     <div class="radio-box">
-                        <input type="radio"  name="companyId" <#if detectinfo.companyId == companyInfo.companyId>checked="checked"</#if>value="${companyInfo.companyId!''}" datatype="*" nullmsg="请选择所属公司!">
+                        <input type="radio"  name="companyId" <#if detectinfo.companyId??><#if detectinfo.companyId == companyInfo.companyId>checked="checked"</#if></#if>value="${companyInfo.companyId!''}" datatype="*" nullmsg="请选择所属公司!">
                         <label for="tel-1">${companyInfo.companyName!''}</label>
                     </div>
                 </#list>
             </#if>
             </div>
-        </div>
+        </div>-->
     <div class="input-box">
         <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>客户问题:</label>
         <div class="formControls col-xs-9 col-sm-9 skin-minimal" style="margin: 10px 0px;padding-left: 0;">
@@ -80,7 +80,7 @@
         </div>
     </div>
     <div class="input-box">
-        <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>业务员:</label>
+        <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">业务员:</label>
         <div class="formControls col-xs-9 col-sm-9 skin-minimal" style="margin: 10px 0px;padding-left: 0;">
             <select id="salesmanAdminId" name="salesmanAdminId" class="chosen" style="width: 93%;">
                 <option value="">请选择业务员</option>
@@ -95,9 +95,9 @@
         <div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;"><span class="c-red">*</span>客户信息:</label>
             <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px 10px 0;padding-left: 0;">
-                <input class="my-input" type="text"  name="detectName" id="detectName" placeholder="请输入客户姓名或昵称" style="width: 146px;"/>
+                <input class="my-input" type="text" value="<#if detectinfo.signclosedName??>${detectinfo.signclosedName!""}</#if>"  name="detectName" id="detectName" placeholder="请输入客户姓名或昵称" style="width: 146px;"/>
 
-                <input class="my-input" type="text"  name="detectTel" id="detectTel" placeholder="请输入客户电话或手机号码" style="width: 146px;"/>
+                <input class="my-input" type="text" value="<#if detectinfo.signclosedTel??>${detectinfo.signclosedTel!""}</#if>" name="detectTel" id="detectTel" placeholder="请输入客户电话或手机号码" style="width: 146px;"/>
             </div>
         </div>
         <div class="input-box" id="updateDetect_3">
@@ -289,11 +289,11 @@
             layer.msg('请选择客户问题',{icon: 5,time:1000});
             return;
         }
-        var salesmanAdminId = $("#salesmanAdminId").val();
+        /*var salesmanAdminId = $("#salesmanAdminId").val();
         if( salesmanAdminId == null || salesmanAdminId == "" ){
             layer.msg('请选择业务员',{icon: 5,time:1000});
             return;
-        }
+        }*/
         var detectName = $("#detectName").val();
         if( detectName == null || detectName == "" ){
             layer.msg('请输入客户名称',{icon: 5,time:1000});

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

@@ -135,7 +135,15 @@
                              <a style="text-decoration:none" href="javascript:;" title="关联客诉"
                               onclick="associated_customer('关联客诉','${path}/admin/signclosed/to_associated_customer?signclosedId=${signclosed.signclosedId!''}','770','550');">
                                  <i>关联客诉</i>
+                             </a><br>
+                        </#if>
+                        <#if signclosed.signclosedCompanyId??>
+                            <#if signclosed.signclosedCompanyId == 1 || signclosed.signclosedCompanyId == 2>
+                             <a style="text-decoration:none" href="javascript:;" title="优尼雅客户"
+                              onclick="into_Yny(${signclosed.signclosedId!''});">
+                                 <i>优尼雅客户</i>
                              </a>
+                            </#if>
                         </#if>
                     </td>
                 </tr>
@@ -237,6 +245,31 @@
         });
     }
 
+    /*优尼雅客户*/
+    function into_Yny(signclosedId){
+        layer.alert('确定改为优尼雅客户吗?', function () {
+            $.ajax({
+                cache: true,
+                type: "POST",
+                url: "${path}/admin/signclosed/update_company",
+                data:{"signclosedId":signclosedId,
+                      "signclosedCompanyId" : 3},
+                async: false,
+                success: function(data){
+                    if (data.returnCode == 200) {
+                        layer.msg('修改成功',{icon: 1,time:1000},function () {
+                            location.replace(location.href);
+                        });
+                    } else {
+                        layer.msg('修改失败',{icon: 5,time:1000});
+                    }
+                },
+                error: function(XmlHttpRequest, textStatus, errorThrown){
+                    layer.msg('操作错误',{icon: 5,time:1000});
+                }
+            });
+        });
+    }
 </script>
 </body>
 </html>

+ 50 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/order/excel_to_order_new.ftl

@@ -8,6 +8,8 @@
     <meta http-equiv="Cache-Control" content="no-siteapp" />
     <#include "/base/list_base.ftl">
     <link rel="stylesheet" type="text/css" href="${path}/common/lib/jquery.ui/jquery-ui.css" />
+    <link rel="stylesheet" type="text/css" href="${path}/common/static/chosen/css/chosen.css" />
+    <script type="text/javascript" src="${path}/common/static/chosen/js/chosen.jquery.js"></script>
     <title>Excel - 选择文件内容 - Watero-RST 1.0</title>
 </head>
 <body>
@@ -187,7 +189,7 @@
                     <input type="hidden" value="${companyId!''}" id="companyId" name="companyId">
                     <div id="store-select-1"  style="width: 100%;float: left;">
                         <label>
-                            <select class="my-select" name="shop-id" id="shop-id" style="height: 30px;width: 180px;margin: 0px;">
+                            <select class="chosen" name="shop-id" id="shop-id" style="height: 30px;width: 180px;margin: 0px;">
                             <#if listStoreInfo?? &&  (listStoreInfo?size > 0) >
                                 <#list listStoreInfo as info>
                                     <option value="${info.storeId!''}" >${info.storeName!''}</option>
@@ -199,7 +201,7 @@
 
                     <div id="store-select-2" style="display: none">
                         <div>
-                            <select class="my-select" name="order_store_info" id="order_store_info" matchSelect="店铺|订单来源|渠道商" style="height: 30px;width: 180px;margin: 0px;">
+                            <select class="chosen" name="order_store_info" id="order_store_info" matchSelect="店铺|订单来源|渠道商" style="height: 30px;width: 180px;margin: 0px;">
                                 <#list heads as head>
                                     <option value="${head}" >${head}</option>
                                 </#list>
@@ -472,13 +474,14 @@
                              + '<td style=" width: 265px;">' + result.returnMsg.values[i] + '</td>'
                              + '<td style="text-align: left;">'
                              + '<label>'
-                             + '<select class="my-select order_store_select" name="" id="" style="height: 30px;width: 180px;margin: 0px;">';
+                             + '<select class="chosen" name="states" id="" style="height: 30px;width: 180px;margin: 0px;">';
                         for (var j = 0; j < result.returnMsg.stores.length; j++) {
                             temp += '<option value="' + result.returnMsg.values[i] + '_' + result.returnMsg.stores[j].storeId + '" >' + result.returnMsg.stores[j].storeName + '</option>'
                         }
                         temp += '</select></label>'
                              + '</td>'
                              + '</tr>';
+
                     }
                     $("#selectStore").html(temp);
             }
@@ -653,5 +656,49 @@
     function check_fault() {
         window.location.href = error_path;
     }
+
+    /*$('.chosen').chosen({
+        no_results_text: "没有找到结果!",//搜索无结果时显示的提示
+        search_contains:true,   //关键字模糊搜索。设置为true,只要选项包含搜索词就会显示;设置为false,则要求从选项开头开始匹配
+        allow_single_deselect:true, //单选下拉框是否允许取消选择。如果允许,选中选项会有一个x号可以删除选项
+        disable_search: false, //禁用搜索。设置为true,则无法搜索选项。
+        disable_search_threshold: 0, //当选项少等于于指定个数时禁用搜索。
+        inherit_select_classes: true, //是否继承原下拉框的样式类,此处设为继承
+        placeholder_text_single: '选择国家', //单选选择框的默认提示信息,当选项为空时会显示。如果原下拉框设置了data-placeholder,会覆盖这里的值。
+        width: '227px', //设置chosen下拉框的宽度。即使原下拉框本身设置了宽度,也会被width覆盖。
+        max_shown_results: 1000, //下拉框最大显示选项数量
+        display_disabled_options: false,
+        single_backstroke_delete: false, //false表示按两次删除键才能删除选项,true表示按一次删除键即可删除
+        case_sensitive_search: false, //搜索大小写敏感。此处设为不敏感
+        group_search: false, //选项组是否可搜。此处搜索不可搜
+        include_group_label_in_selected: true //选中选项是否显示选项分组。false不显示,true显示。默认false。
+    });
+    $('.chosen2').chosen({
+        search_contains:false,
+        enable_split_word_search: true //分词搜索,选项词可通过空格或'[]'分隔。search_contains为false时才能看出效果
+    });*/
+    chonsens();
+    function chonsens() {
+        $('.chosen').chosen({
+            no_results_text: "没有找到结果!",//搜索无结果时显示的提示
+            search_contains:true,   //关键字模糊搜索。设置为true,只要选项包含搜索词就会显示;设置为false,则要求从选项开头开始匹配
+            allow_single_deselect:true, //单选下拉框是否允许取消选择。如果允许,选中选项会有一个x号可以删除选项
+            disable_search: false, //禁用搜索。设置为true,则无法搜索选项。
+            disable_search_threshold: 0, //当选项少等于于指定个数时禁用搜索。
+            inherit_select_classes: true, //是否继承原下拉框的样式类,此处设为继承
+            placeholder_text_single: '选择国家', //单选选择框的默认提示信息,当选项为空时会显示。如果原下拉框设置了data-placeholder,会覆盖这里的值。
+            width: '227px', //设置chosen下拉框的宽度。即使原下拉框本身设置了宽度,也会被width覆盖。
+            max_shown_results: 1000, //下拉框最大显示选项数量
+            display_disabled_options: false,
+            single_backstroke_delete: false, //false表示按两次删除键才能删除选项,true表示按一次删除键即可删除
+            case_sensitive_search: false, //搜索大小写敏感。此处设为不敏感
+            group_search: false, //选项组是否可搜。此处搜索不可搜
+            include_group_label_in_selected: true //选中选项是否显示选项分组。false不显示,true显示。默认false。
+        });
+        $('.chosen2').chosen({
+            search_contains:false,
+            enable_split_word_search: true //分词搜索,选项词可通过空格或'[]'分隔。search_contains为false时才能看出效果
+        });
+    }
 </script>
 </html>

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

@@ -936,7 +936,7 @@ function setSelectOrder(orderId){
                     }
 
                     for(var j=0;j<salesOrderItem.length;j++){
-                        var item = salesOrderItem[j].itemProductName+ "("+ salesOrderItem[j].itemProductColor +")" + "*" + salesOrderItem[j].itemNum;
+                        var item = salesOrderItem[j].itemProductName+ "("+ salesOrderItem[j].itemProductColor +")" + "*" + (salesOrderItem[j].itemNum - salesOrderItem[j].itemReturnNum);
                         if(j==0){
                             productsHtml += item
                         }else{