成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

解析excel數(shù)據(jù)并做檢驗及保存到數(shù)據(jù)庫

luffyZh / 1663人閱讀

摘要:此例為初次參與企業(yè)項目做的,代碼粗糙勿見怪從導入核心企業(yè)信息到數(shù)據(jù)庫文件上傳路徑執(zhí)行上傳執(zhí)行讀操作讀出的數(shù)據(jù)導入從第行開始從第列開始第個數(shù)據(jù)庫寫入操作白名單信息必輸字段核心企業(yè)名稱項目公司名稱為非必輸校驗忽略序號核心企業(yè)名稱項目公司名稱數(shù)據(jù)

此例為初次參與企業(yè)項目做的,代碼粗糙勿見怪:

/**
     * 從EXCEL導入核心企業(yè)信息到數(shù)據(jù)庫
     * @param file
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "importWhitelistExcel")
    public ModelAndView readExcel(
            @RequestParam(value="excel",required=false) MultipartFile file
            ) {
        ModelAndView mv = this.getModelAndView();
        PageData pd = this.getPageData();
        
        Whitelist whiteList = new Whitelist();
        if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;}
        if (null != file && !file.isEmpty()) {
            String filePath = PathUtil.getClasspath() + Const.FILE_PATH_FILE;                    //文件上傳路徑
            String dateStr = DateUtils.getSdfTimes();
            String fileName = "Whitelist_"+Jurisdiction.getUsername()+"_"+dateStr;            
            fileName =  FileUpload.fileUp(file, filePath, fileName);                              //執(zhí)行上傳
            
            //執(zhí)行讀EXCEL操作,讀出的數(shù)據(jù)導入List 2:從第3行開始;1:從第B列開始;0:第0個sheet
            String errmsg=null;
            //Matcher matcher = null;
            List readList=new ArrayList();
            List errorList=new ArrayList();
            
            
            try{
                List excelPdList = (List)ObjectExcelRead.readExcel(filePath, fileName, 2, 1, 0, "#.####");
            
                /*數(shù)據(jù)庫寫入操作======================================*/
                /*
                 * 白名單信息必輸字段:
                 * 核心企業(yè)名稱,項目公司名稱
                 * (為非必輸)
                 * 校驗:
                 */
                
                for(PageData ca:excelPdList){
                    // 忽略序號
                    PageData readPd = new PageData();
                    PageData tipPd = new PageData();
                    
                    String coreManuName = StringUtils.trimToEmpty(ca.getString("var1")); //核心企業(yè)名稱
                    String companyName = StringUtils.trimToEmpty(ca.getString("var2")); //項目公司名稱
                    String coreManuId = null;
                    //int index = excelPdList.indexOf(ca);
                    
                    // 數(shù)據(jù)校驗開始
                    
                    if(StringUtils.isEmpty(coreManuName))
                    {
                        tipPd.put("coreManuName", coreManuName);
                        tipPd.put("companyName", companyName);
                        if(StringUtils.isEmpty(companyName)){
                            
//                            tipPd.put("tip", "核心企業(yè)名稱和項目公司名稱不能為空");
                            
                            continue;
                        }else{
                            tipPd.put("tip", "核心企業(yè)名稱不能為空");
                        }
                        errorList.add(tipPd);
//                        errmsg="核心企業(yè)名稱不能為空";
//                        break;
                    }else if(StringUtils.isEmpty(companyName))
                    {
                        tipPd.put("coreManuName", coreManuName);
                        tipPd.put("companyName", companyName);
                        tipPd.put("tip", "項目公司名稱不能為空");
                        errorList.add(tipPd);
//                        errmsg="核心企業(yè)["+coreManuName+"]項目公司名稱不能為空";
//                        break;
                    }
//                    CoreCompany c = coreCompanyService.findByCompanyName(coreManuName);
//                    System.out.println(coreManuName);
//                    System.out.println(c);
                    if(!StringUtils.isEmpty(coreManuName)){
                        
                        CoreCompany coreManu = coreCompanyService.findByCompanyName(coreManuName);
                        
                        if(coreManu == null) {
                            tipPd.put("coreManuName", coreManuName);
                            tipPd.put("companyName", companyName);
                            tipPd.put("tip", "系統(tǒng)找不到核心企業(yè)名稱,核心企業(yè)名稱錯誤");
                            errorList.add(tipPd);
                        }else {
                            coreManuId = coreManu.getId();
                            whiteList = whitelistService.findByWhitelistName(coreManuId, companyName);
                            if(whiteList != null) {//判斷導入表中是否存在相同數(shù)據(jù)
                                tipPd.put("coreManuName", coreManuName);
                                tipPd.put("companyName", companyName);
                                tipPd.put("tip", "此記錄已錄入系統(tǒng)");
                                errorList.add(tipPd);
//                                errmsg = "核心企業(yè)["+coreManuName+"]和項目公司["+companyName+"在系統(tǒng)中已存在,請在導入表刪除后重新導入";
//                                break;
                            }
                        }
                        
                    }
                    
                    readPd.put("coreManuId", coreManuId);   //核心企業(yè)編號
                    readPd.put("companyName", companyName); //項目公司名稱
                    readPd.put("status", "EBST0101");
                    readPd.put("createUser", Jurisdiction.getUsername());
                    readPd.put("createTime", DateUtils.getTime());
                    readPd.put("lasUpdUser", Jurisdiction.getUsername());
                    readPd.put("lasUpdTime", DateUtils.getTime());
                    readPd.put("Id", this.get32UUID()); //ID
                    
                    if(!readList.isEmpty()) {
                        
                        for(PageData read : readList) {
                            
                            if(read.containsValue(companyName) && read.containsValue(coreManuId)){
                                //判斷導入表中是否有相同項目公司
                                tipPd.put("coreManuName", coreManuName);
                                tipPd.put("companyName", companyName);
                                tipPd.put("tip", "此記錄在導入表中重復");
                                errorList.add(tipPd);
//                                errmsg = "導入表里核心企業(yè)["+coreManuName+"]和項目公司["+companyName+"]在表中重復,請修改后導入";
//                                break;
                            }
                        }
                    }
                    readList.add(readPd);
                }
            }catch(Exception ex){
                logger.error("處理Excel文件出錯", ex);
                errmsg="處理Excel文件出錯,"+ex.getMessage();
            }
            
            
            if(errmsg==null && readList.size()==0){
                errmsg="未檢測到符合條件的數(shù)據(jù)";
            }
            
            if(errmsg!=null || errorList.size()>0){
                if(errmsg==null){
                    errmsg="數(shù)據(jù)導入失敗,請核對以下數(shù)據(jù)";
                }
                mv.addObject("errmsg", errmsg);
                mv.addObject("tipList", errorList);
                mv.setViewName("business/whitelist/whitelist_upload");
                return mv;
            }
            
