zoukankan      html  css  js  c++  java
  • 最新导入备份

        //导入
        @RequestMapping(params = "upload3")
        public ModelAndView upload3(HttpServletRequest req) {
            req.setAttribute("controller_name","decOrderController"); 
            req.setAttribute("method_name","importonlyone");
            return new ModelAndView("com/jeecg/decorder/dec_excel_upload"); 
        }
        
        //判断行是不是有效的,非空,不仅仅包含空格
        public static boolean isRow(Row row){
           for(int i=0 ; i<34;i++){
               if(row.getCell(i) != null && !"".equals(row.getCell(i).toString().trim())){
                   return true;
               }
           }
           return false;
        }
        
        @SuppressWarnings("unchecked")
        @RequestMapping(params = "importonlyone", method = RequestMethod.POST)
        @ResponseBody
        public AjaxJson importonlyone(HttpServletRequest request, HttpServletResponse response) throws Exception {
            AjaxJson j = new AjaxJson(); 
            j.setMsg("导入成功");
            j.setSuccess(true);
            //拿到页面的账单日期
            String zdDate = request.getParameter("zdDate");
            if(StringUtils.isEmpty(zdDate)){
                 j.setMsg("账单日期不能为空!!");
                 return j;
            }
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
            Date zdDate1 = sdf.parse(zdDate);
            
             MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
             List<MultipartFile> contactFile= new ArrayList<MultipartFile>();
             
             Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
             for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
                 MultipartFile file = entity.getValue();// 获取上传文件对象
                  contactFile.add(file);
             }
             XSSFWorkbook wb;//2007以前的是HSSFWorkbook
             //
             XSSFSheet sheet;//成品表
             //
             XSSFRow row;//成品表行
             // 打开文件
             try {
                   wb = new XSSFWorkbook(contactFile.get(0).getInputStream());
             } catch (IOException e) {
                 e.printStackTrace();
                 wb = new XSSFWorkbook();
             }
             sheet = wb.getSheetAt(0);
             int rowNum = sheet.getLastRowNum();
             int yxRowNum = 0;
             int emptyNum = 0;
             for(int i=0 ; i<=rowNum ; i++){
                 if(sheet.getRow(i) == null ){
                     emptyNum++;
                     if(emptyNum == 10){
                         yxRowNum -= 9;
                         break;
                     }
                     yxRowNum++;
                 }else{
                     if(isRow(sheet.getRow(i)) && emptyNum != 10){
                         emptyNum =0;
                         yxRowNum++;
                     }
                 }
             }
             System.out.println("有效行数:"+yxRowNum);
             String order_supplyid = "";//代理商id
             String order_supply = "";//代理商name
             String sql = "";
             for(int i=2;i<yxRowNum-1;i++){
                 order_supply = getCellFormatValue(sheet.getRow(i).getCell(0)).trim();//物流公司名称
                 sql = " select count(1) from ldc_customer a where a.cus_company = '"+order_supply+"'  order by cus_company ";
                 int cnt1 = jdbcTemplate.queryForInt(sql);
                 if(cnt1<1){
                     j.setMsg("导入失败:物流公司名称"+order_supply+"数据库没有对应数据匹配!!");
                     return j;
                 }
                 //验证发票号是否存在
                 String trim = getCellFormatValue(sheet.getRow(i).getCell(1)).trim();//发票号 
                 sql = " select count(1) from ldc_order_tax a where a.Invoiceno = '"+trim+"'";
                 int cnt = jdbcTemplate.queryForInt(sql);
                 if(cnt>0){
                     j.setMsg("导入失败:"+trim+"数据库已存在!!");
                     return j;
                 }
                 sql = " select count(1) from ldc_order_tax a where a.order_tax_name = '物流费用合计金额' and a.Invoiceno = '"+trim+"' ";
                 cnt = jdbcTemplate.queryForInt(sql);
                 if(cnt>0){
                     j.setMsg("导入失败:发票号为"+trim+"的数据物流费已有'物流费用合计金额'!!");
                     return j;
                 } 
                 
             }
             
             
             
             
             for(int i=2;i<rowNum;i++){
                 XSSFCell cell = sheet.getRow(i).getCell(1);
                 String cellFormatValue = getCellFormatValue(cell);  
                 if(StringUtils.isNotEmpty(cellFormatValue.trim())){
                     String invoiceno = getCellFormatValue(sheet.getRow(i).getCell(1));
                     if(StringUtils.isNotEmpty(invoiceno)){
                         //去将要set进入json字段的值
                         String uuid = UUID.randomUUID().toString().replaceAll("-","");
                         String jswlName = getCellFormatValue(sheet.getRow(i).getCell(0));//物流公司名称
                         String jsBLorawbNo = getCellFormatValue(sheet.getRow(i).getCell(2));//B/L OR AWB NO
                         String jsEta = getCellFormatValue(sheet.getRow(i).getCell(3));//ETA
                         String jsHy = getCellFormatValue(sheet.getRow(i).getCell(4));//海运整柜(注明箱型)
                         String jsJzxNum = getCellFormatValue(sheet.getRow(i).getCell(5));//集装箱数量
                         String jsWeight = getCellFormatValue(sheet.getRow(i).getCell(6));//毛重
                         String jsTj = getCellFormatValue(sheet.getRow(i).getCell(7));//体积
                         String jsSumfy = getCellFormatValue(sheet.getRow(i).getCell(26));//物流费用合计金额
                         String jsGsje = getCellFormatValue(sheet.getRow(i).getCell(27));//关税金额(必须和关税单金额核对)
                         String jsZzs = getCellFormatValue(sheet.getRow(i).getCell(28));//增值税(必须和关税单金额核对)
                         String jsFybm = getCellFormatValue(sheet.getRow(i).getCell(29));//费用部门
                         
                         Map<String, Object> map = new HashMap<>();
                         map.put("id", uuid);
                         map.put("jswlName", jswlName);
                         map.put("jsBLorawbNo", jsBLorawbNo);
                         map.put("jsEta", jsEta);
                         map.put("jsHy", jsHy);
                         map.put("jsJzxNum", jsJzxNum);
                         map.put("jsWeight", jsWeight);
                         map.put("jsTj", jsTj);
                         map.put("jsSumfy", jsSumfy);
                         map.put("jsGsje", jsGsje);
                         map.put("jsZzs", jsZzs);
                         map.put("jsFybm", jsFybm);
                         
                         
                         String jsonString = JSONObject.toJSONString(map);
                         
                         String hql =" from DecOrderEntity where 1=1 and invoice_Code = '"+invoiceno.trim()+"'";
                         List<DecOrderEntity> findHql = decOrderService.findHql(hql);
                         System.out.println(jsonString);
                         if(findHql!=null && findHql.size()>0){
                             for(int g=0;g<findHql.size();g++){
                                 DecOrderEntity decOrderEntity = findHql.get(g);
                                 decOrderEntity.setJsonExtract(jsonString);
                                 decOrderService.saveOrUpdate(decOrderEntity); 
                             }
                         }
                     
                     }
                     
                     for(int k =12;k<31;k++){
                         LdcOrderTaxEntity ldcordertaxentity = new LdcOrderTaxEntity();
                         String order_tax = getCellFormatValue(sheet.getRow(i).getCell(k));//费用
                         String order_tax_name =  getCellFormatValue(sheet.getRow(1).getCell(k));//费用类型
                         if("物流费用合计金额".equals(order_tax_name)){
                             order_tax_name="物流费";
                         }
                         String jswlName = getCellFormatValue(sheet.getRow(i).getCell(0));//物流公司名称
                         sql = " select id from ldc_customer a where a.cus_company = '"+jswlName+"'  order by cus_company ";
                         order_supplyid = jdbcTemplate.queryForObject(sql, String.class);
                         ldcordertaxentity.setInvoiceno(invoiceno);//设置票号
                         ldcordertaxentity.setOrderTax(order_tax);//设置费用
                         ldcordertaxentity.setOrderTaxName(order_tax_name);//设置费用类型
                         ldcordertaxentity.setZdDate(zdDate1);//设置账单时间
                         ldcordertaxentity.setOrderBizhi("CNY"); 
                         ldcordertaxentity.setOrdersl("0.0"); 
                         ldcordertaxentity.setOrderse("0.0"); 
                         ldcordertaxentity.setOrderSupplyid(order_supplyid);
                         ldcordertaxentity.setOrderSupply(jswlName); 
                         if(StringUtils.isNotEmpty(order_tax.trim())){
                             ldcOrderTaxService.save(ldcordertaxentity);//保存                         
                         }
                     }
                 }
             }
             return j;
        }
        private String getCellFormatValue(XSSFCell xssfCell) {
            String cellvalue = "";
            if (xssfCell != null) {
                // 判断当前Cell的Type
                switch (xssfCell.getCellType()) {
                // 如果当前Cell的Type为NUMERIC
                case XSSFCell.CELL_TYPE_NUMERIC:
                case XSSFCell.CELL_TYPE_FORMULA: {
                    // 判断当前的cell是否为Date
                    if (HSSFDateUtil.isCellDateFormatted(xssfCell)) {
                        Date date = xssfCell.getDateCellValue();
                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                        cellvalue = sdf.format(date);
                    }
                    // 如果是纯数字
                    else {
                        // 取得当前Cell的数值
                        cellvalue = String.valueOf((int)xssfCell.getNumericCellValue());
                    }
                    break;
                }
                // 如果当前Cell的Type为STRIN
                case XSSFCell.CELL_TYPE_STRING:
                    // 取得当前的Cell字符串
                    cellvalue = xssfCell.getRichStringCellValue().getString();
                    break;
                // 默认的Cell值
                default:
                    cellvalue = " ";
                }
            } else {
                cellvalue = "";
            }
            return cellvalue;
        }
  • 相关阅读:
    Andrej Karpathy的char-rnn Python3版本
    【转载】各位设备爹 来说说不用效果器的牛逼乐队吧
    为什么原始人和小动物不需要艺术?
    子非我焉知我之怒?人与人的悲欢并不相通
    尼采喜欢跳舞?论“每一个不曾起舞的日子 都是对生命的辜负真的”的误译!
    Thinkpad已不是曾经的IBM Thinkpad,联想已不是曾经的联想
    简单二进制编码(SBE)
    挪威志愿消防员笑话
    挪威的概念消防车
    一些有意思的牛津辩题
  • 原文地址:https://www.cnblogs.com/xueblvip/p/12576209.html
Copyright © 2011-2022 走看看