国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

解析excel數據并做檢驗及保存到數據庫

luffyZh / 1650人閱讀

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

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

/**
     * 從EXCEL導入核心企業信息到數據庫
     * @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);                              //執行上傳
            
            //執行讀EXCEL操作,讀出的數據導入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, "#.####");
            
                /*數據庫寫入操作======================================*/
                /*
                 * 白名單信息必輸字段:
                 * 核心企業名稱,項目公司名稱
                 * (為非必輸)
                 * 校驗:
                 */
                
                for(PageData ca:excelPdList){
                    // 忽略序號
                    PageData readPd = new PageData();
                    PageData tipPd = new PageData();
                    
                    String coreManuName = StringUtils.trimToEmpty(ca.getString("var1")); //核心企業名稱
                    String companyName = StringUtils.trimToEmpty(ca.getString("var2")); //項目公司名稱
                    String coreManuId = null;
                    //int index = excelPdList.indexOf(ca);
                    
                    // 數據校驗開始
                    
                    if(StringUtils.isEmpty(coreManuName))
                    {
                        tipPd.put("coreManuName", coreManuName);
                        tipPd.put("companyName", companyName);
                        if(StringUtils.isEmpty(companyName)){
                            
//                            tipPd.put("tip", "核心企業名稱和項目公司名稱不能為空");
                            
                            continue;
                        }else{
                            tipPd.put("tip", "核心企業名稱不能為空");
                        }
                        errorList.add(tipPd);
//                        errmsg="核心企業名稱不能為空";
//                        break;
                    }else if(StringUtils.isEmpty(companyName))
                    {
                        tipPd.put("coreManuName", coreManuName);
                        tipPd.put("companyName", companyName);
                        tipPd.put("tip", "項目公司名稱不能為空");
                        errorList.add(tipPd);
//                        errmsg="核心企業["+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", "系統找不到核心企業名稱,核心企業名稱錯誤");
                            errorList.add(tipPd);
                        }else {
                            coreManuId = coreManu.getId();
                            whiteList = whitelistService.findByWhitelistName(coreManuId, companyName);
                            if(whiteList != null) {//判斷導入表中是否存在相同數據
                                tipPd.put("coreManuName", coreManuName);
                                tipPd.put("companyName", companyName);
                                tipPd.put("tip", "此記錄已錄入系統");
                                errorList.add(tipPd);
//                                errmsg = "核心企業["+coreManuName+"]和項目公司["+companyName+"在系統中已存在,請在導入表刪除后重新導入";
//                                break;
                            }
                        }
                        
                    }
                    
                    readPd.put("coreManuId", coreManuId);   //核心企業編號
                    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 = "導入表里核心企業["+coreManuName+"]和項目公司["+companyName+"]在表中重復,請修改后導入";
//                                break;
                            }
                        }
                    }
                    readList.add(readPd);
                }
            }catch(Exception ex){
                logger.error("處理Excel文件出錯", ex);
                errmsg="處理Excel文件出錯,"+ex.getMessage();
            }
            
            
            if(errmsg==null && readList.size()==0){
                errmsg="未檢測到符合條件的數據";
            }
            
            if(errmsg!=null || errorList.size()>0){
                if(errmsg==null){
                    errmsg="數據導入失敗,請核對以下數據";
                }
                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;
//            }
            //批量保存到數據庫
            try {
                whitelistService.saveAll(readList);
            } catch (Exception e) {
//                e.printStackTrace();
                logger.error(e.toString());
                errmsg = "系統異常,保存數據失敗";
                mv.addObject("errmsg", errmsg);
                mv.setViewName("business/whitelist/whitelist_upload");
                return mv;
            }
            
        }
            
        mv.addObject("msg","success");
        mv.setViewName("save_result");
        return mv;
        
        
    }
    

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66719.html

相關文章

  • 數據游戲」:使用 LSTM 模型預測三天后單股收盤價

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

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

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

    JeOam 評論0 收藏0
  • XCel 項目總結 - Electron 與 Vue 的性能優化

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

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

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

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

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

    dinfer 評論0 收藏0

發表評論

0條評論

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