jquery ajax 多文件Excel解析上传

------jsp 前台--------------------

<form  id="importOrderFrom" name="importOrderFrom"  method="post" enctype="multipart/form-data">   

               <div class="dthwxxheada" style="position:relative;">
                     <span>客户名称</span>
    <input type="hidden" name="merchantName" id="merchantName">
    <input type="text" name="venderId">
                       <input type="hidden" name="vender">
                       <ul class="searchrelt"  name="searchrelt" style="width:150px;">
                          
                       </ul>
               </div>
               <div class="dthwxxheada">
                     <span>订单来源</span>
                     <select  id="orderSource" name="orderSource">
                      <option value="">请选择</option>
                           <option value="10001">1号店商家明细</option>
                           <option value="10003">京东商家</option>
                           <option value="10005">天猫商家</option>
                     </select>
                     <a href="http://www.fron.net/help/661.jhtml" target="_blank">采购单获取说明</a>
               </div>
               
               <div class="dthwxxheada">
                     <span>解析模式</span>
                     <select id="fileType" οnchange=" changeFileType()">
                     <option value="1">普通文件</option>
                     <option value="2">多个文件</option>
                     </select>
                     <span style="color: red;">普通文件:一个excel里有多个订单;
                    多个文件:每个excel里只有一个订单
                     </span>
               </div>
               <div class="dthwxxheada" id="singleFile">
                     <span>订单文件</span>
                     <input  type="file" id="orderImportFile"  name="orderImportFile[]"   />
               </div>
              <!--  <div id="upload" style="display: none;">
</div>
<a class="uploadbtn" style="text-align: right;display: none;margin-left: -1px;">解析预览</a>
                -->
               <div class="dthwxxheada" >
                 <button class="btn btn-info" id="btm" type="button" οnclick= "importOrder()" >解析预览</button>
               </div>
               <label id="errorInfo" style="margin-left:20px;color: red;"></label>

                </form>



<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap-table.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap-select.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-form.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/dateutil.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/order/order_import.js?version=201610211604"></script>


   --------------------------js 文件事件--------------------------


/**
 * 当选择天猫时候,显示多文件模式还是单文件模式。
 */
function changeFileType(){
var fileType=$("#fileType").val();
if(fileType=="2"){
$("#orderImportFile").attr("multiple","multiple");
}else{
$("#orderImportFile").removeAttr("multiple");
}

}





/**
 * 解析预览按钮事件
 */
