------jsp 前台--------------------
<form id="importOrderFrom" name="importOrderFrom" method="post" enctype="multipart/form-data">
<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" onchange=" 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" onclick= "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' onchange='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;
}