Pārlūkot izejas kodu

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

wangxiaoming 5 gadi atpakaļ
vecāks
revīzija
d028347a46

+ 8 - 1
watero-common-tool/src/main/java/com/iamberry/wechat/tools/HttpClient431Util.java

@@ -89,6 +89,9 @@ public class HttpClient431Util {
     public static String doDualSSLPost(String params,String url,String keyStorePath,String keyStorePass) throws Exception{
         return doDualSSLPost(params, url, NameUtils.DEFAULT_SEND_CHARSET, NameUtils.DEFAULT_RES_CHARSET, keyStorePath, keyStorePass);
     }
+    public static String doGet2( Map<String, String> params,String url,String cookie) throws Exception{
+        return doGet(params,url,NameUtils.DEFAULT_SEND_CHARSET,NameUtils.DEFAULT_RES_CHARSET,cookie);
+    }
     public static String doPostContent(String dataContent,String contentType,String contentCharset,String resCharset,String url) throws Exception{
         CloseableHttpClient httpClient = getSingleSSLConnection();
         CloseableHttpResponse response = null;
@@ -195,7 +198,11 @@ public class HttpClient431Util {
                 url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(pairs, reqCharset==null?NameUtils.DEFAULT_SEND_CHARSET:reqCharset));
             }
             HttpGet httpGet = new HttpGet(url);
-            httpGet.addHeader("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
+            httpGet.addHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36");
+            httpGet.addHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3");
+            httpGet.addHeader("Accept-Encoding","gzip, deflate, br");
+            httpGet.addHeader("Accept-Language","zh-CN,zh;q=0.9");
+            httpGet.addHeader("Cache-Control","max-age=0");
             httpGet.addHeader("Connection" , "close");
             if (!Strings.isNullOrEmpty(cookie)){
                 httpGet.setHeader("Cookie", cookie);

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SendbackInfo.java

@@ -29,6 +29,7 @@ public class SendbackInfo implements Serializable {
     private String sendProdcues;//寄回产品json
     private Integer sendbackNoticeCustomer;//签收是否通知售前客服 1通知 2不通知
     private Integer sendbackPresaleAdminId;//售前客服id
+    private Integer sendbackIsUse;//是否使用 1未使用 2已使用
 
     public Integer getSendbackId() {
         return sendbackId;
@@ -149,4 +150,12 @@ public class SendbackInfo implements Serializable {
     public void setSendbackPresaleAdminId(Integer sendbackPresaleAdminId) {
         this.sendbackPresaleAdminId = sendbackPresaleAdminId;
     }
+
+    public Integer getSendbackIsUse() {
+        return sendbackIsUse;
+    }
+
+    public void setSendbackIsUse(Integer sendbackIsUse) {
+        this.sendbackIsUse = sendbackIsUse;
+    }
 }

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

@@ -69,6 +69,7 @@ public class ComplaintSignclosedInfo implements Serializable {
     private Integer detectIsRefurbishing;//是否翻新机1是 2否
     private String startTime;
     private String endTime;
+    private Integer sendbackIsUse;
 
     public Integer getSignclosedId() {
         return signclosedId;
@@ -461,4 +462,12 @@ public class ComplaintSignclosedInfo implements Serializable {
     public void setEndTime(String endTime) {
         this.endTime = endTime;
     }
+
+    public Integer getSendbackIsUse() {
+        return sendbackIsUse;
+    }
+
+    public void setSendbackIsUse(Integer sendbackIsUse) {
+        this.sendbackIsUse = sendbackIsUse;
+    }
 }

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

@@ -1349,7 +1349,8 @@ LEFT JOIN tb_rst_cm_proc_type cpt ON cpt.proc_type_id = cpm.proc_type_id
         sendback_sign_time,
         sendback_create_time,
         sendback_notice_customer,
-        sendback_presale_admin_id
+        sendback_presale_admin_id,
+        sendback_is_use
       )
        VALUES
       ( #{relationId},
@@ -1361,7 +1362,8 @@ LEFT JOIN tb_rst_cm_proc_type cpt ON cpt.proc_type_id = cpm.proc_type_id
         #{sendbackSignTime},
         NOW(),
         #{sendbackNoticeCustomer},
-        #{sendbackPresaleAdminId}
+        #{sendbackPresaleAdminId},
+        #{sendbackIsUse}
       )
   </insert>
 
@@ -1490,7 +1492,10 @@ LEFT JOIN tb_rst_cm_proc_type cpt ON cpt.proc_type_id = cpm.proc_type_id
           sendback_notice_customer = #{sendbackNoticeCustomer},
       </if>
       <if test="sendbackPresaleAdminId != null">
-          sendback_presale_admin_id = #{sendbackPresaleAdminId}
+          sendback_presale_admin_id = #{sendbackPresaleAdminId},
+      </if>
+      <if test="sendbackIsUse != null">
+          sendback_is_use = #{sendbackIsUse}
       </if>
     </set>
     WHERE sendback_id = #{sendbackId}

+ 5 - 31
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java

@@ -647,6 +647,9 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
             sendbackInfo.setSendbackLogisticsCompany(signclosedInfo.getSignclosedLogistics());
             sendbackInfo.setSendbackLogisticsNo(signclosedInfo.getSignclosedLogisticsNumber());
             sendbackInfo.setSendbackSignTime(signclosedInfo.getSignclosedDate());
+            if(record.getSendbackIsUse() != null){
+                sendbackInfo.setSendbackIsUse(record.getSendbackIsUse());
+            }
             customerInfoMapper.updateSendbackInfo(sendbackInfo);
 
             SendbackInfo sendback =  customerInfoMapper.getSendbackInfo(signclosedInfo.getSendbackId());
@@ -656,9 +659,8 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
                 admin = sysMapper.getAdminInfo(admin);
                 String con = SmsConfig.SIGNCLOSED_NOTICE_CUSTOMERN;
                 List<SalesOrder> listSalesOrder = salesOrderMapper.listSalesOrderbyCustomerId(signclosedInfo.getSignclosedCustomerId());
-                String text = MessageFormat.format(con, listSalesOrder.get(0).getSalesOrderId(),signclosedInfo.getSignclosedSendTel(),puoductbuffer);
-                String result = smsService.sendOtherCMS(admin.getAdminTel(), text);
-                System.out.println(result);
+                String text = MessageFormat.format(con, listSalesOrder.get(0).getSalesOrderId(),signclosedInfo.getSignclosedLogisticsNumber(),puoductbuffer);
+                smsService.sendOtherCMS(admin.getAdminTel(), text);
             }
 
             Integer flag = 0;
@@ -677,34 +679,6 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
                     throw new RuntimeException("签收失败,更新库存失败。");
                 }
             }
-
-            // 代签收 - >  已签收  需要入库到售后仓库
-//            Integer flag = 0;
-//            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//            List<SignclosedProductInfo> signclosedProductInfoList = complaintSignclosedProductInfoMapper.listSignclosedById(record.getSignclosedId());
-//            for (SignclosedProductInfo spi:signclosedProductInfoList) {
-//                InventoryInfo info = inventoryMapper.getByInventoryByBar(spi.getColorBar(),2);
-//                info.setInventoryDefectiveProductNum(info.getInventoryDefectiveProductNum()+spi.getProductNum());
-//                info.setInventoryRecentRecord(sdf.format(new Date())+"不良品入库:"+ spi.getProductNum() + "件");
-//                flag =  inventoryMapper.updateById(info);
-//                if(flag < 1){
-//                    throw new RuntimeException("更新库存失败,更新库存失败。");
-//                }
-//                //添加日志
-//                InventoryLog inventoryLog = new InventoryLog();
-//                inventoryLog.setLogProductName(info.getInventoryProductName());
-//                inventoryLog.setLogProductBar(info.getInventoryProductBar());
-//                inventoryLog.setLogRemainingNum(spi.getProductNum());
-//                inventoryLog.setLogType(3);
-//                inventoryLog.setLogOperationType(1);
-//                inventoryLog.setLogDesc(sdf.format(new Date())+"不良品入库:"+spi.getProductNum()+"件");
-//                inventoryLog.setLogQualityType(2);
-//                inventoryLog.setLogWarehouseId(2);    //售后仓库
-//                flag = inventoryLogMapper.insert(inventoryLog);
-//                if(flag < 1){
-//                    throw new RuntimeException("更新库存失败,增加库存记录失败。");
-//                }
-//            }
         }
         //关联客诉/判断是否生成客诉信息
         try {

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

@@ -27,17 +27,22 @@
   </sql>
   <select id="getSignclosedById" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
     select
-    <include refid="Base_Column_List" />,
+    tb_rst_complaint_signclosed.signclosed_id, signclosed_logistics,
+    signclosed_logistics_number, signclosed_send_name, signclosed_send_tel, signclosed_addr_provinces,
+    signclosed_addr_city,signclosed_addr_area, signclosed_date,signclosed_customer_id,signclosed_desc,
+    signclosed_create_time, signclosed_update_time,signclosed_customer_desc,tb_rst_complaint_signclosed.sendback_id,signclosed_is_whetherLess,signclosed_store_id,
     tb_rst_cm_question_describe.describe_handle_desc describeHandleDesc,
     ap.province signclosedAddrProvincesName,
     ac.city signclosedAddrCityName,
-    ad.district signclosedAddrAreaName
+    ad.district signclosedAddrAreaName,
+    si.sendback_is_use sendbackIsUse
     from tb_rst_complaint_signclosed
     LEFT JOIN tb_rst_cm_question_describe on tb_rst_cm_question_describe.customer_id = tb_rst_complaint_signclosed.signclosed_customer_id
     LEFT JOIN tb_rst_address_province ap ON tb_rst_complaint_signclosed.signclosed_addr_provinces = ap.province_id
     LEFT JOIN tb_rst_address_city ac ON tb_rst_complaint_signclosed.signclosed_addr_city = ac.city_id
     LEFT JOIN tb_rst_address_district ad on ad.district_id = tb_rst_complaint_signclosed.signclosed_addr_area
-    where signclosed_id = #{signclosedId,jdbcType=INTEGER}
+    LEFT JOIN tb_rst_cm_sendback_info si on si.sendback_id = tb_rst_complaint_signclosed.sendback_id
+    where tb_rst_complaint_signclosed.signclosed_id = #{signclosedId,jdbcType=INTEGER}
   </select>
 
   <resultMap id="complaintSignclosedInfoMap" type="ComplaintSignclosedInfo">

+ 9 - 1
watero-rst-web/src/main/java/com/iamberry/rst/controllers/kuaidi/LogisticsController.java

@@ -1,5 +1,7 @@
 package com.iamberry.rst.controllers.kuaidi;
 
+import com.iamberry.rst.core.tools.LogisticsInfo;
+import com.iamberry.rst.faces.order.LogisticsInfoService;
 import com.iamberry.rst.utils.KuaiDi100;
 import com.iamberry.rst.utils.ResultMsg;
 import com.iamberry.wechat.tools.NameUtils;
@@ -12,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * Created by Administrator on 2017/8/15.
@@ -21,6 +24,8 @@ import javax.servlet.http.HttpServletResponse;
 public class LogisticsController {
     @Autowired
     private KuaiDi100 kuaidi100;
+    @Autowired
+    private LogisticsInfoService logisticsInfoService;
 
 
     /**
@@ -41,7 +46,10 @@ public class LogisticsController {
             msg.setStatus(false);
             return msg;
         }
-        rst = kuaidi100.getExpressInfo(com,nu);
+        LogisticsInfo log = new LogisticsInfo();
+        log.setLogisticsRstCode(com);
+        List<LogisticsInfo> listlog = logisticsInfoService.getLogisticsInfoList(log);
+        rst = kuaidi100.selectCourierCompany2(listlog.get(0).getLogisticsOnehundredCode(),nu);
         msg.setResultCode(ResultInfo.SUCCESSCODE);
         msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
         msg.setData(rst);

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

@@ -2578,7 +2578,6 @@ public class AdminOrderController {
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
-
                 List<String> result = new ArrayList<>(setString);
                 if(color.getColorlabel() != null){
                     String[] strArr = color.getColorlabel().split("@");
@@ -2624,22 +2623,37 @@ public class AdminOrderController {
                 for(int i=0;i<jsonArray.size();i++){
                    String s1 =  name.toUpperCase();
                    String s2 =  jsonArray.getString(i).toUpperCase();
-                    if(s1.equals(s2)){
-                        num2+=2;//增加2
-                    }else{
-                        if(s1.indexOf(s2) > 0){
-                            num2++;//增加1
-                        }
-                        if(s2.indexOf(s1) > 0){
-                            num2++;//增加1
-                        }
-                    }
+                   if(!s2.contains("*")){
+                       if(s1.equals(s2)){
+                           num2+=2;//增加2
+                       }else{
+                           if(s1.indexOf(s2) > 0){
+                               num2++;//增加1
+                           }
+                           if(s2.indexOf(s1) > 0){
+                               num2++;//增加1
+                           }
+                       }
+                   }
                 }
                 if(num2 > 0){
                     productNums.put(key,productNums.get(key) + num2);
                 }
             }
         }
+        //全匹配 20191120新增
+        for(String key : map.keySet()){
+            JSONArray jsonArray = map.get(key);
+            for(int i=0;i<jsonArray.size();i++){
+                if(jsonArray.getString(i).toUpperCase().contains("*")){
+                    System.out.println(excelProductName);
+                    if(("*"+excelProductName.replace(" ","")+"*").equals(jsonArray.get(i))){
+                        productNums.put(key,1000);
+                    }
+                }
+            }
+
+        };
         Iterator iter = productNums.entrySet().iterator();
         TreeMap<Integer,String> productColors = new TreeMap<>();
         while(iter.hasNext()) {

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

@@ -1,6 +1,7 @@
 package com.iamberry.rst.utils;
 
 import com.iamberry.wechat.tools.HttpClient431Util;
+import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
@@ -141,7 +142,7 @@ public class KuaiDi100 {
      */
     public static void main(String[] agrs){
         KuaiDi100 kuaidi = new KuaiDi100();
-        System.out.println(kuaidi.getExpressInfo("ems","9754210807242"));
+        System.out.println(kuaidi.selectCourierCompany2("yuantong","yt9053971537384"));
     }
     /**
      * 查询快递信息
@@ -149,6 +150,59 @@ public class KuaiDi100 {
      * @param nu 快递单号
      * @return
      */
+    public JSONObject getExpressInfo2(String com , String nu){
+        JSONObject ret = null;
+        try
+        {
+            com = logisticsConversions(com);
+            StringBuilder sb = new StringBuilder();
+            sb.append("https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?cb=abc&appid=4001");
+            sb.append("&com=").append(com);
+            sb.append("&nu=").append(nu);
+            URL url= new URL(sb.toString());
+            URLConnection con=url.openConnection();
+            con.setAllowUserInteraction(false);
+            InputStream urlStream = url.openStream();
+            String type = con.guessContentTypeFromStream(urlStream);
+            String charSet=null;
+            if (type == null)
+                type = con.getContentType();
+
+            if (type == null || type.trim().length() == 0)
+                return null;
+
+            if(type.indexOf("charset=") > 0)
+                charSet = type.substring(type.indexOf("charset=") + 8);
+
+            byte b[] = new byte[10000];
+            int numRead = urlStream.read(b);
+            String content = new String(b, 0, numRead, "UTF-8");
+            while (numRead != -1) {
+                numRead = urlStream.read(b);
+                if (numRead != -1) {
+                    //String newContent = new String(b, 0, numRead);
+                    String newContent = new String(b, 0, numRead, "UTF-8");
+                    content += newContent;
+                }
+            }
+            content = content.replaceAll(":null", ":\"\"");
+            ret = JSONObject.fromObject(content);
+            System.out.println(ret);
+            urlStream.close();
+        } catch (MalformedURLException e)
+        {
+            e.printStackTrace();
+        } catch (IOException e)
+        {
+            e.printStackTrace();
+        }
+        return ret;
+    }/**
+     * 查询快递信息
+     * @param com 快递公司代码
+     * @param nu 快递单号
+     * @return
+     */
     public JSONObject getExpressInfo(String com , String nu){
         JSONObject ret = null;
         try
@@ -389,6 +443,31 @@ public class KuaiDi100 {
         }
         return courierCompang;
     }
+    /**
+     * 百度快递查询
+     * 根据物流单号查询快递信息 state 0在途,1揽收,2疑难,3签收,4退签,5派件,6退回
+     * @param code
+     * @return
+     */
+    public JSONObject selectCourierCompany2(String code,String num) {
+        num = num.toLowerCase();
+        JSONObject json = null;
+        try {
+            Map<String, String> params = new HashMap<String, String>();
+            String cookie = "BAIDUID=E157C876272626E1F7F498C10A6A3F00:FG=1";
+            String url = "https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?cb=cb&appid=4001&nu="+num+"&com="+code;
+            // 发送请求
+            String html = HttpClient431Util.doGet2(params, url,cookie);
+            String content = html.substring(7, html.length());
+            content = content.substring(0, content.length()-1);
+            json = JSONObject.fromObject(content);
+            /*String s = json.getString("status");*/
+        } catch (Exception e) {
+            e.printStackTrace();
+            LOGGER.info("=========快递单号:"+code+";处理报错");
+        }
+        return json;
+    }
 
     /**
      * 写入文件

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

@@ -69,7 +69,7 @@ CUSTOMER_RETURN=\u3010\u7231\u8d1d\u6e90RST\u3011{0}\u8bf7\u5f00\u59cb{1}\uff0c\
 CUSTOMER_CONTACT=\u3010\u7231\u8d1d\u6e90RST\u3011{0}\u5ba2\u670d\u5df2\u7ecf\u786e\u8ba4\uff0c\u7ef4\u4fee\u7f16\u53f7\u4e3a{1}\uff0c\u8bf7\u6253\u5370\u6b64\u673a\u5668\u7ef4\u4fee\u5361\u5e76\u5f00\u59cb\u68c0\u6d4b\uff1b
 DETECTION_TIMEOUT_NOTIFICATION=\u3010\u7231\u8d1d\u6e90RST\u3011{0}\u5373\u5c06{1}\uff0c\u622a\u6b62\u65e5\u671f\uff1a{2}\uff0c\u5982\u5df2\u68c0\u6d4b\u5b8c\u6210\u8bf7\u5c3d\u5feb\u5f55\u5165\u5230\u7cfb\u7edf
 NOTIFY_SALESMAN=\u3010\u7231\u8d1d\u6e90RST\u3011\u60a8\u5ba2\u6237{0}\u7684\u673a\u5668\u5df2\u7ecf\u68c0\u6d4b\u5b8c\u6210\uff0c\u9700\u8981\u60a8\u786e\u8ba4\u5982\u4f55\u5904\u7406\u3002\u70b9\u51fb\u67e5\u770b\u68c0\u6d4b\u7ed3\u679c&\u786e\u8ba4\u5904\u7406\u65b9\u5f0f {1}
-SIGNCLOSED_NOTICE_CUSTOMERN=\u3010\u7231\u8d1d\u6e90RST\u3011\u8ba2\u5355\uff1a{0}\u4ea7\u751f\u7684\u5bc4\u56de\u5305\u88f9\u5df2\u7b7e\u6536\uff0c\u5feb\u9012\u7535\u8bdd\uff1a{1}\uff0c\u7b7e\u6536\u4ea7\u54c1\uff1a{2}\uff0c\u8bf7\u5904\u7406\u9500\u552e\u5e73\u53f0\u7684\u552e\u540e\uff1b
+SIGNCLOSED_NOTICE_CUSTOMERN=\u3010\u7231\u8d1d\u6e90RST\u3011\u8ba2\u5355\uff1a{0}\u4ea7\u751f\u7684\u5bc4\u56de\u5305\u88f9\u5df2\u7b7e\u6536\uff0c\u5feb\u9012\u5355\u53f7\uff1a{1}\uff0c\u7b7e\u6536\u4ea7\u54c1\uff1a{2}\uff0c\u8bf7\u5904\u7406\u9500\u552e\u5e73\u53f0\u7684\u552e\u540e\uff1b
 #---SMS end---#
 
 # token

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

@@ -280,7 +280,7 @@
                                 <#if customer.sendbackInfoList?? &&  (customer.sendbackInfoList?size > 0) >
                                     寄回:
                                     <#list customer.sendbackInfoList as sendbackInfo>
-                                            <a onclick="openLogistics('物流信息','${path}/admin/detect/to_view_logistics?billCode=${sendbackInfo.sendbackLogisticsNo!''}&billName=${sendbackInfo.sendbackLogisticsCompany!''}',300,400);">${sendbackInfo.sendbackLogisticsNo!''};</a><br>
+                                            <a onclick="openLogistics('物流信息','${path}/admin/detect/to_view_logistics?billCode=${sendbackInfo.sendbackLogisticsNo!''}&billName=${sendbackInfo.sendbackLogisticsCompany!''}',600,700);">${sendbackInfo.sendbackLogisticsNo!''};</a><br>
                                     </#list>
                                 <#else>
@@ -295,7 +295,7 @@
                                     寄出:
                                     <#list customer.salesOrderList as salesOrder>
                                         <#if salesOrder.salesPostNum??>
-                                            <a onclick="openLogistics('物流信息','${path}/admin/detect/to_view_logistics?billCode=${salesOrder.salesPostNum!''}&billName=${salesOrder.salesPostFirm!''}',300,400);">${salesOrder.salesPostNum!''}</a>,
+                                            <a onclick="openLogistics('物流信息','${path}/admin/detect/to_view_logistics?billCode=${salesOrder.salesPostNum!''}&billName=${salesOrder.salesPostFirm!''}',600,700);">${salesOrder.salesPostNum!''}</a>,
                                         </#if>
                                     </#list>
                                 <#else>

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

@@ -144,6 +144,25 @@
                     </div>-->
                 </div>
             </div>
+              <div class="row cl">
+                <div class="formControls col-12 col-sm-12">
+                    <div class="formControls col-2 col-sm-2 text-r">
+                        <strong>是否使用</strong>
+                    </div>
+                    <div class="radio-box">
+                        <input type="radio" id="tel-b4" name="sendbackIsUse" checked value="1">
+                        <label for="tel-b4">未使用</label>
+                    </div>
+                    <div class="radio-box">
+                        <input type="radio" id="tel-b5" name="sendbackIsUse"  value="2">
+                        <label for="tel-b5">已使用</label>
+                    </div>
+                    <#--<div class="radio-box">
+                        <input type="radio" id="tel-b3" name="sendbackStatus" value="3">
+                        <label for="tel-b3">已签收</label>
+                    </div>-->
+                </div>
+            </div>
             <div class="row cl" id="backLogisticsInfo">
                 <div class="formControls col-2 col-sm-2 text-r">
                     <strong>物流信息</strong>
@@ -942,6 +961,7 @@
                         <table class="table table-border table-bordered table-bg table-hover table-sort">
                             <thead>
                             <tr class="text-c">
+                                <th width="90">签收id</th>
                                 <th width="90">物流状态</th>
                                 <th width="160">物流</th>
                                 <th width="100">寄件人信息</th>
@@ -955,6 +975,7 @@
                             <#if (signclosedList?size > 0)>
                                 <#list signclosedList as signclosed>
                                 <tr>
+                                    <td class="text-c" width="100">${signclosed.signclosedId!}</td>
                                     <td class="text-c" width="100">
                                         <#if signclosed.signclosedIsReceiving??>
                                             <#if signclosed.signclosedIsReceiving == 1>
@@ -1449,6 +1470,7 @@
             var sendbackSignTime = $("#sendbackSignTime").val();
             var sendbackNoticeCustomer = parseInt($("input[name='sendbackNoticeCustomer']:checked").val());
             var sendbackPresaleAdminId = $("#sendbackPresaleAdminId").val();
+            var sendbackIsUse = parseInt($("input[name='sendbackIsUse']:checked").val());
             if(sendbackNoticeCustomer === 2){
                 sendbackPresaleAdminId = null;
             }
@@ -1505,7 +1527,8 @@
                     "sendProdcues" : SendProdcues,
                     "sendbackSignTime" : sendbackSignTime,
                     "sendbackNoticeCustomer" : sendbackNoticeCustomer,
-                    "sendbackPresaleAdminId" : sendbackPresaleAdminId
+                    "sendbackPresaleAdminId" : sendbackPresaleAdminId,
+                    "sendbackIsUse" : sendbackIsUse
                 },
                 url: "${path}/admin/customer/add_SendbackInfo",
                 async: false,
@@ -3329,20 +3352,35 @@
         if($("#detectState").val() == "30"){
             $("#updateDetect_3").hide();
         };
+        $("#procTypeId").val(3);//回显客诉处理方式
+        procMethod(3);
+        $("#procMethodId").val(7);
     });
     $("#tel-002").click(function (){
         if($("#detectState").val() == "30"){
             $("#updateDetect_3").hide();
         };
+        $("#procTypeId").val(3);//回显客诉处理方式
+        procMethod(3);
+        $("#procMethodId").val(6);
     });
     $("#tel-003").click(function (){
         $("#updateDetect_3").show();
+        $("#procTypeId").val(4);//回显客诉处理方式
+        procMethod(4);
+        $("#procMethodId").val(8);
     });
     $("#tel-004").click(function (){
         $("#updateDetect_3").show();
+        $("#procTypeId").val(2);//回显客诉处理方式
+        procMethod(2);
+        $("#procMethodId").val(21);
     });
     $("#tel-005").click(function (){
         $("#updateDetect_3").show();
+        $("#procTypeId").val(3);//回显客诉处理方式
+        procMethod(3);
+        $("#procMethodId").val(44);
     });
 
 

+ 37 - 8
watero-rst-web/src/main/webapp/WEB-INF/views/cm/logistics/view_logistics.ftl

@@ -142,7 +142,7 @@
 <div class="mui-content" style="background: #fff;">
     <div style="position: relative;height: 100px;padding:20px 15px;background: #6bc5e3;">
         <img style="float: left;" width="60px" src="//s.iamberry.com/wateroPF/new/images/logistics.png">
-        <ul style="display: inline-block;float: left;text-align: left;color: #fff;line-height: 30px;padding: 0 0 0 10px;">
+        <ul style="display: inline-block;float: left;text-align: left;color: #fff;line-height: 30px;">
             <li id="billName"></li>
             <li>单号:<span id="billCode"></span></li>
         </ul>
@@ -176,7 +176,8 @@
                 console.log(dt);
                 if(dt.status) {
                     var name='';
-                    switch (billName){
+
+                    switch (billName.toLowerCase()){
                         case "sto":
                             name= "申通快递";
                             break;
@@ -239,11 +240,9 @@
                     }
                     $("#billName").text(name);
                     $("#billCode").text(billCode);
-                    if(dt.data.status=="1"){
-
-
+                    if(dt.data.status=="0"){
                     var renewal_data = [];
-                    renewal_data = dt.data.data;
+                    renewal_data = dt.data.data.info.context;
                     var table = document.body.querySelector('.my-tab-view-pull');
                     mui(renewal_data).each(function(index) {
                         var li = document.createElement('section');
@@ -252,7 +251,7 @@
                             color='point-red';
                             //text="text-red";
                         }
-                        li.innerHTML = ' <span class="point-time '+color+'"></span><time class="'+text+'">'+this.time+'</time><aside><p class="things">'+this.location+'</p><p class="brief" style="padding-top: 4%;">'+this.context+'</p></aside>';
+                        li.innerHTML = ' <span class="point-time '+color+'"></span><time class="'+text+'">'+formatTime(this.time,"Y/M/D h:m:s")+'</time><aside><p class="brief" style="padding-top: 4%;">'+this.desc+'</p></aside>';
                         table.appendChild(li);
 
                     })
@@ -287,7 +286,37 @@
         if(date <10 && date > 0){
             date = "0"+date;
         }
-        return   year+"-"+month+"-"+date;
+        return   year+"-"+month+"-"+date +" "+hour+":"+minute+":"+second;
+    }
+
+    /**
+     * 时间戳转化为年 月 日 时 分 秒
+     * number: 传入时间戳
+     * format:返回格式,支持自定义,但参数必须与formateArr里保持一致
+     */
+    function formatTime(number,format) {
+
+        var formateArr  = ['Y','M','D','h','m','s'];
+        var returnArr   = [];
+
+        var date = new Date(number * 1000);
+        returnArr.push(date.getFullYear());
+        returnArr.push(formatNumber(date.getMonth() + 1));
+        returnArr.push(formatNumber(date.getDate()));
+
+        returnArr.push(formatNumber(date.getHours()));
+        returnArr.push(formatNumber(date.getMinutes()));
+        returnArr.push(formatNumber(date.getSeconds()));
+
+        for (var i in returnArr)
+        {
+            format = format.replace(formateArr[i], returnArr[i]);
+        }
+        return format;
+    }
+    function formatNumber(n) {
+        n = n.toString()
+        return n[1] ? n : '0' + n
     }
 </script>
 </body>

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

@@ -181,8 +181,21 @@
                 </div>
             </div>
             <div class="row cl">
+                <label class="form-label col-3 col-sm-3"><span class="c-red">*</span>是否使用:</label>
+                <div class="formControls col-7 col-sm-7">
+                    <div class="radio-box">
+                        <input type="radio" value="1"<#if complaintSignclosedInfo.sendbackIsUse??> <#if complaintSignclosedInfo.sendbackIsUse == 1>checked="checked" </#if><#else>checked="checked" </#if> name="sendbackIsUse">
+                        <label for="tel-1">未使用</label>
+                    </div>
+                    <div class="radio-box">
+                        <input type="radio" value="2" <#if complaintSignclosedInfo.sendbackIsUse??> <#if complaintSignclosedInfo.sendbackIsUse == 2>checked="checked" </#if></#if> name="sendbackIsUse">
+                        <label for="tel-1">已使用</label>
+                    </div>
+                </div>
+            </div>
+            <div class="row cl">
                 <label class="form-label col-xs-3 col-sm-3">签收图片:</label>
-                <div class="formControls col-xs-2 col-sm-2" id="fileDiv" style="width: 17%;width: 100px;height: 100px;">
+                    <div class="formControls col-xs-2 col-sm-2" id="fileDiv" style="width: 17%;width: 100px;height: 100px;">
                     <input type="file" name="file" id="fileid" style="opacity: 0; position: absolute; width: 90px;height: 80px;">
                     <img alt="介绍图" src="${path}/common/images/pts/addparts.jpg" id="partsImg" width="90px;" height="80px;">
                 </div>

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

@@ -241,7 +241,7 @@
                 <td width="10" style="font-weight: normal;"><span>
                 ${order.salesPostNum!'暂无快递单号'}
                 <#if order.salesPostNum??>
-                    <a onclick="openLogistics('物流信息','${path}/admin/detect/to_view_logistics?billCode=${order.salesPostNum!''}&billName=${order.salesPostFirm!''}',300,400);">查看物流</a>
+                    <a onclick="openLogistics('物流信息','${path}/admin/detect/to_view_logistics?billCode=${order.salesPostNum!''}&billName=${order.salesPostFirm!''}',600,500);">查看物流</a>
                 </#if>
                 </span></td>
             </tr>