function importOrder(){

$("#btm").attr("disabled","true"); //设置变灰按钮  
setTimeout("$('#btm').removeAttr('disabled')",4000); 

var fileType = $("#fileType").val();
var urlStr="";
if(fileType=="2"){
urlStr = ctx+'/orderImport/parseDuoFileExcel';
}else{
urlStr = ctx+'/orderImport/parseExcel';
}

var file=$("#orderImportFile").val();
   if(file==""){
    alert("请选择订单文件!"); 
       return; 
   } 
   var extStart=file.lastIndexOf("."); 
   var ext=file.substring(extStart,file.length).toUpperCase(); 
   if(ext!=".XLS" && ext!=".XLSX"){ 
       alert("文件格式仅限于.xls或.xlsx"); 
       return; 
   } 
  
   var displayV  = $("ul.searchrelt").css("display");
   var merchantName = "";
   if(displayV=="none"){
    merchantName = $("ul.searchrelt").children().children().val();
    $("#merchantName").val(merchantName);
   }
var orderSource=$("#orderSource").val();
if(merchantName==null || merchantName==""){
alert("请选择客户名称!");
return;
}else if(orderSource==null || orderSource==""){
alert("请选择订单来源!");
return;
}else if(file!=""){
$('#table').bootstrapTable('destroy');
$("#errorInfo").html("");
       var options = {
           url:urlStr,
        data:{},
        type:'post',
        beforeSubmit:function() { 
        MaskUtil.mask("正在解析...");  
        },
           success:function(data){  

            MaskUtil.unmask();  
            if(data.result=="1"){//--1--则解析成功,正常显示预览页面
            $("#errorInfo").html(data.msg);
            orderVersion = data.orderVersion;
            $('#table').bootstrapTable({
            url:ctx+"/orderImport/loadParseExcel",
            queryParams:"queryParamsForOrderImport"
            });
            }else if(data.result=="2"){//--2--则显示维护映射页面
            //1生成目的地下拉框
            var areaSelect=new Array();
            $.ajax({  
               url:ctx+'/orderImport/loadFronarea',
              data:{platId:orderSource},
               dataType:'json',
               async: false,
               success:function(dataArea) {
               areaSelect = dataArea.area;
               },
                   error:function(result) { 
                       } 
            });
           
           
            //2生成页面数据
            var table11 = $(".table111 tbody").empty();
            var orderTempMapList = data.orderTempMapList;
            for(var i=0;i<orderTempMapList.length;i++){
            var elactPlatId=orderTempMapList[i].elactPlatId;
            var elactPlatName=orderTempMapList[i].elactPlatName;
            var descBranchId="";
            var descBranchIdHidden="";
            var branchName="";
            var descId="";
            var descIdHidden="";
            if(elactPlatId=='10001'){//1号店
            descId = orderTempMapList[i].descBranchId.substr(0,2);
            branchName = orderTempMapList[i].descBranchId.substr(0,2);
            descBranchId = orderTempMapList[i].descBranchId;
            descBranchIdHidden = orderTempMapList[i].descBranchId;
            }else if(elactPlatId=='10003'){//京东
            var addressDel=orderTempMapList[i].addressDel;
            descId=orderTempMapList[i].descId;
            for(var j=0;j<areaSelect.length;j++){
                var areaName = areaSelect[j].areaName;
                var indexDesc = addressDel.indexOf(areaName);
                if(indexDesc!=-1){
                branchName=areaName;
                break;
                }
            }
            descBranchId = orderTempMapList[i].descBranchId;
            descBranchIdHidden = orderTempMapList[i].descBranchId;
            descIdHidden = orderTempMapList[i].descId;
            }else if(elactPlatId=='10005'){//天猫
            descId = "";
            branchName = orderTempMapList[i].descBranchId;
            descBranchId = orderTempMapList[i].descBranchId;
            descBranchIdHidden = orderTempMapList[i].descBranchId;
            }
            var table11Str=" <tr> "+
            "  <td><input type='hidden' name='elactPlatIds' value='"+elactPlatId+"'/>"+elactPlatName+"</td> "+
            "  <td><input type='hidden' name='descAreaIds' value='"+descIdHidden+"'/>"+descId+"</td> "+
            "  <td><input type='hidden' name='dcNames' value='"+descBranchIdHidden+"'/> "+descBranchId+"</td> ";
            table11Str+= "  <td>"+elactPlatName+"</td>";
            //3生成目的地下拉框
            var selectedAreaId="";
            var selectArea="<select id='area_"+i+"' name='areaIds' οnchange='appendBranch("+elactPlatId+","+i+")'><option value=''>请选择</option>";
                for(var j=0;j<areaSelect.length;j++){
                var areaName = areaSelect[j].areaName;
                var areaId = areaSelect[j].areaId;
                if(branchName.indexOf(areaName)!=-1){
                selectedAreaId=areaId;
                selectArea+="<option selected='selected' value="+areaId+">"+areaName+"</option>";
                }else{
                selectArea+="<option value="+areaId+">"+areaName+"</option>";
                }
                }
            selectArea+="</select>";
            table11Str+= "  <td>"+selectArea+"</td>";
             
               //4生成目的地第三级分仓下拉框
            var dataAreaDcBranch=new Array();
            $.ajax({  
               url:ctx+'/orderImport/selectBranchsByPlatIdAndAreaId',
               data:{areaId:selectedAreaId,platId:elactPlatId},
               dataType:'json',
               async: false,
               success:function(dataAreaBranch) {
               dataAreaDcBranch = dataAreaBranch.dcBranch;
               },
                   error:function(result) { 
                       } 
            });
            var selectAreaBranch="<select id='areaBranch_"+i+"' name='areaBranchs' ><option value=''>请选择</option>";
                for(var j=0;j<dataAreaDcBranch.length;j++){
                var branchName = dataAreaDcBranch[j].branchName;
                var branchId = dataAreaDcBranch[j].branchId;           
                selectAreaBranch+="<option value="+branchId+">"+branchName+"</option>";
                }
                selectAreaBranch+="</select>";
             
            table11Str+= "  <td id='td_branch_"+i+"'>"+selectAreaBranch+"</td>"+
              "  </tr>";
            table11.append(table11Str);
            }
            $('.daoru').show();
            }else{
            alert("解析失败!");
            }
           },
           error:function(result) { 
            MaskUtil.unmask();  
               alert("解析失败!");
           } 
       };    
       $("#importOrderFrom").ajaxSubmit(options);
}else{
alert("请选择订单文件!");
return;
}

  }



