Parcourir la source

excel导入订单优化

liujiankang il y a 5 ans
Parent
commit
17d831070c

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/ProductColor.java

@@ -59,6 +59,7 @@ public class ProductColor implements Serializable {
 
     private String colorIds;       //颜色id
     private String[] colorIdStr;       //颜色id
+    private String colorlabel;       //标签(导入订单用)
 
     public String getProductName() {
         return productName;
@@ -244,6 +245,14 @@ public class ProductColor implements Serializable {
         this.colorIdStr = colorIdStr;
     }
 
+    public String getColorlabel() {
+        return colorlabel;
+    }
+
+    public void setColorlabel(String colorlabel) {
+        this.colorlabel = colorlabel;
+    }
+
     @Override
     public String toString() {
         return "ProductColor{" +

+ 10 - 7
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -1585,14 +1585,17 @@ public class CustomerServiceImpl implements CustomerService {
             Product product = productMapper.getProduce(productColor.getColorProductId());
             SignclosedProductInfo signclosedProductInfo = new SignclosedProductInfo();
             //添加待签收产品
-            signclosedProductInfo.setSignclosedState(1);
-            signclosedProductInfo.setProductName(productColor.getProductName());
-            signclosedProductInfo.setProductNum(info.getSendbackProdcueNumber());
-            signclosedProductInfo.setSignclosedProductId(info.getSendbackProductId());
-            signclosedProductInfo.setSignclosedProductColor(info.getSendbackColorId());
-            signclosedProductInfo.setSignclosedProductType(productColor.getProductType());
-            signclosedProductInfo.setSignclosedId(signclosedInfo.getSignclosedId());
+            if(info.getSendbackProdcueNumber() != null && info.getSendbackProdcueNumber() != 0){
+                signclosedProductInfo.setSignclosedState(1);
+                signclosedProductInfo.setProductName(productColor.getProductName());
+                signclosedProductInfo.setProductNum(info.getSendbackProdcueNumber());
+                signclosedProductInfo.setSignclosedProductId(info.getSendbackProductId());
+                signclosedProductInfo.setSignclosedProductColor(info.getSendbackColorId());
+                signclosedProductInfo.setSignclosedProductType(productColor.getProductType());
+                signclosedProductInfo.setSignclosedId(signclosedInfo.getSignclosedId());
                 complaintSignclosedProductInfoMapper.insert(signclosedProductInfo);
+            }
+
         }
         /*添加待签收记录 2019年4月11日18:09:34 end*/
         if(sendbackItemLists.size() > 0){

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

@@ -197,7 +197,8 @@
         c.color_picture colorPicture,
         c.color_status colorStatus,
         c.color_cretae_time colorCretaeTime,
-        c.color_update_time colorUpdateTime
+        c.color_update_time colorUpdateTime,
+        c.color_label colorlabel
         from
         tb_rst_product_color c
         WHERE

+ 133 - 4
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderController.java

@@ -1,5 +1,7 @@
 package com.iamberry.rst.controllers.order;
 
+import com.alibaba.fastjson.JSONArray;
+import com.iamberry.redis.RedisUtils;
 import com.iamberry.rst.controllers.sys.SysController;
 import com.iamberry.rst.core.address.District;
 import com.iamberry.rst.core.cm.SalesOrder;
@@ -30,10 +32,7 @@ import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sms.MessageService;
 import com.iamberry.rst.faces.sms.SmsService;
 import com.iamberry.rst.faces.sys.SysService;
-import com.iamberry.rst.utils.AdminUtils;
-import com.iamberry.rst.utils.ExcelUtil;
-import com.iamberry.rst.utils.GenerateKeyUtil;
-import com.iamberry.rst.utils.OrderNoUtil;
+import com.iamberry.rst.utils.*;
 import com.iamberry.wechat.tools.DateTimeUtil;
 import com.iamberry.wechat.tools.ObjectExcelView;
 import com.iamberry.wechat.tools.ResponseJson;
@@ -935,6 +934,14 @@ public class AdminOrderController {
                                         @RequestParam("productUrl") String filePath,
                                         HttpServletRequest request) throws IOException {
         ResponseJson json = new ResponseJson(200, "SUCCESS", 200);
+
+        Product product = new Product();
+        List<Product> productList = productService.listProductAndColorAndfittings(product);
+        ProductColor color = new ProductColor();
+        color.setColorProductId(productList.get(0).getProductId());
+        List<ProductColor> productColorList = productService.listProduceColor(color);
+        json.addResponseKeyValue("productColorList", productColorList);
+        json.addResponseKeyValue("productList", productList);
         json.addResponseKeyValue("values", ExcelUtil.readCell(request.getServletContext().getRealPath(filePath), productName));
         json.addResponseKeyValue("colors", orderService.listProductColor());
         return json;
@@ -2531,4 +2538,126 @@ public class AdminOrderController {
         responseJson.addResponseKeyValue("order", order);
         return responseJson;
     }
+
+    /**
+     * 保存产品分词信息到redis
+     *
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/addProductRedis")
+    public ResponseJson addProductRedis(HttpServletRequest request) {
+        ResponseJson responseJson = new ResponseJson();
+        Product product = new Product();
+        List<Product> productList = productService.listProductAndColorAndfittings(product);
+        HashMap<String,Set<String>> map = new HashMap<>();
+        for(Product pro : productList){
+            for(ProductColor color : pro.getColorList()){
+                StringBuffer str = new StringBuffer(pro.getProductName());
+                if(pro.getProductType() == 6){
+                    str.append(" watero ");
+                }else if(pro.getProductType() == 1) {
+                    str.append(" 上朵soodo ");
+                }else if(pro.getProductType() == 9) {
+                    str.append(" YULIA优尼雅 ");
+                }else{
+                    str.append(" Aiberle爱贝源 ");
+                }
+                if(color.getColorAbbreviation() == null){
+                    str.append(color.getColorName());
+                }else{
+                    str.append(color.getColorName()+color.getColorAbbreviation());
+                }
+                if(color.getColorlabel() != null){
+                    str.append(color.getColorlabel());
+                }
+                System.out.println(color.getColorId()+"----"+str);
+                Set<String> setString = null;
+                try {
+                    setString = AnalyzerUtil.productsplitWord(str.toString());
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                map.put(color.getColorId().toString(),setString);
+            }
+        }
+        RedisUtils.put("order_productList",map);
+        return responseJson;
+    }
+
+    /**
+     * 根据excel文档产品名匹配产品颜色id
+     *
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/getColorIdByExcelName")
+    public ResponseJson getColorIdByExcelName(HttpServletRequest request,String excelProductName) throws IOException {
+        ResponseJson responseJson = new ResponseJson();
+        if(excelProductName == null || excelProductName.equals("")){
+            responseJson.setResultCode(500);
+            responseJson.setReturnCode(500);
+            return responseJson;
+        }
+        /*excelProductName = new String(excelProductName.getBytes("ISO-8859-1"),"UTF-8");*/
+        /*excelProductName = "watero滤芯T1";*/
+        /*excelProductName = "上朵lips牙刷幻影黑";*/
+        /*excelProductName = "WB-2水机珍珠白";*/
+        /*excelProductName = "银离子水箱";*/
+        /*excelProductName = "规格:滤芯组(T1/T2*2+T3/T4*1);";*/
+        /*excelProductName = "水龙头净水器";*/
+        /*excelProductName = "果蔬机STY02";*/
+        /*excelProductName = "Watero净水机滤芯 T2";*/
+
+        HashMap<String,JSONArray> map = RedisUtils.get("order_productList",HashMap.class);
+        Set<String>  nameList = AnalyzerUtil.productsplitWord(excelProductName);
+
+        Map<String,Integer> productNums = new TreeMap<>();
+        for(String name : nameList){
+            for(String key : map.keySet()){
+                if(productNums.get(key) == null){
+                    productNums.put(key,0);
+                }
+                Integer num2 = 0;
+                JSONArray jsonArray = map.get(key);
+               /* Set<String> set = new HashSet<>();*/
+                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(num2 > 0){
+                    productNums.put(key,productNums.get(key) + num2);
+                }
+            }
+        }
+        Iterator iter = productNums.entrySet().iterator();
+        TreeMap<Integer,String> productColors = new TreeMap<>();
+        while(iter.hasNext()) {
+            Map.Entry entry = (Map.Entry)iter.next();
+            productColors.put((Integer) entry.getValue(), (String) entry.getKey());
+        }
+
+        if(productColors.size() > 0){
+            Integer colorId = Integer.valueOf(productColors.lastEntry().getValue());
+            ProductColor productColor = productService.getProduceColor(colorId);
+            responseJson.addResponseKeyValue("colorId",productColor.getColorId());
+            responseJson.addResponseKeyValue("productId",productColor.getColorProductId());
+            responseJson.addResponseKeyValue("colorBar",productColor.getColorBar());
+            responseJson.setReturnCode(200);
+        }
+        return responseJson;
+    }
+
 }

+ 47 - 0
watero-rst-web/src/main/java/com/iamberry/rst/utils/AnalyzerUtil.java

@@ -112,5 +112,52 @@ public class AnalyzerUtil {
         }
         return setList;
     }
+
+    private static Set<String> orderProductSet = new HashSet<String>();
+    public static void toInit() throws IOException {
+        String path = (new ClassPathResource("/order_product_ext.txt").getURL().getPath().substring(1));
+        //读入停用词文件
+        BufferedReader StopWordFileBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(path)),"UTF-8"));
+        //用来存放停用词的集合
+        //初如化停用词集
+        String stopWord = null;
+        for(; (stopWord = StopWordFileBr.readLine()) != null;){
+            orderProductSet.add(stopWord);
+        }
+    }
+    /**
+     * 分词
+     * @author   LJK
+     * @date     2019年9月12日14:47:44
+     * @params   暂无参数
+     * @return   void
+     */
+    public static Set<String> productsplitWord(String content) throws IOException {
+        // 配置
+        Reader reader = new StringReader(content);
+        Configuration config = org.wltea.analyzer.cfg.DefualtConfig.getInstance();
+        config.setUseSmart(true);
+        // 分词
+        IKSegmenter ikSegmenter = new IKSegmenter(reader, config);
+        // 分词后的内容
+        Map<String, Integer> words = new HashMap<>();
+        // 迭代获取分词的内容
+        Lexeme lexeme = null;
+        while ((lexeme = ikSegmenter.next()) != null) {
+            //去除停用词
+            if(stopWordSet.contains(lexeme.getLexemeText())) {
+                continue;
+            }
+            if (words.get(lexeme.getLexemeText()) != null) {
+                words.put(lexeme.getLexemeText(), words.get(lexeme.getLexemeText()) + 1);
+            } else {
+                words.put(lexeme.getLexemeText(), 1);
+            }
+        }
+        Set<String> strings = words.keySet();
+        return strings;
+    }
+
+
 }
 

