Java tutorial
package org.gaixie.micrite.car.service.impl; import java.io.File; import java.io.FileInputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.gaixie.micrite.beans.Carowner; import org.gaixie.micrite.beans.Dictionary; import org.gaixie.micrite.beans.Carfile; import org.gaixie.micrite.car.service.ICarfileService; import org.gaixie.micrite.crm.service.ICarownerService; import org.gaixie.micrite.dic.service.IDictionaryService; import org.gaixie.micrite.upload.IDealWith; import org.gaixie.micrite.util.CalendarUtil; import org.gaixie.micrite.util.DictionaryUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.hansheng.njj.PinyinConv; @Service("dealWithCar") public class DealWithCar implements IDealWith { final static String PAISE_TITLE = ""; /**ExcelAH*/ public final static int PAISE_COL_1_2 = 33; /**??35CtrlA+CtrlC...*/ public final static int COLS_1_2 = 35; /**??ExcelAN*/ public final static int PAISE_COL_3 = 39; /**??39CtrlA+CtrlC...*/ public final static int COLS_3 = 39; Logger log = Logger.getLogger(DealWithCar.class); @Autowired private ICarfileService carfileService; @Autowired private IDictionaryService dictionaryService; @Autowired private ICarownerService carownerService; private List<Dictionary> carType; private List<Dictionary> skillRank; private List<Dictionary> licenseType; private List<Dictionary> fuelRank; private List<Dictionary> evaluateCycle; private List<Dictionary> maintainCycle; private List<Dictionary> paiSe; static DateFormat df = CalendarUtil.df; private Dictionary paiSeTmp = null; private String licenseNumber = null; // private Carfile carfile=new Carfile(); @Override public int doJob(File src, Map<String, String> res) throws Exception { getPartner1(); getPartner2(); getPartner3(); getPartner4(); getPartner5(); getPartner6(); getPartner7(); // TODO Auto-generated method stub if (log.isInfoEnabled()) { if (src == null) log.info("upload file is null."); } HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(src)); HSSFSheet sheet = wb.getSheetAt(0); HSSFRow row = sheet.getRow(sheet.getFirstRowNum()); int colSize = row.getLastCellNum(); int rowSize = sheet.getLastRowNum(); if (log.isInfoEnabled()) log.info("this is colSize=" + rowSize); try { if (colSize == COLS_1_2) {// for (int i = sheet.getFirstRowNum() + 1; i <= rowSize; i++) { row = sheet.getRow(i); save1_2(row); } } else if (colSize == COLS_3) {// paiSeTmp = DictionaryUtil.getDictionaryWhenNotGiveLast("", paiSe); for (int i = sheet.getFirstRowNum() + 1; i <= rowSize; i++) { row = sheet.getRow(i); save3(row); } } else if (colSize > COLS_3) {// if (sheet.getRow(sheet.getFirstRowNum()) != null && sheet.getRow(sheet.getFirstRowNum()).getCell(PAISE_COL_1_2) != null && sheet.getRow(sheet.getFirstRowNum()).getCell(PAISE_COL_1_2).getStringCellValue() != null && PAISE_TITLE.equals(sheet.getRow(sheet.getFirstRowNum()).getCell(PAISE_COL_1_2) .getStringCellValue().trim())) { for (int i = sheet.getFirstRowNum() + 1; i <= rowSize; i++) { row = sheet.getRow(i); save1_2(row); } } else { for (int i = sheet.getFirstRowNum() + 1; i <= rowSize; i++) { row = sheet.getRow(i); if (row.getCell(PAISE_COL_3) != null && row.getCell(PAISE_COL_3).getStringCellValue() != null) { paiSeTmp = DictionaryUtil.getDictionaryWhenNotGiveLast( row.getCell(PAISE_COL_3).getStringCellValue(), paiSe); } else { paiSeTmp = DictionaryUtil.getDictionaryWhenNotGiveLast("", paiSe); } save3(row); } } } else { log.info("does not deal with colum size=" + colSize); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); log.info(e); } return IDealWith.OK; } public void setCarfileService(ICarfileService carfileService) { this.carfileService = carfileService; } /****/ public void getPartner1() { carType = dictionaryService.findALLDictionary(1); } public void getPartner2() { skillRank = dictionaryService.findALLDictionary(2); } public void getPartner3() { licenseType = dictionaryService.findALLDictionary(3); } public void getPartner4() { fuelRank = dictionaryService.findALLDictionary(4); } public void getPartner5() { evaluateCycle = dictionaryService.findALLDictionary(5); } public void getPartner6() { maintainCycle = dictionaryService.findALLDictionary(6); } public void getPartner7() { paiSe = dictionaryService.findALLDictionary(7); } final private void save3(HSSFRow row) { HSSFCell cell = null; Carfile carfile = new Carfile(); if (makeCarowner(row, carfile)) return; cell = row.getCell(5);// ? licenseNumber = cell.getStringCellValue(); if (carfileService.existCar(licenseNumber, paiSeTmp)) { if (log.isInfoEnabled()) { log.info("return for existCar:" + licenseNumber + "," + paiSeTmp.getName()); } return; } carfile.setPaiSe(paiSeTmp);// carfile.setLicenseNumber(licenseNumber);// ? cell = row.getCell(6); carfile.setCarType(DictionaryUtil.getDictionary(cell.getStringCellValue(), carType)); cell = row.getCell(7); carfile.setLicenseType(DictionaryUtil.getDictionary(cell.getStringCellValue(), licenseType)); cell = row.getCell(8); carfile.setLoadTon(cell.getStringCellValue()); cell = row.getCell(13); carfile.setBrandType(cell.getStringCellValue()); cell = row.getCell(14); carfile.setYingyunNo(cell.getStringCellValue()); cell = row.getCell(25); carfile.setCarRemark(cell.getStringCellValue()); cell = row.getCell(27); carfile.setFuelRank(DictionaryUtil.getDictionary(cell.getStringCellValue(), fuelRank)); cell = row.getCell(28); carfile.setSkillRank(DictionaryUtil.getDictionary(cell.getStringCellValue(), skillRank)); cell = row.getCell(29); if (cell.getStringCellValue() != null && !cell.getStringCellValue().equals("")) { try { carfile.setEvaluateDate(df.parse(cell.getStringCellValue())); } catch (Exception e) { } // {log.info(e+":cell("+i+",29).getStringCellValue()="+cell.getStringCellValue());} } // else{log.info(":cell("+i+",29).getStringCellValue()==null");} cell = row.getCell(30); carfile.setEvaluateCycle(DictionaryUtil.getDictionary(cell.getStringCellValue(), evaluateCycle)); cell = row.getCell(31); if (cell.getStringCellValue() != null && !cell.getStringCellValue().equals("")) { try { carfile.setMaintainDate(df.parse(cell.getStringCellValue()));// new // SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S") } catch (Exception e) { } // {log.info(e+":cell("+i+",31).getStringCellValue()="+cell.getStringCellValue());} } // else{log.info(":cell("+i+",31).getStringCellValue()==null");} cell = row.getCell(32); carfile.setMaintainCycle(DictionaryUtil.getDictionary(cell.getStringCellValue(), maintainCycle)); try { carfileService.addFromUpload(carfile); } catch (Exception e) { log.info("when save yunyingNo=" + carfile.getYingyunNo() + "," + carfile.getLicenseNumber() + "," + carfile.getPaiSe().getName() + ":" + e); } } final private void save1_2(HSSFRow row) { HSSFCell cell = null; Carfile carfile = new Carfile(); if (makeCarowner(row, carfile)) { return; } cell = row.getCell(5);// ? licenseNumber = cell.getStringCellValue(); cell = row.getCell(PAISE_COL_1_2);// paiSeTmp = DictionaryUtil.getDictionaryWhenNotGiveLast(cell.getStringCellValue(), paiSe); if (carfileService.existCar(licenseNumber, paiSeTmp)) { if (log.isInfoEnabled()) { log.info("return for existCar:" + licenseNumber + "," + paiSeTmp.getName()); } return; } carfile.setPaiSe(paiSeTmp);// carfile.setLicenseNumber(licenseNumber);// ? cell = row.getCell(6); carfile.setCarType(DictionaryUtil.getDictionary(cell.getStringCellValue(), carType)); cell = row.getCell(7); carfile.setLicenseType(DictionaryUtil.getDictionary(cell.getStringCellValue(), licenseType)); cell = row.getCell(8); carfile.setLoadTon(cell.getStringCellValue()); cell = row.getCell(13); carfile.setBrandType(cell.getStringCellValue()); cell = row.getCell(14); carfile.setYingyunNo(cell.getStringCellValue()); cell = row.getCell(22); carfile.setCarRemark(cell.getStringCellValue()); cell = row.getCell(24); carfile.setFuelRank(DictionaryUtil.getDictionary(cell.getStringCellValue(), fuelRank)); cell = row.getCell(25); carfile.setSkillRank(DictionaryUtil.getDictionary(cell.getStringCellValue(), skillRank)); cell = row.getCell(26); if (cell.getStringCellValue() != null && !cell.getStringCellValue().equals("")) { try { carfile.setEvaluateDate(df.parse(cell.getStringCellValue())); } catch (Exception e) { } // {log.info(e+":cell("+i+",26).getStringCellValue()="+cell.getStringCellValue());} } // else{log.info(":cell("+i+",26).getStringCellValue()==null");} cell = row.getCell(27); carfile.setEvaluateCycle(DictionaryUtil.getDictionary(cell.getStringCellValue(), evaluateCycle)); cell = row.getCell(28); if (cell.getStringCellValue() != null && !cell.getStringCellValue().equals("")) { try { carfile.setMaintainDate(df.parse(cell.getStringCellValue())); } catch (Exception e) { } // {log.info(e+":cell("+i+",28).getStringCellValue()="+cell.getStringCellValue());} } // else{log.info(":cell("+i+",28).getStringCellValue()==null");} cell = row.getCell(29); carfile.setMaintainCycle(DictionaryUtil.getDictionary(cell.getStringCellValue(), maintainCycle)); try { carfileService.addFromUpload(carfile); } catch (Exception e) { log.info("when save yunyingNo=" + carfile.getYingyunNo() + "," + carfile.getLicenseNumber() + "," + carfile.getPaiSe().getName() + ":" + e); } } final boolean makeCarowner(HSSFRow row, Carfile carfile) { HSSFCell cell = null; cell = row.getCell(2);// ????? String ownerLicense = cell.getStringCellValue().trim(); if (ownerLicense.equals("")) { if (log.isInfoEnabled()) { log.info("return for makeCarowner==true:yingyunNo=" + ownerLicense + ",column0:" + row.getCell(0)); } return true; } Carowner carowner = carownerService.getByLicense(ownerLicense); if (carowner != null) { carfile.setCarowner(carowner); } else { cell = row.getCell(1);// ?? carfile.setOwner(cell.getStringCellValue().trim()); carfile.setOwnerLicense(ownerLicense); cell = row.getCell(3);// ? carfile.setTelephone(cell.getStringCellValue()); cell = row.getCell(4);// ? carfile.setAddress(cell.getStringCellValue().trim()); try { carownerService.save(carfile.getCarowner()); } catch (Exception e) { // TODO: handle exception log.info("save carowner:" + e); } } return false; } public static void main(String[] args) { try { DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); System.out.println(df.parseObject("2010-08-06 00:00:00.0")); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }