文件上传页面

<!doctype html>

<html>
<head>
<meta charset="utf-8">
<title>Excel发布_钢银商家中心</title>
<link href="http://static.banksteel.com/2014/images/fav.ico" rel="shortcut icon">
<link href="http://static.banksteel.com/member/v3/css/member.css" rel="stylesheet" type="text/css" >
<link href="/skin/css/dataTables.bootstrap.css" rel="stylesheet" />
<link href="/skin/css/pageStyle.css" rel="stylesheet" />
<link rel="shortcut icon" href="http://static.banksteel.com/member/v3/images/fav.ico" />
<link href="http://static.banksteel.com/member/v3/css/resource.css" rel="stylesheet" type="text/css">
</head>
<body class="pop pop-excel1">
<div class="popup-bg">
  <div class="popup-box">
        <div class="res-onsell-ex1 cl">
            <span class="fl">选择文件:</span>
            <input class="inp1 fl" id="fileText" value="">
            <span class="upload-excel fl">
                <input type="file" value="" class="find-excel" name="uploadFile" id="uploadFile" οnchange="showFileName();">
                <a href="javascript:void(0);">浏 览 </a>
            </span>
            <span class="excel-check fl">
                    <input type="checkbox"  class="inp2" id="cover">覆盖
            </span>
            <span class="excel-tip fl">[<a href="/resourcefile/gy/mgy1.xls">下载Excel模板</a>]。</span>
            <div class="excel-error-tip" style="display:none" id="excelTipInfo">文件格式不对,请选择xls格式!</div>
        </div>
        <div class="form-excel mtb10">
          <input type="reset" class="formbtn btn-orange btn-middle" value="确定" id="excel1-dialog">
          <input type="reset" class="formbtn btn-gray btn-middle" value="取消" id="close-dialog">
        </div>
   </div>
</div>
<script type="text/javascript" src="http://static.banksteel.com/member/v3/js/jquery-1.10.2.js"></script>
<script type="text/javascript" src="http://static.banksteel.com/member/v3/js/global.js"></script>
<script type="text/javascript" src="http://static.banksteel.com/member/v3/js/select2.js"></script>
<script type="text/javascript" src="http://static.banksteel.com/member/v3/js/base.js"></script>
<script type="text/javascript" src="/skin/js/resource/json2.js"></script>
<script type="text/javascript" src="/skin/js/resource/MyNumber.js"></script>
<script type="text/javascript" src="/skin/js/ajaxfileupload.js"></script>
<script type="text/javascript">
$(function(){
    
    var dialog = top.dialog.get(window);
    $('#excel1-dialog').on('click', function () {
            var fileName = $("#uploadFile").val();
             var randomNum = Math.random();
            if(fileName != "" && (fileName.endsWith(".xls") || fileName.endsWith(".xlsx")))
            {
                 //关闭父窗口
                  parent.pubexc.close();
                 var  cover = 0 ;
                 if($("#cover").is(':checked'))
                 {
                        cover = 1;
                 }
                        jQuery.ajaxFileUpload({
                     url: '/resource/inventory/excel_publish_upload.jsp?cover='+cover+'&randomNum='+randomNum,
                    type: 'post',
                    secureuri: false,                 //一般设置为false
                    fileElementId: 'uploadFile',     // 上传文件的id、name属性名
                    dataType: 'json',                 //返回值类型,一般设置为json、application/json
                    success: function(msg){
                    },
                    error: function(msg){
                        window.location.href = "/resource/inventory/excel_publish_result.jsp?randomNum="+randomNum;
                    }

});

//弹出进度条窗口

 top.dialog({
                        url: '/resource/inventory/excel_publish_progress.jsp?randomNum='+randomNum,
                        title: ' ',
                        fixed:true,
                        width: 362,
                        height:120

                })
                .showModal();
                return false;
           }
           else
           {
              $("#excelTipInfo").css("display","");
           }
    });
    $("#close-dialog").click(function(){
          parent.pubexc.close().remove();
    })
    
})

//点击上传展示文件名
function showFileName() {
    var uploadFile = $("#uploadFile").val();
    if (uploadFile != null && uploadFile != '' && (uploadFile.endsWith(".xls") || uploadFile.endsWith(".xlsx")))
    {
        $("#excelTipInfo").css("display","none");
    }
    else
    {
        $("#excelTipInfo").css("display","");
    }
    $("#fileText").val(uploadFile);
}
</script>
</body>