+ 9 - 0
watero-rst-web/src/main/resources/IKAnalyzer.cfg.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+    <comment>IK Analyzer 扩展配置</comment>
+    <!--用户可以在这里配置自己的扩展字典-->
+    <entry key="ext_dict">ext.dic;</entry>
+    <!--用户可以在这里配置自己的扩展停止词字典-->
+    <entry key="ext_stopwords">english_stopword.dic;chinese_stopword.dic</entry>
+</properties>

+ 141 - 0
watero-rst-web/src/main/resources/ext.dic

@@ -0,0 +1,141 @@
+Aiberle
+爱贝源
+Watero
+上朵
+YULIA
+水龙头
+净水机
+WB-2
+滤芯
+T2
+T1
+T3
+T4
+lips
+牙刷
+WB-2
+净水花洒
+花洒
+滤芯
+美容
+软水机
+电动牙刷
+茉莉白
+净水器
+水机
+滤芯
+扳手
+WB-1
+美肤
+SPA
+滤芯组
+银离子水箱
+果蔬机
+STY02
+硅胶
+排水管
+水箱
+6
+STY04
+橡皮垫圈
+净水龙头
+空气
+净化器
+复古
+果蔬净化机
+MY-Ai-N02
+MY-Ai-N01
+不锈钢滤网
+接水台
+卡通箱
+负离子
+厨具
+星巴克
+硅油
+螺母
+彩盒
+柠檬酸
+滤芯1
+滤芯2
+滤芯3
+滤芯4
+更换器
+脚垫
+软胶管
+PP棉
+进水滤网
+演示机
+分体式
+储物箱
+奶粉箱
+一年套装
+套装
+soodo
+TB029
+茉莉白
+珍珠白
+幻影黑
+曜石黑
+宝石绿
+黑
+富氢
+薄荷绿
+冰川蓝
+奶油黄
+樱花粉
+极光白
+晶石黑
+品蓝
+品黑
+玫瑰金
+亚麻灰
+琉璃绿
+云烟紫
+蔷薇粉
+粉色T1
+粉色T2
+粉色T3
+白色T1
+白色T2
+白色T3
+绿色T1
+绿色T2
+绿色T3
+空滤芯
+擦拭布
+贝母白
+无滤芯
+粉色
+白
+刷头
+旅行套装
+儿童版
+哑光
+馍馍款
+7723款
+铁片
+喷头盖
+外螺纹
+适配器
+连接螺母
+转接器
+蓝21.5
+蓝23.5
+白21.5
+白23.5
+带扣面板
+水槽
+密封圈
+防水圈
+小号
+中号
+大号
+提手
+篮子
+KQ02
+4个刷头
+出水口螺母
+典雅黑
+富氢滤芯
+果蔬
+清洗机