//            if(errmsg!=null){
//                mv.addObject("errmsg", errmsg);
//                mv.setViewName("business/whitelist/whitelist_upload");
//                return mv;
//            }
            //批量保存到數(shù)據(jù)庫
            try {
                whitelistService.saveAll(readList);
            } catch (Exception e) {
//                e.printStackTrace();
                logger.error(e.toString());
                errmsg = "系統(tǒng)異常,保存數(shù)據(jù)失敗";
                mv.addObject("errmsg", errmsg);
                mv.setViewName("business/whitelist/whitelist_upload");
                return mv;
            }
            
        }
            
        mv.addObject("msg","success");
        mv.setViewName("save_result");
        return mv;
        
        
    }
    

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66719.html

相關(guān)文章

  • 數(shù)據(jù)游戲」:使用 LSTM 模型預(yù)測三天后單股收盤價

    摘要:本次比賽將使用模型來預(yù)測招商銀行三天后的收盤價,也就是利用月日前的數(shù)據(jù),來預(yù)測月日的收盤價。按照個交易日的模式,將數(shù)據(jù)變成一個,,的張量表。在實際使用時進行模型載入,分別查看預(yù)測結(jié)果。 作者:瘋貓子,「數(shù)據(jù)游戲」優(yōu)勝隊伍成員 摘要 LSTM模型是RNN的一種,其特點是在單一循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,構(gòu)建出了長短記憶門,也就是可以長時間發(fā)現(xiàn)和記憶長依賴關(guān)系。本次比賽將使用LSTM模型來預(yù)測招...

    dreamans 評論0 收藏0
  • 數(shù)據(jù)游戲」:使用 LSTM 模型預(yù)測三天后單股收盤價

    摘要:本次比賽將使用模型來預(yù)測招商銀行三天后的收盤價,也就是利用月日前的數(shù)據(jù),來預(yù)測月日的收盤價。按照個交易日的模式,將數(shù)據(jù)變成一個,,的張量表。在實際使用時進行模型載入,分別查看預(yù)測結(jié)果。 作者:瘋貓子,「數(shù)據(jù)游戲」優(yōu)勝隊伍成員 摘要 LSTM模型是RNN的一種,其特點是在單一循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,構(gòu)建出了長短記憶門,也就是可以長時間發(fā)現(xiàn)和記憶長依賴關(guān)系。本次比賽將使用LSTM模型來預(yù)測招...

    JeOam 評論0 收藏0
  • XCel 項目總結(jié) - Electron 與 Vue 的性能優(yōu)化

    摘要:而這里的單元格信息是唯一的,所以直接通過為一個空對象賦值即可。和相關(guān)的知識和技巧高亮的列單元格采用展示。在中,被選中的單元格會高亮相應(yīng)的行和列,以提醒用戶。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一個 Excel 數(shù)據(jù)清洗工具,其通過可視化的方式讓用戶輕松地對 Excel 數(shù)據(jù)進行篩選。 XCEL...

    XUI 評論0 收藏0
  • 第一篇(從django后臺解析excel數(shù)據(jù)批量導入數(shù)據(jù)庫)

    摘要:總結(jié)整個過程的難點在于獲取文件對象,從數(shù)據(jù)中取值然后在按取出,這樣我們就可以從后臺上傳文件,然后進行批量導入數(shù)據(jù)庫,其他數(shù)據(jù)格式只需要改和中的數(shù)據(jù)字段就可以 第一篇(從django后臺解析excel數(shù)據(jù)批量導入數(shù)據(jù)庫) 文章會在github中持續(xù)更新 作者: knthony github 聯(lián)系我 1.django 如何從后臺上傳excel中批量解析數(shù)據(jù) 要從django后臺導入...

    2i18ns 評論0 收藏0
  • 第7期 Datawhale 組隊學習計劃

    馬上就要開始啦這次共組織15個組隊學習 涵蓋了AI領(lǐng)域從理論知識到動手實踐的內(nèi)容 按照下面給出的最完備學習路線分類 難度系數(shù)分為低、中、高三檔 可以按照需要參加 - 學習路線 - showImg(https://segmentfault.com/img/remote/1460000019082128); showImg(https://segmentfault.com/img/remote/...

    dinfer 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<