</html>

后台代码:

@Override
    public Map<String, Object> publishShopResourceByExcel(byte[] content, Boolean isCover, String randomNum, UserContext context)
    {
        long supplierId = 0;

Supplier supplier = null;

if (context.getMemberId() != 0)
        {
            supplier = supplierService.getSupplierByMemberId(context.getMemberId());
        }

if (ObjectUtils.notNull(supplier))
        {
            supplierId = supplier.getId();
        }

if (isCover)
        {
            List<SteelResource> steelResources = steelResourceService.deleteBySupplierId(supplierId);

if (ObjectUtils.notEmpty(steelResources))
            {
                for (SteelResource steelResource : steelResources)
                {
                    if (SteelResource.STATUS_SELL == steelResource.getStatus()
                            && (steelResource.getOnboardItems() > 0 || steelResource.getOnboardQty() > 0))
                    {
                        resourcePriceSummaryThread.collect(steelResource.getSummaryCode());
                    }
                }
            }
            try
            {
                mqService.append(DocumentUtil.STEELRESOURCE_PUBLISH_QUEUE, supplierId + "|d");
            }
            catch (MQException e)
            {
                e.printStackTrace();
            }
        }

Map<String, Object> returnMap = new HashMap<String, Object>();

// 不能正确解析的资源
        List<ResourceDTO> wrongResourcesList = new ArrayList<ResourceDTO>();

// 可以正确解析的资源列表
        List<ResourceDTO> rightResourcesList = new ArrayList<ResourceDTO>();
        // 如果上传的Excel中有捆包号相同的资源,则只保留一条
        Map<String, ResourceDTO> noSamePackageNoMap = new HashMap<String, ResourceDTO>();

 // 当前解析的进度
        cacheService.set("precent" + randomNum, "0");

// 对上传的资源进行解析,处理
        List<ResourceInventoryParseDTO> excelResourcesList = null;

try
        {
            // 当前解析的进度
            cacheService.set("precent" + randomNum, "10");
            // excel传入解析后的资源
            excelResourcesList = importShopResource(content, context.getMemberId());
            // 当前解析的进度
            cacheService.set("precent" + randomNum, "20");

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

// 正确解析了的资源条数
        int rightResourcesSize = 0;
        // 不能正确解析的资源条数
        int wrongResourcesSize = 0;
        // 捆包号重复的资源条数
        int samePackgeNoResourcesSize = 0;

if (excelResourcesList != null)
        {
            int count = 0;
            int percent = 20;
            for (ResourceInventoryParseDTO resource : excelResourcesList)
            {
                count++;
                // 解析错误标志
                int[] wrongFlag = new int[9];
                // 解析错误的原因
                String wrongReason = "";

ResourceDTO resourceDTO = new ResourceDTO();

// 获取上传资源的品名、材质、规格、品牌产地、仓库
                String breedAlias = resource.getCategoryAlias();
                String materialAlias = resource.getMaterialAlias();
                String specAlias = resource.getSpecAlias();
                String brandAlias = resource.getFactoryAlias();
                String warehouseAlias = resource.getWarehouseAlias();

// 解析品名
                MarketBreed breed = catalogService.getMarketBreedByKey(breedAlias.replace(" ", ""));

if (StringUtils.isTrimEmpty(breedAlias))
                {
                    // 缺失品名的情况直接跳过
                    wrongReason += "品名缺失  ";
                    continue;
                }
                else if (ObjectUtils.isNull(breed))
                {
                    breed = catalogService.getMarketBreedByBreedAlias(breedAlias);

if (ObjectUtils.isNull(breed))
                    {
                        wrongReason += "品名非标  ";
                        wrongFlag[0] = 1;
                        resourceDTO.setBreed(breedAlias);
                    }
                    else
                    {
                        resourceDTO.setBreed(breed.getName());
                        resourceDTO.setBreedId(breed.getId());
                    }

}
                else
                {
                    resourceDTO.setBreed(breed.getName());
                    resourceDTO.setBreedId(breed.getId());
                }

// 解析规格
                if (StringUtils.isTrimEmpty(specAlias))
                {
                    wrongReason += "规格缺失  ";
                    wrongFlag[1] = 1;
                }
                else if (specAlias.length() > 60)
                {
                    wrongReason += "规格过长  ";
                    wrongFlag[1] = 1;
                }
                else
                {
                    resourceDTO.setSpec(specAlias);
                }

// 解析牌号material
                if (StringUtils.isTrimEmpty(materialAlias))
                {
                    wrongReason += "牌号为空  ";
                    wrongFlag[2] = 1;
                }
                else if (materialAlias.length() > 60)
                {
                    wrongReason += "牌号长度过长  ";
                    wrongFlag[2] = 1;
                }
                else
                {
                    resourceDTO.setMaterial(materialAlias);
                }

// 解析产地/品牌brand
                if (StringUtils.isTrimEmpty(brandAlias))
                {
                    wrongReason += "产地/品牌为空  ";
                    wrongFlag[3] = 1;
                }
                else if (brandAlias.length() > 60)
                {
                    wrongReason += "产地/品牌过长  ";
                    wrongFlag[3] = 1;
                }
                else
                {
                    resourceDTO.setBrand(brandAlias);
                }

// 解析仓库 同时解析交货地
                Warehouse warehouseEntity = catalogService.getWarehouseByKey(warehouseAlias.replace(" ", ""));

if (StringUtils.isTrimEmpty(warehouseAlias))
                {
                    wrongReason += "仓库为空  ";
                    wrongFlag[4] = 1;
                }
                else if (warehouseAlias.length() > 20)
                {
                    wrongReason += "仓库名称过长  ";
                    wrongFlag[4] = 1;
                }
                else
                {
                    if (ObjectUtils.isNull(warehouseEntity))
                    {
                        String warehouse = catalogService.getAliasWarehouse(warehouseAlias);

if (StringUtils.isTrimEmpty(warehouse))
                        {
                            wrongReason += "仓库名称非标  ";
                            wrongFlag[4] = 1;
                            resourceDTO.setWarehouse(warehouseAlias);
                            resourceDTO.setCity(resource.getAreaName());
                        }
                        else
                        {
                            resourceDTO.setWarehouse(warehouse);
                            // 获取仓库对应的城市
                            City city = catalogService.getCityByWarehouse(warehouse);

if (ObjectUtils.notNull(city))
                            {
                                resourceDTO.setCity(city.getName());
                                resourceDTO.setCityId(city.getId());
                            }
                        }
                    }
                    else
                    {
                        resourceDTO.setWarehouse(warehouseEntity.getName());
                        // 获取仓库对应的城市
                        City city = catalogService.getCityByWarehouse(warehouseEntity.getName());

if (ObjectUtils.notNull(city))
                        {
                            resourceDTO.setCity(city.getName());
                            resourceDTO.setCityId(city.getId());
                        }
                    }
                }

// 解析计重方式 0-理重 1-过磅2-抄码
                String weightWay = resource.getWeightWay();

if (!StringUtils.isTrimEmpty(weightWay) && "过磅".equals(weightWay.trim()))
                {
                    resourceDTO.setWeightWay(1);
                }
                else if (!StringUtils.isTrimEmpty(weightWay) && "抄码".equals(weightWay.trim()))
                {
                    resourceDTO.setWeightWay(2);
                }
                else
                {
                    resourceDTO.setWeightWay(0);
                }

// 解析件重件重不大于100
                Double averageQty = resource.getAverageQty();

if (averageQty == null)
                {
                    wrongReason += "件重为空  ";
                    wrongFlag[5] = 1;
                }
                else if (averageQty < 0 || averageQty >= 100)
                {
                    wrongReason += "件重不能小于0且不能大于100  ";
                    wrongFlag[5] = 1;
                }
                else
                {
                    resourceDTO.setAverageQty(averageQty);
                }

// 解析件数
                Integer inItems = resource.getInItems();

if (inItems == null)
                {
                    wrongReason += "件数为空  ";
                    wrongFlag[6] = 1;
                }
                else if (inItems <= 0)
                {
                    wrongReason += "件数必须要>=0  ";
                    wrongFlag[6] = 1;
                }
                else
                {
                    resourceDTO.setInItems(inItems);
                    resourceDTO.setInQty(NumberTools.multi(inItems, averageQty));
                }

// 解析发布价格
                Double onboardPrice = resource.getBasePrice();

if (onboardPrice == null)
                {
                    wrongReason += "发布价格为空  ";
                    wrongFlag[7] = 1;
                }
                else
                {
                    resourceDTO.setOnboardPrice(onboardPrice);
                }

// 解析备注
                String note = resource.getRemark();

if (StringUtils.notTrimEmpty(note))
                {
                    if (note.length() > 200)
                    {
                        wrongReason += "备注长度过长  ";
                    }
                    else
                    {
                        resourceDTO.setNote(note);
                    }
                }

// 拿到捆包号
                String serialNo = resource.getPackageNo();

try
                {
                    BigDecimal bd = new BigDecimal(serialNo);
                    serialNo = bd.toPlainString();
                }
                catch (Exception e)
                {
                    // 转换出问题说明是非纯数字
                    serialNo = resource.getPackageNo();
                }

if (StringUtils.isTrimEmpty(serialNo))
                {
                    // 允许捆包号为空,捆包号为空,如果品名、仓库并非非标,则解析正确,保存
                    resourceDTO.setSerialNo("");

if (StringUtils.isTrimEmpty(wrongReason))
                    {
                        rightResourcesList.add(resourceDTO);
                        rightResourcesSize++;
                    }
                    else
                    {
                        resourceDTO.setWrongReson(wrongReason);
                        resourceDTO.setWrongFlag(wrongFlag);
                        wrongResourcesList.add(resourceDTO);
                        wrongResourcesSize++;
                    }
                }
                else
                {
                    // 解决Excel中资源捆包号冲突的问题
                    if (noSamePackageNoMap.get(serialNo) != null)
                    {
                        continue;
                    }

List<SteelResource> steelResources = steelResourceService
                            .querySteelResourceByMemberIdAndSerialNo(context.getMemberId(), serialNo);

if (ObjectUtils.notNull(steelResources) && !steelResources.isEmpty())
                    {
                        wrongFlag[8] = 1;
                        wrongReason += "捆包号重复  ";

resourceDTO.setWrongReson(wrongReason);
                        resourceDTO.setWrongFlag(wrongFlag);

samePackgeNoResourcesSize++;
                        resourceDTO.setSerialNo(serialNo);
                    }
                    else
                    {
                        resourceDTO.setWrongReson(wrongReason);
                        resourceDTO.setWrongFlag(wrongFlag);

resourceDTO.setSerialNo(serialNo);
                    }

noSamePackageNoMap.put(resourceDTO.getSerialNo(), resourceDTO);
                }

//每循环一次,统计循环次数,计算进度
                percent = (int) (20 + NumberTools.multi(NumberTools.div(count, excelResourcesList.size()), 60));
                cacheService.set("precent" + randomNum, percent + "");

            }

// 如果上传的资源有捆包号重复的,则前边一条被后边一条覆盖
            for (Entry<String, ResourceDTO> entry : noSamePackageNoMap.entrySet())
            {
                if (StringUtils.isTrimEmpty(entry.getValue().getWrongReson()))
                {
                    rightResourcesList.add(entry.getValue());
                    rightResourcesSize++;
                }
                else
                {
                    wrongResourcesList.add(entry.getValue());
                    wrongResourcesSize++;
                }

}

// 解析正确的资源将直接保存
            if (!rightResourcesList.isEmpty())
            {
                // 获取供应商组ID
                List<SupplierGroup> supplierGroupList = supplierGroupService.querySupplierGroupBySupplierId(supplierId);

if (ObjectUtils.notNull(supplierGroupList) && !supplierGroupList.isEmpty())
                {
                    marketResourcePublish(rightResourcesList, supplierGroupList.get(0), context, supplierId);
                }
            }

returnMap.put("wrongResourcesList", wrongResourcesList);
            returnMap.put("rightResourcesSize", rightResourcesSize);
            returnMap.put("wrongResourcesSize", wrongResourcesSize);
            returnMap.put("samePackgeNoResourcesSize", samePackgeNoResourcesSize);

 cacheService.set("wrongResourceDataMap" + randomNum, JSON.toJSONString(returnMap), 120);
            // 当前解析的进度
            cacheService.set("precent" + randomNum, "100", 120);

        }

return returnMap;
    }

/**
     *
     * @description: 跳转到显示进度条的页面
     * @param request
     * @return
     * @author: matao
     * @createTime:2015年6月25日 下午8:09:13
     */
    @RequestMapping(value = "/excel_publish_progress")
    public ModelAndView excelPublishProgress(@RequestParam(required = true) String randomNum)
    {
        return new ModelAndView("/resource/inventory/excel_publish_progress", "randomNum", randomNum);
    }

进度条窗口页面:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Excel发布_钢银商家中心</title>
<link href="http://static.banksteel.com/2014/images/fav.ico" rel="shortcut icon">
<link href="http://static.banksteel.com/member/v3/css/resource.css" rel="stylesheet" type="text/css">
</head>

<body class="pop pop-excel1">
<div class="popup-bg">
  <div class="popup-box">
            <ul class="pub-excel-content">
                   <li class="publish-tip1">系统正在读取资源数据...<span id="counter">0%</span></li>
                   <li class="publish-speed"><div class="speed1"><span></span></div></li>
            </ul>
               <input type="hidden"  id="randomNum" value="$!{randomNum}"/>
   </div>
</div>
<script src="http://static.banksteel.com/member/v3/js/jquery-1.10.2.js"></script>
<script src="http://static.banksteel.com/member/v3/js/base.js"></script>
<script src="http://static.banksteel.com/member/v3/js/global.js"></script>
<script type="text/javascript">
        var timerProgress = "";
        $(function(){
            timerProgress = setInterval(showProgress,100);  
        })
        function showProgress(){
            var ajaxTimeout = jQuery.ajax({
            url:"/resource/inventory/show_progress.jsp",
            timeout : 1000,
            type:"get",
            async:false,
            data: {"randomNum":$("#randomNum").val()},
            dataType:"text",
            success: function(num)
            {
                if(num == null)
                {
                     ajaxTimeout.abort();
                     $('#counter').html(0+'%');
                     $(".speed1 span").css("width","0%");
                     clearInterval(timerProgress);
                }
                else
                {
                    $(".speed1 span").css("width",num+"%");
                    
                    if(num>0 && num<20)
                    {
                        $('.publish-tip1').html("系统正在读取资源数据...<span id='counter'>"+num+"%</span>");
                    }
                    if(num>20 && num<80)
                    {
                        $('.publish-tip1').html("系统正在解析资源数据...<span id='counter'>"+num+"%</span>");
                    }
                    if(num ==80)
                    {
                        $('.publish-tip1').html("解析完成,正在保存...<span id='counter'>"+num+"%</span>");
                    }
                    if(num == 100)
                    {
                        clearInterval(timerProgress);
                        window.parent.location.href = "/resource/inventory/excel_publish_result.jsp?randomNum="+$("#randomNum").val();
                    }
                    
                }
                
            }
            });
      }
</script>
</body>
</html>

//展示错误的数据

@Override
    public Map<String, Object> getPublishShopResourceByExcelProcess(String randomNum)
    {
        Map<String, Object> returnMap = new HashMap<String, Object>();
        String precent = cacheService.get("precent" + randomNum);
        returnMap.put("precent", precent);

if (NumberUtils.parseInt(precent) == 100)
        {
            String wrongResourceData = cacheService.get("wrongResourceDataMap" + randomNum);

if (StringUtils.notTrimEmpty(wrongResourceData))
            {
                JSONObject jsonObject = JSONObject.parseObject(wrongResourceData);

returnMap.put("wrongResourcesList", jsonObject.get("wrongResourcesList"));
                returnMap.put("wrongResourcesSize", jsonObject.get("wrongResourcesSize"));
                returnMap.put("rightResourcesSize", jsonObject.get("rightResourcesSize"));
                returnMap.put("samePackgeNoResourcesSize", jsonObject.get("samePackgeNoResourcesSize"));
            }
        }
        return returnMap;
    }

错误数据展示页面

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Excel发布_钢银商家中心</title>
<link href="http://static.banksteel.com/2014/images/fav.ico" rel="shortcut icon">
<link href="http://static.banksteel.com/member/v3/css/resource.css" rel="stylesheet" type="text/css">
</head>
<body>
#parse("/inc/topbar.vm")
#parse("/inc/header_bd.vm")
<div class="warp">
#parse("/inc/side_seller.vm")
        <div class="main fr">
            <div class="cl">
                <h2 class="fl" data-rel="resource-index">
                    <i></i>资源列表
                </h2>
                
            </div>
            <div class="popup-bg">
              <div class="popup-box">
                <form class="" role="form" id="shopResourceForm" action="/resource/inventory/cover_packageNo.jsp" method="post" >
                        <ul class="pub-excel-content">
                               <li class="publish-tip"><img src="http://static.banksteel.com/member/v3/images/res_right.png">资源解析完成,成功<span class="sp1">$!{returnMap.rightResourcesSize}</span>条,非标准<span class="sp2">$!{returnMap.wrongResourcesSize}</span>条,其中捆包号重复<span class="sp2">#if($!{returnMap.samePackgeNoResourcesSize}) $!{returnMap.samePackgeNoResourcesSize} #else 0 #end</span>条</li>
                               #if($!{returnMap.wrongResourcesList} && $returnMap.wrongResourcesList.size() != 0)
                           <li class="excel-tit"><b>失败资源明细</b></li>
                               <li>
                                       <table width="100%" cellspacing="0" cellpadding="0" border="0" class="table" id="simpledatatable">
                                <tbody>
                                    <tr class="bg">
                                        <th width="8%"> 品名</th>
                                        <th width="8%"> 规格</th>
                                        <th width="8%"> 材质</th>
                                        <th width="8%"> 品牌</th>
                                        <th width="10%">交货地 仓库</th>
                                        <th width="8%"> 捆包号 </th>
                                        <th width="8%"> 价格 </th>
                                        <th width="7%"> 数量 </th>
                                        <th width="7%"> 重量 </th>
                                        <th width="6%"> 备注 </th>
                                        <th class="last" width="14%"> 失败原因 </th>
                                    </tr>
                                        
                                            #foreach($shopResource in $!{returnMap.wrongResourcesList})
                                                <tr>
                                                    <td #if($!shopResource.wrongFlag[0] == 1) class="danger" #end id="category_$!velocityCount">$!{shopResource.breed} </td>
                                                    <td #if($!shopResource.wrongFlag[1] == 1) class="danger" #end id="spec_$!velocityCount">$!{shopResource.spec} </td>
                                                    <td #if($!shopResource.wrongFlag[2] == 1) class="danger" #end id="material_$!velocityCount">$!{shopResource.material} </td>
                                                    <td #if($!shopResource.wrongFlag[3] == 1) class="danger" #end id="factory_$!velocityCount">$!{shopResource.brand} </td>
                                                    <td #if($!shopResource.wrongFlag[4] == 1) class="danger" #end id="warehouse_$!velocityCount">$!{shopResource.city} $!{shopResource.warehouse}</td>
                                                    <td #if($!shopResource.wrongFlag[8] == 1) class="danger" #end>$!{shopResource.serialNo}</td>
                                                    <td #if($!shopResource.wrongFlag[7] == 1) class="danger" #end>$!{shopResource.onboardPrice}</td>
                                                    <td #if($!shopResource.wrongFlag[6] == 1) class="danger" #end>$!{shopResource.inItems}</td>
                                                    <td #if($!shopResource.wrongFlag[5] == 1) class="danger" #end>$!{shopResource.inQty}</td>
                                                    <td>$!{shopResource.note}</td>
                                                    <td class="last">$!{shopResource.wrongReson}</td>
                                                    
                                                    <input type="hidden" name="breedName" value="$!{shopResource.breed}">
                                                    <input type="hidden" name="breedId" value="$!{shopResource.breedId}">
                                                    <input type="hidden" name="specName" value="$!{shopResource.spec}">
                                                    <input type="hidden" name="materialName" value="$!{shopResource.material}">
                                                    <input type="hidden" name="cityName" value="$!{shopResource.city}">
                                                    <input type="hidden" name="cityId" value="$!{shopResource.cityId}">
                                                    <input type="hidden" name="warehouseName" value="$!{shopResource.warehouse}">
                                                    <input type="hidden" name="brandName" value="$!{shopResource.brand}">
                                                        
                                                    <input type="hidden" name="weightWay" value="$!{shopResource.weightWay}">
                                                    <input type="hidden" name="serialNo" value="$!{shopResource.serialNo}">
                                                    <input type="hidden" name="basePrice" value="$!{shopResource.onboardPrice}">
                                                    <input type="hidden" name="onboardPrice" value="$!{shopResource.onboardPrice}">
                                                    <input type="hidden" name="averageQty" value="$!{shopResource.averageQty}">
                                                    <input type="hidden" name="inItems" value="$!{shopResource.inItems}">
                                                    <input type="hidden" name="inQty" value="$!{shopResource.inQty}">
                                                    <input type="hidden" name="note" value="$!{shopResource.note}">
                                                    <input type="hidden" name="wrongReason" value="$!{shopResource.wrongReson}">
                                                    <input type="hidden" name="unstandardFlag" #if($!shopResource.wrongFlag[0] == 1 || $!shopResource.wrongFlag[1] == 1 || $!shopResource.wrongFlag[2] == 1 ||$!shopResource.wrongFlag[3] == 1||$!shopResource.wrongFlag[4] == 1||$!shopResource.wrongFlag[5] == 1||$!shopResource.wrongFlag[6] == 1||$!shopResource.wrongFlag[7] == 1) value="1" #else value="0" #end>
                                                    <input type="hidden" name="isCover" #if($!shopResource.wrongFlag[8] == 1) value="1" #else value="0" #end >
                                                </tr>
                                            #end
                                </tbody>
                                </table>
                               </li>
                               #end
                               <li class="pub-excel-btn">
                            #if($!{returnMap.wrongResourcesList} && $returnMap.wrongResourcesList.size() != 0)
                             <a οnclick="coverShopResource();"  class="pub-excel-btn2" href="javascript:void(0)">覆盖相同捆包号资源</a>&nbsp;&nbsp;&nbsp;&nbsp;
                            #end
                            <a  class="pub-excel-btn1" href="/resource/inventory/list.jsp">返回</a>
                           </li>
                        </ul>
                  </form>
               </div>
            </div>
        </div>
</div>
<script src="http://static.banksteel.com/member/v3/js/jquery-1.10.2.js"></script>
<script src="http://static.banksteel.com/member/v3/js/base.js"></script>
<script src="http://static.banksteel.com/member/v3/js/global.js"></script>
<script type="text/javascript">
$(function(){
//列表hover以及隔行换色
    $(".table tr").hover(function(){
        $(this).addClass("over");
    },function(){$(this).removeClass("over");});
    $(".table tr:even").addClass("alt");
})

//覆盖相同捆包号的资源
function coverShopResource()
{
    var packageNoCount = 0;
    $("#simpledatatable tr").each(function(i){
        var firstTdObj = $(this).find("td:eq(0)");
        var fifthTdObj = $(this).find("td:eq(4)")
        var sixthTdObj = $(this).find("td:eq(5)");
        var firAttr=firstTdObj.attr("class");
        var fifAttr=fifthTdObj.attr("class");
        if(sixthTdObj.attr("class") == "danger" && typeof(firAttr) == "undefined" && typeof(fifAttr) == "undefined")
        {
            packageNoCount++;
        }
    });
    if(packageNoCount > 0)
    {
        
        if(confirm("表格中捆包号红色的标准资源会覆盖保存!确认覆盖保存吗"))
        {
            $("#shopResourceForm").submit();
        }
    }
    else
    {
        $("#shopResourceForm").submit();
    }
    
}
</script>
</body>
</html>

Java进度条(excel文件解析)的实现相关推荐

  1. java中 Excel文件解析及超大Excel文件读写

    本文主要对Excel中数据的解析和生成进行总结 前言 在应用程序的开发过程中,我们经常要用到Excel进行数据的导入或导出.所以,在通过Java语言实现此类需求时,通常会对Excel文件进行解析或生成 ...

  2. java实现Excel文件解析---apache POI以及把汉字转化为拼音

    java实现Excel文件解析----apache  POI以及把汉字转化为拼音 1.POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供给Java程序对Microso ...

  3. 浅谈Excel文件解析

    日常生活中,我们经常会遇到一些Excel文件,一般我们只会去用,不会去想他到底是怎样进行数据导入和导出的,今天,我们看看在java应用开发过程中,Excel文件的解析过程. 1. 使用-XSSF解析E ...

  4. Java读取批量Excel文件

    Java读取批量Excel文件,并转化为List<Map<String,String>> 1.首先基础知识: 一 :简介 开发中经常会设计到excel的处理,如导出Excel, ...

  5. Excel文件解析性能对比(POI,easyexcel,xlsx-streamer)

    问题: 在解析excel内容时,由于用户误操作,偶尔会误录入大量空行,如果代码处置不当,进行文档内容解析时,就会占用大量时间和内存,甚至引起服务器内存消耗殆尽,导致服务无法访问,或者引起OOM. 解决 ...

  6. Java分页导出Excel文件

    Java分页导出Excel文件 1.开发微信小程序接入广告获取收益 技术: Springboot + mongodb + maven +Layui + thymeleaf 上一篇博客已经讲解了Java ...

  7. 关于使用Java后台导入excel文件,读取数据后,更新数据库,并返回数据给到前端的相关问题总结

    在之前的项目中,使用到了Java后台读取excel文件数据的功能点,本想着该功能点已经做过了,这一类的应该都大差不离,不过在刚结束的一个项目中,现实给我深深的上了一课,特此编写此片博客,以作记录,并给 ...

  8. EXCEL通过配置导入规则,实现任意格式EXCEL文件解析

    EXCEL文件导入到数据库,是一种常见的文件导入格式. 本文实现的EXCEL文件解析方法,优点是适合任意格式的EXCEL文件,缺点是每一张表单都需要配置对应的导入规则,在字段数量多时,配置导入规则就尴 ...

  9. java导出 elsx 文件,如何获取java导出的excel文件,发送请求导出excle文件

    如何获取java导出的excel文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 request.setCharacterEncoding("utf-8"); ...

  10. jxls使用excel公司_使用jXLS将Excel文件解析为JavaBeans

    jxls使用excel公司 这篇文章展示了如何使用jXLS将Excel文件解析为JavaBeans列表. 这是我编写的通用实用程序方法: /** * Parses an excel file into ...

最新文章

  1. jQuery学习- 内容选择器
  2. hdu1428 spfa+记忆化搜索
  3. 替换a链接的href和title
  4. Java IO: FileReader和FileWriter
  5. 算法之旅 | 快速排序法
  6. 腾达ac9虚拟服务器,腾达AC9官方定制固件1.0版-加广告屏蔽、迅雷等
  7. Oracle 11g ora 15018,OracleASM错误之--ORA-15031、ORA-15014
  8. 19-基础教育知识图谱赋能智慧教育
  9. 数字图像处理02:直方图均衡化imhist函数的python实现
  10. Dreamweaver 8 时间轴及创建时间轴动画(转)
  11. 旷视回顾全球十大AI治理事件,技术与伦理安全如何进行落地
  12. 梦想照进现实|CSDN 实体奖牌 第五期
  13. uniapp——uni-admin后台管理系统(使用uniCloud免费云服务器)
  14. 【渝粤教育】电大中专跨境电子商务理论与实务 (22)作业 题库
  15. glob.glob()
  16. Pedersen承诺
  17. 爬取了豆瓣11W+网页,获取了5W+有效书籍信息
  18. SnmpTrap测试与学习
  19. python课程网络多少钱一年_python学费多少?线上python课程一般多少钱?
  20. 考研数学:罗尔定理的推论

热门文章

  1. js 操作数组 push splice
  2. 笨方法学python在线_“笨办法”学Python(第3版)
  3. c语言链表正序输出,建立正序链表,该怎么处理
  4. 如何启动Intel VT-x
  5. 针对儿子买的将近一万的笔记本电脑
  6. 互联网之父Vint Cerf确诊肺炎,曾获图灵奖和总统自由勋章
  7. 微信退款服务器系统失败怎么办,微信退款多久到账?微信退款不成功怎么办?...
  8. Java模拟消息队列
  9. C/C++基础 hypot函数
  10. 2、股权融资 - 打造企业上市系列文章