package cn.com.lzt.projarrangedetail.projectarrangecommonmethod; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import org.springframework.util.StringUtils; import cn.com.lzt.common.util.calendar.JdbcConnection; import cn.com.lzt.common.util.calendar.PermanentCalendarInsert; public class ProjectArrangeCommonMethod { /** * 把中文的出勤时间转为数字 * @author zbw * 2017-11-13 * @param attendanceCycle * @return */ public static String getAttendanceCycleNumner(String attendanceCycle) { String[] attendanceCycleArr=attendanceCycle.split(","); String attendanceCycleNew=""; for (int i = 0; i < attendanceCycleArr.length; i++) { switch(attendanceCycleArr[i]){ case "周一" : if(attendanceCycleNew.length()!=0){ attendanceCycleNew+=","+"1"; }else{ attendanceCycleNew="1"; } break; case "周二" : if(attendanceCycleNew.length()!=0){ attendanceCycleNew+=","+"2"; }else{ attendanceCycleNew="2"; } break; case "周三" : if(attendanceCycleNew.length()!=0){ attendanceCycleNew+=","+"3"; }else{ attendanceCycleNew="3"; } break; case "周四" : if(attendanceCycleNew.length()!=0){ attendanceCycleNew+=","+"4"; }else{ attendanceCycleNew="4"; } break; case "周五" : if(attendanceCycleNew.length()!=0){ attendanceCycleNew+=","+"5"; }else{ attendanceCycleNew="5"; } break; case "周六" : if(attendanceCycleNew.length()!=0){ attendanceCycleNew+=","+"6"; }else{ attendanceCycleNew="6"; } break; case "周日" : if(attendanceCycleNew.length()!=0){ attendanceCycleNew+=","+"7"; }else{ attendanceCycleNew="7"; } break; } } return attendanceCycleNew; } //获取运转方式中文名称 public static String getRunWayByCode(String runWayCode) { String shiftType=""; switch(runWayCode){ case "t2o_jijiabanfei" : shiftType="三班两运转-做二休一(计加班费)"; break; case "o2o_wujiabanfei" : shiftType="四班两运转A-做一休一(无加班费)"; break; case "t2t_wujiabanfei" : shiftType="四班两运转B-做二休二(无加班费)"; break; case "f2t_jijiabanfei" : shiftType="做五休二(计加班费)"; break; case "f2t_wujiabanfei" : shiftType="做五休二(无加班费)"; break; case "other_jijiabanfei" : shiftType="其他(计加班费)"; break; case "other_wujiabanfei" : shiftType="其他(无加班费)"; break; } return shiftType; } /** * 抽取由逗号分隔的主键列表 * * @param ids * 由逗号分隔的多个主键值 * @return 主键类表 * @author 张国明 2014-8-21 21:57:16 */ public static List extractIdListByComma(String ids) { List result = new ArrayList(); if (StringUtils.hasText(ids)) { for (String id : ids.split(",")) { if (StringUtils.hasLength(id)) { result.add(id.trim()); } } } return result; } /** * 根据分号分割字符串,返回list * @author zbw * 2017-12-20 * @param ids * @return */ public static List extractIdListBySemicolon(String ids) { List result = new ArrayList(); if (StringUtils.hasText(ids)) { for (String id : ids.split(";")) { if (StringUtils.hasLength(id)) { result.add(id.trim()); } } } return result; } /** * 计算时间差的公共方法 * * @author zbw * 2017-11-15 * @param strStartTime * @param strEndTime * @return */ public static String dealMinuteToHour(String strStartTime,String strEndTime){ SimpleDateFormat sdf=new SimpleDateFormat("hh:mm"); Date time = null; Date time2 = null; try { time = sdf.parse(strStartTime); time2 = sdf.parse(strEndTime); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } sdf = null; Calendar instance = Calendar.getInstance(); instance.setTime(time); long timeInMillis1 = instance.getTimeInMillis(); instance = null; time = null; Calendar instance2 = Calendar.getInstance(); instance2.setTime(time2); long timeInMillis2 = instance2.getTimeInMillis(); instance2 = null; time2 = null; double hours = (timeInMillis2 - timeInMillis1)/1000/60/60.0; DecimalFormat df = new DecimalFormat("##.#"); String dff=df.format(hours); System.out.println(dff); df = null; return dff; } /** * 计算时间差 * 最小单位0.5小时 * @author zbw * 2017-11-20 * @param strStartTime * @param strEndTime * @return */ public static BigDecimal dealMinuteToHourFormat(String strStartTime,String strEndTime){ String strHour=dealMinuteToHour(strStartTime, strEndTime); if(strHour!=null&&strHour.indexOf(".")!=-1){ int temNum=Integer.parseInt(strHour.substring(strHour.indexOf(".")+1,strHour.length())); if(temNum<5){ temNum=0; }else{ temNum=5; } strHour=strHour.substring(0,strHour.indexOf(".")+1)+String.valueOf(temNum); } BigDecimal bdHour = null; if(strHour.indexOf("-")!=-1){ bdHour=(new BigDecimal(strHour)).add(new BigDecimal("24")); }else{ bdHour=new BigDecimal(strHour); } return bdHour; } /** * 记录ip * @author zbw * 2017-11-30 */ public static void writeVisitorIp(String visitorIp) { SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyy-MM-dd HH:mm:ss ms"); // System.out.println(visitorIp+"--"+simpleDateFormat.format(new Date())); File f = new File("../VisitorIp.txt"); try { FileOutputStream out = new FileOutputStream(f,true); BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(out)); bw.write(visitorIp+"--"+simpleDateFormat.format(new Date())); bw.newLine(); bw.flush(); bw.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 临时记录访问的ip * @author zbw * 2017-11-30 * @param visitorIp */ public static void InsertVisitorIp(String visitorIp,String entityName) { SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyy-MM-dd HH:mm:ss ms"); // System.out.println(visitorIp+"--"+simpleDateFormat.format(new Date())); String uuid = PermanentCalendarInsert.generate(); String sql = "insert into t_bus_temp_visitorip (id,entity,ip,date) values(" + "'" + uuid + "'," + "'" +entityName + "'," + "'" +visitorIp + "'," + "'" +simpleDateFormat.format(new Date()) + "')"; JdbcConnection.executeUpdate(sql, new Object[] {}); } /** * 计算日期类型之间时间差值,暂定返回天数; * @author zbw * 2017-12-12 * @param d1 * @param d2 * @return */ public static int compareDate(Date d1, Date d2) { // TODO Auto-generated method stub long dif = d1.getTime() - d2.getTime(); long day= dif /(24*60*60*1000); // long hour=( dif /(60*60*1000)-day*24); // long min=(( dif /(60*1000))-day*24*60-hour*60); // long allMIN = hour*24+min; return Integer.parseInt(String.valueOf(day)); } }