+ 138 - 0
watero-rst-web/src/main/resources/order_product_ext.txt

@@ -0,0 +1,138 @@
+Aiberle
+爱贝源
+Watero
+上朵
+YULIA
+水龙头
+净水机
+WB-2
+滤芯
+T2
+T1
+T3
+T4
+lips
+牙刷
+WB-2
+净水花洒
+花洒
+滤芯
+美容
+软水机
+电动牙刷
+茉莉白
+净水器
+水机
+滤芯
+扳手
+WB-1
+美肤
+SPA
+滤芯组
+银离子水箱
+果蔬机
+STY02
+硅胶
+排水管
+水箱
+6
+STY04
+橡皮垫圈
+净水龙头
+空气
+净化器
+果蔬清洗机
+复古
+果蔬净化机
+MY-Ai-N02
+MY-Ai-N01
+不锈钢滤网
+接水台
+卡通箱
+负离子
+厨具
+星巴克
+硅油
+螺母
+彩盒
+柠檬酸
+滤芯1
+滤芯2
+滤芯3
+滤芯4
+更换器
+脚垫
+软胶管
+PP棉
+进水滤网
+演示机
+分体式
+储物箱
+奶粉箱
+套装
+soodo
+TB029
+茉莉白
+珍珠白
+幻影黑
+曜石黑
+宝石绿
+黑
+富氢款
+薄荷绿
+冰川蓝
+奶油黄
+樱花粉
+极光白
+晶石黑
+品蓝
+品黑
+玫瑰金
+亚麻灰
+琉璃绿
+云烟紫
+蔷薇粉
+粉色T1
+粉色T2
+粉色T3
+白色T1
+白色T2
+白色T3
+绿色T1
+绿色T2
+绿色T3
+空滤芯
+擦拭布
+贝母白
+无滤芯
+粉色
+白
+刷头
+旅行套装
+儿童版
+哑光
+馍馍款
+7723款
+铁片
+喷头盖
+外螺纹
+适配器
+连接螺母
+转接器
+蓝21.5
+蓝23.5
+白21.5
+白23.5
+带扣面板
+水槽
+密封圈
+防水圈
+小号
+中号
+大号
+提手
+篮子
+KQ02
+4个刷头
+出水口螺母
+典雅黑

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

