Java tutorial
/* * Copyright (c) 2013 ????www.hrbesd.com. All rights reserved. * * HRBESD PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package com.esd.cs.worker; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.esd.common.util.CalendarUtil; import com.esd.cs.common.HExcelSheetParser; import com.esd.cs.common.XExcelSheetParser; import com.esd.hesf.model.AuditParameter; import com.esd.hesf.model.Worker; import com.esd.hesf.model.WorkerHandicapLevel; import com.esd.hesf.model.WorkerHandicapType; public class WorkerUtil { public static Integer DnISABILITYCARDLENGTH = 20;// ?? private static final Logger logger = LoggerFactory.getLogger(WorkerUtil.class); // ? public static Integer conversionAge(String param) { if (param != null) { try { // ? Integer age = Integer.valueOf(param.substring(6, 10)); // ? Integer nowYear = Integer.valueOf(CalendarUtil.getNowYear()); return (nowYear - age) + 1; } catch (Exception e) { logger.error("conversionAge:{}", e.getMessage()); } } logger.error("conversionAge:{}", -1); return -1; } private static HSSFWorkbook hWorkbook;// excel 2003? private static XSSFWorkbook xWorkbook;// excel 2007-2012 /** * excel:?2003?HSSFWorkbook,2007XSSFWorkbook. * 2003??HSSFWorkbook,??office2003 ?? * * @param file * @return * @throws IOException * @throws FileNotFoundException */ public static Object hasParser(File file) throws FileNotFoundException, IOException { try { // ?workbook hWorkbook = new HSSFWorkbook(new FileInputStream(file)); logger.info("excel 97-2003"); return hWorkbook; } catch (Exception e) { xWorkbook = new XSSFWorkbook(new FileInputStream(file)); logger.info("excel 2007-2010"); return xWorkbook; } } /** * ?? * * @param row * @return */ public static Worker parseRow(List<Object> row) { Worker callBack = new Worker(); for (int j = 0; j < row.size(); j++) { Object obj = row.get(j); String value = String.valueOf(obj).trim(); switch (j) { case 0: // ?? callBack.setWorkerName(value); break; case 1: // ?? callBack.setWorkerHandicapCode(value); break; } logger.debug(callBack.toString()); } return callBack; } /** * ??? * * @param file * @return * @throws IOException * @throws FileNotFoundException */ public static List<Worker> parse(File file, int sheetNumber) throws FileNotFoundException, IOException { List<Worker> list = null; // excel Object obj = hasParser(file); if (obj == null) { return list; } list = new ArrayList<Worker>(); if (obj instanceof HSSFWorkbook) {// 97-2003 logger.debug("excelFileType:{}", "97-2003"); HExcelSheetParser parser = new HExcelSheetParser(file); List<List<Object>> datas = parser.getDatasInSheet(sheetNumber); for (int i = 1; i < datas.size(); i++) { List<Object> row = datas.get(i); list.add(parseRow(row)); } } else if (obj instanceof XSSFWorkbook) { // 2003-2010 logger.debug("excelFileType:{}", " 2003-2010"); XExcelSheetParser parser = new XExcelSheetParser(file); List<List<Object>> datas = parser.getDatasInSheet(sheetNumber); for (int i = 1; i < datas.size(); i++) { List<Object> row = datas.get(i); list.add(parseRow(row)); } } return list; } /** * ??? ? */ public static Worker assembly(Worker w) { Worker worker = new Worker(); // ?? String handicapCode = w.getWorkerHandicapCode(); worker.setWorkerName(w.getWorkerName()); worker.setWorkerHandicapCode(handicapCode); // ?? worker.setWorkerIdCard(handicapCode.substring(0, 18)); int age = Integer.valueOf(handicapCode.substring(16, 17)); // if (age % 2 == 0) { // worker.setWorkerGender(0 + ""); } else { // worker.setWorkerGender(1 + ""); } // int handicapType = Integer.valueOf(handicapCode.substring(18, 19)); worker.setWorkerHandicapType(new WorkerHandicapType(handicapType)); // int handicapLeve = Integer.valueOf(handicapCode.substring(19, 20)); worker.setWorkerHandicapLevel(new WorkerHandicapLevel(handicapLeve)); // String year = handicapCode.substring(6, 10);// String month = handicapCode.substring(10, 12);// String day = handicapCode.substring(12, 14);// worker.setWorkerBirth(year + "-" + month + "-" + day); // --?? worker.setWorkerBirthYear(year); logger.debug("assemblyWorker:{}", worker); return worker; } /** * * * @param workerHandicapCode * @param param * @return */ public List<String> ageVerifi(String workerHandicapCode, AuditParameter param) { int sex = Integer.valueOf(workerHandicapCode.substring(16, 17)); List<String> result = new ArrayList<String>(); if (param != null) { int age = conversionAge(workerHandicapCode); // if (sex % 2 == 0) { result.add(""); result.add(age + ""); // if (age > param.getRetireAgeFemale()) { result.add(""); return result; } // ? if (age < 16) { result.add(""); return result; } } else { result.add(""); result.add(age + ""); // if (age > param.getRetireAgeMale()) { result.add(""); return result; } // ? if (age < 16) { result.add(""); return result; } } } else { logger.error("getLastYearERROR:{}"); } return null; } }