---------java springMvc后台接受--------


/**
     * 解析多文件excel
     * @param merchantName
     * @param orderSource
     * @param orderImportFileList
     * @param fileIndexList
     * @return
     */
    @RequestMapping(value = "/parseDuoFileExcel",method=RequestMethod.POST)
    @ResponseBody
    public Object parseDuoFileExcel(
    @RequestParam("merchantName") String merchantName,
    @RequestParam("orderSource") String orderSource,
    @RequestParam("orderImportFile[]") List<CommonsMultipartFile> orderImportFileList) {
    Date opTime = new Date();
    String orderVersion = DateUtils.formatDate(opTime, DateUtils.COMPACTDATETIME_FORMAT);
    Map<String,Object> map=new HashMap<String, Object>();
   
//CommonsMultipartFile orderImportFile = orderImportFileList.get(j);
    //String suffix = orderImportFile.getFileItem().getName();
       try {
        if(orderSource.equals(Constant.ORDER_SOURCE_TM)){//天猫
        map = orderImportTmServiceImpl.parseDuoExcel_2007(merchantName,orderVersion,orderSource,
        orderImportFileList,null);
        }else{
        return "{result:0,msg:'解析出现异常!'}";
        }
    }catch (Exception e) {
    e.printStackTrace();
    return "{result:0,msg:'解析出现异常!'}";
    }
   return map;
    }
    



/**
     * 解析普通excel
     * @param merchantName
     * @param orderSource
     * @param orderImportFile
     * @return
     */
    @RequestMapping(value = "/parseExcel",method=RequestMethod.POST)
    @ResponseBody
    public Object parseExcel(@RequestParam("merchantName") String merchantName,
    @RequestParam("orderSource") String orderSource,
    @RequestParam("orderImportFile[]") List<CommonsMultipartFile> orderImportFileList) {
    Map<String,Object> map = null;
    for (int i = 0; i < orderImportFileList.size(); i++) {
    CommonsMultipartFile orderImportFile = orderImportFileList.get(i);
    String suffix = orderImportFile.getFileItem().getName();
       try {
        //1-2003excel
        if(suffix.endsWith(Constant.EXCEL_SUFFIX_2003)){
        if(orderSource.equals(Constant.ORDER_SOURCE_YHD)){//1号店
        map = orderImportYhdServiceImpl.parseExcel_2003(merchantName,orderSource,orderImportFile);
        }else if(orderSource.equals(Constant.ORDER_SOURCE_JD)){//京东
        map = orderImportJdServiceImpl.parseExcel_2003(merchantName,orderSource,orderImportFile);
        }else if(orderSource.equals(Constant.ORDER_SOURCE_TM)){//天猫
        map = orderImportTmServiceImpl.parseExcel_2003(merchantName,orderSource,orderImportFile);
        }
        }
        //2-2007以上excel
        else if(suffix.endsWith(Constant.EXCEL_SUFFIX_2007)){
        if(orderSource.equals(Constant.ORDER_SOURCE_YHD)){//1号店
        map = orderImportYhdServiceImpl.parseExcel_2007(merchantName,orderSource,orderImportFile);
        }else if(orderSource.equals(Constant.ORDER_SOURCE_JD)){//京东
        map = orderImportJdServiceImpl.parseExcel_2007(merchantName,orderSource,orderImportFile);
        }else if(orderSource.equals(Constant.ORDER_SOURCE_TM)){//天猫
        map = orderImportTmServiceImpl.parseExcel_2007(merchantName,orderSource,orderImportFile);
        }
        }else{
        return "{result:0,msg:'解析出现异常!'}";
        }
    }catch (Exception e) {
    e.printStackTrace();
    return "{result:0,msg:'解析出现异常!'}";
    }
}
   
   return map;
    }
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值