Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.itd.dbmrgdao; import com.itd.common.dao.EmployeeDropDownDao; import com.itd.common.dao.GennericDao; import com.itd.regis.db.entity.ScanData; import com.itd.regis.db.entity.ScanDataKey; import com.itd.regis.db.entity.ScanRule; import com.itd.scan.dao.ScanDao; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.filechooser.FileNameExtensionFilter; import org.junit.Ignore; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; /** * * @author Administrator Test if employee punch either time-in or timeout will * credit 8:00 and 17:00 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:spring/config/BeanLocations.xml") @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false) @Transactional public class TestTime7 { @Autowired ScanDao scanDao; @Autowired GennericDao<ScanData> gennericDao; @Ignore @org.junit.Test public void test1() { String sysid_sdate = "19870001520140710"; String sysid = sysid_sdate.substring(0, 9); String sdate = new StringBuffer(sysid_sdate).substring(9); sdate = new StringBuffer(sdate).insert(sdate.length() - 2, "-").toString(); sdate = new StringBuffer(sdate).insert(sdate.length() - 5, "-").toString(); System.out.println(sysid); System.out.println(sdate); ScanData scanData = scanDao.findScanDataBySysId_Sdate(sysid, sdate); System.out.println(scanData); } @Ignore @org.junit.Test public void test() throws ParseException { String newTab = "\t"; String[] sysidLine; JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Text File", "txt"); chooser.setFileFilter(filter); chooser.showOpenDialog(null); File f = chooser.getSelectedFile(); String fileName = f.getAbsolutePath(); try { FileReader reader = new FileReader(fileName); BufferedReader br = new BufferedReader(reader); String strLine; String sysid = null, scdate = null, p1Start = null, p1End = null, p2Start = null, p2End = null, otStart = null, otEnd = null; String scode = "1985"; StringBuilder insertSQL = new StringBuilder( "INSERT INTO scandata(sc_sysid,sc_scode,scdate,p1start,p2end) VALUES "); StringBuilder deleteSQL = new StringBuilder("DELETE FROM scandata WHERE (sc_sysid,scdate) IN ("); // read from select file for (strLine = br.readLine(); strLine != null; strLine = br.readLine()) { System.out.println(strLine); } while ((strLine = br.readLine()) != null) { String[] parts = strLine.split(" "); // check if not first record or sysid change will save in table scandata if (sysid != null && !sysid.equals(parts[0])) { deleteSQL = deleteSQL.append(" ('").append(sysid).append("','").append(scdate).append("'),"); insertSQL = insertSQL.append(" ('").append(sysid).append("','").append(scode).append("','") .append(scdate).append("','").append(p1Start).append("','").append(p2End).append("'),"); p1Start = null; p1End = null; p2Start = null; p2End = null; otStart = null; otEnd = null; } //clear sysid = parts[0]; scdate = new StringBuffer(parts[1]).insert(parts[1].length() - 2, "-").toString(); scdate = new StringBuffer(scdate).insert(scdate.length() - 5, "-").toString(); String timeString = new StringBuffer(parts[5]).insert(parts[5].length() - 2, ":").toString(); if (parts[6].equals("01")) { p1Start = CompareTime(p1Start, timeString, "01"); } else { p2End = CompareTime(p2End, timeString, "04"); } } deleteSQL = deleteSQL.append(" ('").append(sysid).append("','").append(scdate).append("'))"); insertSQL = insertSQL.append(" ('").append(sysid).append("','").append(scode).append("','") .append(scdate).append("','").append(p1Start).append("','").append(p2End).append("')"); scanDao.executeSQL(deleteSQL.toString()); scanDao.executeSQL(insertSQL.toString()); br.close(); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } protected static String CompareTime(String a, String b, String operator) throws ParseException { if (a == null) { return b; } SimpleDateFormat parser1 = new SimpleDateFormat("HH:mm"); Date x = parser1.parse(a); Date y = parser1.parse(b); try { // The Magic happens here i only get the Time out of the Date Object SimpleDateFormat parser2 = new SimpleDateFormat("HH:mm"); x = parser2.parse(parser2.format(x)); y = parser2.parse(parser2.format(y)); } catch (ParseException ex) { System.err.println(ex); } switch (operator) { case "01": return ((x.compareTo(y) <= 0) ? a : b); case "04": return ((x.compareTo(y) >= 0) ? a : b); default: throw new IllegalArgumentException("Operator " + operator + " not fould in control!"); } } }