@@ -116,7 +116,7 @@
                 <select id="productId" name="productId" class="my-select" style="width: 158px;">
                     <#if (productList?size > 0)>
                             <#list productList as product>
-                                <option value="${product.productId!""}" <#if detectinfo.productId == product.productId>checked="checked"</#if> >${product.productName!""}</option>
+                                <option value="${product.productId!""}" <#if detectinfo.productId == product.productId>selected = "selected"</#if> >${product.productName!""}</option>
                             </#list>
                     </#if>
                 </select>
@@ -124,7 +124,7 @@
                 <select id="productColorId" name="productColorId" class="my-select" style="width: 158px;">
                     <#if (productColorList?size > 0)>
                         <#list productColorList as productColor>
-                            <option value="${productColor.colorId!""}" <#if detectinfo.productColorId == productColor.colorId>checked="checked"</#if> >${productColor.colorName!""}</option>
+                            <option value="${productColor.colorId!""}" <#if detectinfo.productColorId == productColor.colorId>selected = "selected"</#if> >${productColor.colorName!""}</option>
                         </#list>
                     </#if>
                 </select>

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

@@ -439,57 +439,92 @@
                 layer.msg('加载失败,请重试!',{icon: 5,time:3000});
             } else {
                 $("#tbody").html("");
+
                 for (var i = 0; i < result.returnMsg.values.length; i++) {
                     var backgroun = '';
                     if(i%2!=0){
                         backgroun = 'background: #F5FAFE';
                     }
+                    var productSelect = '<select id="productId_'+i+'" productname="'+result.returnMsg.values[i]+'"  name="productId" onchange="getProduct(this)" class="chosen" style="width: 300px;">';
+                    for (var j = 0; j < result.returnMsg.productList.length; j++) {
+                        productSelect += '<option value="'+result.returnMsg.productList[j].productId+'">'+result.returnMsg.productList[j].productName+'</option>';
+                    }
+                    productSelect += '</select>';
+
+                    var productColorSelect = '<select id="productColorId_'+i+'" name="productColorId" class="chosen" style="width: 300px;">';
+                    for (var j = 0; j < result.returnMsg.productColorList.length; j++) {
+                        productColorSelect += '<option value="'+result.returnMsg.productColorList[j].colorBar+"_"+result.returnMsg.values[i]+'">'+result.returnMsg.productColorList[j].colorName+'</option>';
+                    }
+                    productColorSelect += '</select>';
 
                     var temp = '<tr class="text-c" style="'+ backgroun +'"><td style="width: 50px;">' + result.returnMsg.values[i] + '</td><td>';
                     temp += '<table class="table table-border table-bordered table-bg" style="'+ backgroun +'">';
-
-                    for (var j = 0; j < result.returnMsg.colors.length; j=j+6) {
-                        temp += '<tr>';
-                        temp = temp + '<td style="text-align: left;padding: 3px;"><label style="font-size: 12px;"><input checked class="productmap" type="radio" name="color_'+ i + '" value="' + result.returnMsg.colors[j].colorBar + '_' + result.returnMsg.values[i] + '"/>' + result.returnMsg.colors[j].productName + '-' + result.returnMsg.colors[j].colorName + '(' + result.returnMsg.colors[j].colorBar + ')</label></td>';
-                        if( typeof (result.returnMsg.colors[j+1]) != 'undefined'){
-                            temp = temp + '<td style="text-align: left;padding: 3px;"><label style="font-size: 12px;"><input checked class="productmap" type="radio" name="color_'+ i + '" value="' + result.returnMsg.colors[j+1].colorBar + '_' + result.returnMsg.values[i] + '"/>' + result.returnMsg.colors[j+1].productName + '-' + result.returnMsg.colors[j+1].colorName + '(' + result.returnMsg.colors[j+1].colorBar + ')</label></td>';
-                        }else{
-                            temp = temp + '<td style="text-align: left;padding: 3px;"></td>';
-                        }
-                        if( typeof (result.returnMsg.colors[j+2]) != 'undefined') {
-                            temp = temp + '<td style="text-align: left;padding: 3px;"><label style="font-size: 12px;"><input checked class="productmap" type="radio" name="color_'+ i + '" value="' + result.returnMsg.colors[j+2].colorBar + '_' + result.returnMsg.values[i] + '"/>' + result.returnMsg.colors[j+2].productName + '-' + result.returnMsg.colors[j+2].colorName + '(' + result.returnMsg.colors[j+2].colorBar + ')</label></td>';
-                        }else{
-                            temp = temp + '<td style="text-align: left;padding: 3px;"></td>';
-                        }
-                        if( typeof (result.returnMsg.colors[j+3]) != 'undefined') {
-                            temp = temp + '<td style="text-align: left;padding: 3px;"><label style="font-size: 12px;"><input checked class="productmap" type="radio" name="color_'+ i + '" value="' + result.returnMsg.colors[j+3].colorBar + '_' + result.returnMsg.values[i] + '"/>' + result.returnMsg.colors[j+3].productName + '-' + result.returnMsg.colors[j+3].colorName + '(' + result.returnMsg.colors[j+3].colorBar + ')</label></td>';
-                        }else{
-                            temp = temp + '<td style="text-align: left;padding: 3px;"></td>';
-                        }
-                        if( typeof (result.returnMsg.colors[j+4]) != 'undefined') {
-                            temp = temp + '<td style="text-align: left;padding: 3px;"><label style="font-size: 12px;"><input checked class="productmap" type="radio" name="color_'+ i + '" value="' + result.returnMsg.colors[j+4].colorBar + '_' + result.returnMsg.values[i] + '"/>' + result.returnMsg.colors[j+4].productName + '-' + result.returnMsg.colors[j+4].colorName + '(' + result.returnMsg.colors[j+4].colorBar + ')</label></td>';
-                        }else{
-                            temp = temp + '<td style="text-align: left;padding: 3px;"></td>';
-                        }
-
-                        if( typeof (result.returnMsg.colors[j+5]) != 'undefined') {
-                            temp = temp + '<td style="text-align: left;padding: 3px;"><label style="font-size: 12px;"><input checked class="productmap" type="radio" name="color_'+ i + '" value="' + result.returnMsg.colors[j+5].colorBar + '_' + result.returnMsg.values[i] + '"/>' + result.returnMsg.colors[j+5].productName + '-' + result.returnMsg.colors[j+5].colorName + '(' + result.returnMsg.colors[j+5].colorBar + ')</label></td>';
-                        }else{
-                            temp = temp + '<td style="text-align: left;padding: 3px;"></td>';
-                        }
-                        temp += '</tr>';
-                    }
+                    temp += '<tr>';
+                    temp += productSelect;
+                    temp += productColorSelect;
+                    temp += '</tr>';
                     temp += '</table>';
                     temp = temp + '</td></tr>';
                     $("#tbody").append(temp);
+
+                    $.ajax({
+                        cache: true,
+                        type: "POST",
+                        url: "${path}/admin/order/getColorIdByExcelName",
+                        data:{excelProductName:result.returnMsg.values[i]},
+                        async: false,
+                        success: function(data){
+                            if (data.returnCode == 200) {
+                                $("#productId_"+i).val(data.returnMsg.productId);
+                                getProduct($("#productId_"+i));
+                                $("#productColorId_"+i).val(data.returnMsg.colorBar+"_"+result.returnMsg.values[i]);
+                            }
+
+                        },
+                        error: function(XmlHttpRequest, textStatus, errorThrown){
+                            layer.msg('添加错误',{icon: 5,time:1000});
+                        }
+                    });
+                    $("#productId_"+i).chosen({allow_single_deselect:true});
+                    $("#productColorId_"+i).chosen({allow_single_deselect:true});
                 }
             }
             layer.close(index);
         });
+
         $("#showProduct").show();
+
     }
+    function  getProduct(obj) {
+        var productId = $(obj).val();
+        var suffix = $(obj).attr("id").substr($(obj).attr("id").lastIndexOf("_"));
+        var productname = $(obj).attr("productname");
+        $.ajax({
+            cache: true,
+            type: "POST",
+            url: "${path}/admin/product/get_product",
+            data:{colorProductId:productId},// 你的formid
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    $("#productColorId"+suffix).empty();
+                    if(data.returnMsg.productColorList.length > 0){
+                        for(var i=0;i<data.returnMsg.productColorList.length;i++){
+                            var productColor = data.returnMsg.productColorList[i];
+                            var s = productColor.colorBar+'_'+productname;
+                            $("#productColorId"+suffix).append("<option value='"+s+"'>"+productColor.colorName+"</option>");
+                            $("#productColorId"+suffix).trigger("chosen:updated");//初始化
+                        }
+                    }
 
+                }
 
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+                layer.msg('添加错误',{icon: 5,time:1000});
+            }
+        });
+    }
     function getStore(orderStoreInfo) {
         var index = layer.load(1, {
             shade: [0.5,'#fff'] //0.1透明度的白色背景
@@ -529,9 +564,12 @@
 
         var orderBatch = $("#order_batch").val();
 
-        var map = $(".productmap:checked");                 // 第三方平台的产品信息和Efast的产品信息管理数据 id-name
+        /*var map = $(".productmap:checked");     */            // 第三方平台的产品信息和Efast的产品信息管理数据 id-name
+        var map = $("select[name='productColorId']");
+
         var mapArray = new Array();
         for (var i = 0; i < map.length; i++) {
+           /* alert(map[i].value);*/
             mapArray[i] = map[i].value;
         }
 
@@ -705,7 +743,7 @@
         window.location.href = error_path;
     }
 
-    /*$('.chosen').chosen({
+    $('.chosen').chosen({
         no_results_text: "没有找到结果!",//搜索无结果时显示的提示
         search_contains:true,   //关键字模糊搜索。设置为true,只要选项包含搜索词就会显示;设置为false,则要求从选项开头开始匹配
         allow_single_deselect:true, //单选下拉框是否允许取消选择。如果允许,选中选项会有一个x号可以删除选项
@@ -713,7 +751,7 @@
         disable_search_threshold: 0, //当选项少等于于指定个数时禁用搜索。
         inherit_select_classes: true, //是否继承原下拉框的样式类,此处设为继承
         placeholder_text_single: '选择国家', //单选选择框的默认提示信息,当选项为空时会显示。如果原下拉框设置了data-placeholder,会覆盖这里的值。
-        width: '227px', //设置chosen下拉框的宽度。即使原下拉框本身设置了宽度,也会被width覆盖。
+        width: '520px', //设置chosen下拉框的宽度。即使原下拉框本身设置了宽度,也会被width覆盖。
         max_shown_results: 1000, //下拉框最大显示选项数量
         display_disabled_options: false,
         single_backstroke_delete: false, //false表示按两次删除键才能删除选项,true表示按一次删除键即可删除
@@ -724,7 +762,7 @@
     $('.chosen2').chosen({
         search_contains:false,
         enable_split_word_search: true //分词搜索,选项词可通过空格或'[]'分隔。search_contains为false时才能看出效果
-    });*/
+    });
     chonsens();
     function chonsens() {
         $('.chosen').chosen({

+ 61 - 5
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl

@@ -120,17 +120,24 @@
                     </div>
                     <#--<div class="formControls col-2 col-sm-2">
                         <span class="select-box">
-                            <select  class="select init_store"  name="salesStoreId" id="">
+                            <select class="chosen init_store"  name="salesStoreId"  id="store_1">
                             </select>
                         </span>
                     </div>-->
-                    <div class="formControls col-2 col-sm-2">
+                    <div class="formControls col-2 col-sm-2" style="margin-top: 4px;">
+
+                        <select id="salesStoreId" name="salesStoreId" class="chosen">
+
+                        </select>
+
+                    </div>
+                    <#--<div class="formControls col-2 col-sm-2">
                         <input id="store_1" name="maktMaktx" class="input-text" list="datalist_1" value="" placeholder="输入店铺关键字或双击" datatype="*1-20"  />
                             <datalist class="select init_store" id="datalist_1">
 
                             </datalist>
                             <input type="hidden" id="salesStoreId" name="salesStoreId">
-                    </div>
+                    </div>-->
                 </div>
 
             <div class="row cl" id="" style="">
@@ -328,7 +335,7 @@
        }
     });
 
-    $("#store_1").on("input",function(){
+    /*$("#store_1").on("input",function(){
         var $options=$("#datalist_1").children();
 
         for(var i=0;i<$options.length;i++){
@@ -339,7 +346,7 @@
                 $("#salesStoreId").val("");
             }
         }
-    });
+    });*/
 
     /*是否为修改*/
     const isUpdate = false;
@@ -349,6 +356,55 @@
 
     //所选店铺是否自营 1:自营 2:非自营
     var dealerSelfOperated;
+
+    $("#salesCompanyId").change(function(){
+     var id = $("#salesCompanyId").val();
+        setStore(id);
+    });
+    setStore(1);
+    /*获取销售店铺*/
+    function setStore(companyId){
+        $.ajax({
+            type: "POST",
+            data: {
+                companyId : companyId
+            },
+            url: "${path}/admin/customer/select_storeInfo",
+            success: function(data){
+                $("#salesStoreId").empty();    //清空下拉框
+                if (data.returnCode == 200) {
+                    for(var i=0;i<data.returnMsg.storeInfoList.length;i++){
+                        var storeInfo = data.returnMsg.storeInfoList[i];
+                        $("#salesStoreId").append("<option  value='"+ storeInfo.storeId +"'>"+ storeInfo.storeName +"</option>");
+                    }
+                    $("#salesStoreId").trigger("chosen:updated");//初始化
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+    }
+
+    $('.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: '260px', //设置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>
 
 

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

@@ -310,7 +310,7 @@
 </div>
 <div style="display: none">
 
-</div>
+</div>ueditor.config
 <tfoot>
 <#include "/base/page_util.ftl">
 <script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>

+ 55 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/update_order.ftl

@@ -137,10 +137,10 @@
 				    </span>
                     </div>
                     <div class="formControls col-2 col-sm-2">
-                        <span class="select-box">
-                            <select  class="select init_store"  name="salesStoreId" id="" ulcId="${order.salesStoreId!""}" >
+
+                            <select  class="chosen " id="salesStoreId"  name="salesStoreId" ulcId="${order.salesStoreId!""}" >
                             </select>
-                        </span>
+
                     </div>
                 </div>
 
@@ -366,6 +366,58 @@
 
     //所选店铺是否自营 1:自营 2:非自营
     var dealerSelfOperated = 0;
+
+    $("#salesCompanyId").change(function(){
+        var id = $("#salesCompanyId").val();
+        setStore(id);
+    });
+    setStore(${order.salesCompanyId!""});
+    /*获取销售店铺*/
+    function setStore(companyId){
+        $.ajax({
+            type: "POST",
+            data: {
+                companyId : companyId
+            },
+            url: "${path}/admin/customer/select_storeInfo",
+            success: function(data){
+                $("#salesStoreId").empty();    //清空下拉框
+                if (data.returnCode == 200) {
+                    for(var i=0;i<data.returnMsg.storeInfoList.length;i++){
+                        var storeInfo = data.returnMsg.storeInfoList[i];
+                        $("#salesStoreId").append("<option  value='"+ storeInfo.storeId +"'>"+ storeInfo.storeName +"</option>");
+                    }
+                    $("#salesStoreId").val(${order.salesStoreId!""});
+                    $("#salesStoreId").trigger("chosen:updated");//初始化
+
+
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+    }
+
+    $('.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: '260px', //设置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>
 </body>
 </html>

+ 1 - 0
watero-rst-web/src/test/resources/IKAnalyzer.cfg.xml

@@ -4,6 +4,7 @@
     <comment>IK Analyzer 扩展配置</comment>
     <!--用户可以在这里配置自己的扩展字典-->
     <entry key="ext_dict">ext.dic;</entry>
+    <entry key="ext_dict">com/zhaochao/ikconf/ext.dic;com/zhaochao/ikconf/mine.dic;</entry>
     <!--用户可以在这里配置自己的扩展停止词字典-->
     <entry key="ext_stopwords">english_stopword.dic;chinese_stopword.dic</entry>
 </properties>