ProjectArrangeCommonMethod.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. package cn.com.lzt.projarrangedetail.projectarrangecommonmethod;
  2. import java.io.BufferedWriter;
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.io.OutputStreamWriter;
  8. import java.math.BigDecimal;
  9. import java.text.DecimalFormat;
  10. import java.text.ParseException;
  11. import java.text.SimpleDateFormat;
  12. import java.util.ArrayList;
  13. import java.util.Calendar;
  14. import java.util.Date;
  15. import java.util.List;
  16. import org.springframework.util.StringUtils;
  17. import cn.com.lzt.common.util.calendar.JdbcConnection;
  18. import cn.com.lzt.common.util.calendar.PermanentCalendarInsert;
  19. public class ProjectArrangeCommonMethod {
  20. /**
  21. * 把中文的出勤时间转为数字
  22. * @author zbw
  23. * 2017-11-13
  24. * @param attendanceCycle
  25. * @return
  26. */
  27. public static String getAttendanceCycleNumner(String attendanceCycle) {
  28. String[] attendanceCycleArr=attendanceCycle.split(",");
  29. String attendanceCycleNew="";
  30. for (int i = 0; i < attendanceCycleArr.length; i++) {
  31. switch(attendanceCycleArr[i]){
  32. case "周一" :
  33. if(attendanceCycleNew.length()!=0){
  34. attendanceCycleNew+=","+"1";
  35. }else{
  36. attendanceCycleNew="1";
  37. }
  38. break;
  39. case "周二" :
  40. if(attendanceCycleNew.length()!=0){
  41. attendanceCycleNew+=","+"2";
  42. }else{
  43. attendanceCycleNew="2";
  44. }
  45. break;
  46. case "周三" :
  47. if(attendanceCycleNew.length()!=0){
  48. attendanceCycleNew+=","+"3";
  49. }else{
  50. attendanceCycleNew="3";
  51. }
  52. break;
  53. case "周四" :
  54. if(attendanceCycleNew.length()!=0){
  55. attendanceCycleNew+=","+"4";
  56. }else{
  57. attendanceCycleNew="4";
  58. }
  59. break;
  60. case "周五" :
  61. if(attendanceCycleNew.length()!=0){
  62. attendanceCycleNew+=","+"5";
  63. }else{
  64. attendanceCycleNew="5";
  65. }
  66. break;
  67. case "周六" :
  68. if(attendanceCycleNew.length()!=0){
  69. attendanceCycleNew+=","+"6";
  70. }else{
  71. attendanceCycleNew="6";
  72. }
  73. break;
  74. case "周日" :
  75. if(attendanceCycleNew.length()!=0){
  76. attendanceCycleNew+=","+"7";
  77. }else{
  78. attendanceCycleNew="7";
  79. }
  80. break;
  81. }
  82. }
  83. return attendanceCycleNew;
  84. }
  85. //获取运转方式中文名称
  86. public static String getRunWayByCode(String runWayCode) {
  87. String shiftType="";
  88. switch(runWayCode){
  89. case "t2o_jijiabanfei" :
  90. shiftType="三班两运转-做二休一(计加班费)";
  91. break;
  92. case "o2o_wujiabanfei" :
  93. shiftType="四班两运转A-做一休一(无加班费)";
  94. break;
  95. case "t2t_wujiabanfei" :
  96. shiftType="四班两运转B-做二休二(无加班费)";
  97. break;
  98. case "f2t_jijiabanfei" :
  99. shiftType="做五休二(计加班费)";
  100. break;
  101. case "f2t_wujiabanfei" :
  102. shiftType="做五休二(无加班费)";
  103. break;
  104. case "other_jijiabanfei" :
  105. shiftType="其他(计加班费)";
  106. break;
  107. case "other_wujiabanfei" :
  108. shiftType="其他(无加班费)";
  109. break;
  110. }
  111. return shiftType;
  112. }
  113. /**
  114. * 抽取由逗号分隔的主键列表
  115. *
  116. * @param ids
  117. * 由逗号分隔的多个主键值
  118. * @return 主键类表
  119. * @author 张国明 2014-8-21 21:57:16
  120. */
  121. public static List<String> extractIdListByComma(String ids) {
  122. List<String> result = new ArrayList<String>();
  123. if (StringUtils.hasText(ids)) {
  124. for (String id : ids.split(",")) {
  125. if (StringUtils.hasLength(id)) {
  126. result.add(id.trim());
  127. }
  128. }
  129. }
  130. return result;
  131. }
  132. /**
  133. * 根据分号分割字符串,返回list
  134. * @author zbw
  135. * 2017-12-20
  136. * @param ids
  137. * @return
  138. */
  139. public static List<String> extractIdListBySemicolon(String ids) {
  140. List<String> result = new ArrayList<String>();
  141. if (StringUtils.hasText(ids)) {
  142. for (String id : ids.split(";")) {
  143. if (StringUtils.hasLength(id)) {
  144. result.add(id.trim());
  145. }
  146. }
  147. }
  148. return result;
  149. }
  150. /**
  151. * 计算时间差的公共方法
  152. *
  153. * @author zbw
  154. * 2017-11-15
  155. * @param strStartTime
  156. * @param strEndTime
  157. * @return
  158. */
  159. public static String dealMinuteToHour(String strStartTime,String strEndTime){
  160. SimpleDateFormat sdf=new SimpleDateFormat("hh:mm");
  161. Date time = null;
  162. Date time2 = null;
  163. try {
  164. time = sdf.parse(strStartTime);
  165. time2 = sdf.parse(strEndTime);
  166. } catch (ParseException e) {
  167. // TODO Auto-generated catch block
  168. e.printStackTrace();
  169. }
  170. sdf = null;
  171. Calendar instance = Calendar.getInstance();
  172. instance.setTime(time);
  173. long timeInMillis1 = instance.getTimeInMillis();
  174. instance = null;
  175. time = null;
  176. Calendar instance2 = Calendar.getInstance();
  177. instance2.setTime(time2);
  178. long timeInMillis2 = instance2.getTimeInMillis();
  179. instance2 = null;
  180. time2 = null;
  181. double hours = (timeInMillis2 - timeInMillis1)/1000/60/60.0;
  182. DecimalFormat df = new DecimalFormat("##.#");
  183. String dff=df.format(hours);
  184. System.out.println(dff);
  185. df = null;
  186. return dff;
  187. }
  188. /**
  189. * 计算时间差
  190. * 最小单位0.5小时
  191. * @author zbw
  192. * 2017-11-20
  193. * @param strStartTime
  194. * @param strEndTime
  195. * @return
  196. */
  197. public static BigDecimal dealMinuteToHourFormat(String strStartTime,String strEndTime){
  198. String strHour=dealMinuteToHour(strStartTime, strEndTime);
  199. if(strHour!=null&&strHour.indexOf(".")!=-1){
  200. int temNum=Integer.parseInt(strHour.substring(strHour.indexOf(".")+1,strHour.length()));
  201. if(temNum<5){
  202. temNum=0;
  203. }else{
  204. temNum=5;
  205. }
  206. strHour=strHour.substring(0,strHour.indexOf(".")+1)+String.valueOf(temNum);
  207. }
  208. BigDecimal bdHour = null;
  209. if(strHour.indexOf("-")!=-1){
  210. bdHour=(new BigDecimal(strHour)).add(new BigDecimal("24"));
  211. }else{
  212. bdHour=new BigDecimal(strHour);
  213. }
  214. return bdHour;
  215. }
  216. /**
  217. * 记录ip
  218. * @author zbw
  219. * 2017-11-30
  220. */
  221. public static void writeVisitorIp(String visitorIp) {
  222. SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyy-MM-dd HH:mm:ss ms");
  223. // System.out.println(visitorIp+"--"+simpleDateFormat.format(new Date()));
  224. File f = new File("../VisitorIp.txt");
  225. try
  226. {
  227. FileOutputStream out = new FileOutputStream(f,true);
  228. BufferedWriter bw = new BufferedWriter(
  229. new OutputStreamWriter(out));
  230. bw.write(visitorIp+"--"+simpleDateFormat.format(new Date()));
  231. bw.newLine();
  232. bw.flush();
  233. bw.close();
  234. }
  235. catch (FileNotFoundException e) {
  236. e.printStackTrace();
  237. }
  238. catch (IOException e) {
  239. e.printStackTrace();
  240. }
  241. }
  242. /**
  243. * 临时记录访问的ip
  244. * @author zbw
  245. * 2017-11-30
  246. * @param visitorIp
  247. */
  248. public static void InsertVisitorIp(String visitorIp,String entityName) {
  249. SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyy-MM-dd HH:mm:ss ms");
  250. // System.out.println(visitorIp+"--"+simpleDateFormat.format(new Date()));
  251. String uuid = PermanentCalendarInsert.generate();
  252. String sql = "insert into t_bus_temp_visitorip (id,entity,ip,date) values("
  253. + "'" + uuid + "',"
  254. + "'" +entityName + "',"
  255. + "'" +visitorIp + "',"
  256. + "'" +simpleDateFormat.format(new Date()) + "')";
  257. JdbcConnection.executeUpdate(sql, new Object[] {});
  258. }
  259. /**
  260. * 计算日期类型之间时间差值,暂定返回天数;
  261. * @author zbw
  262. * 2017-12-12
  263. * @param d1
  264. * @param d2
  265. * @return
  266. */
  267. public static int compareDate(Date d1, Date d2) {
  268. // TODO Auto-generated method stub
  269. long dif = d1.getTime() - d2.getTime();
  270. long day= dif /(24*60*60*1000);
  271. // long hour=( dif /(60*60*1000)-day*24);
  272. // long min=(( dif /(60*1000))-day*24*60-hour*60);
  273. // long allMIN = hour*24+min;
  274. return Integer.parseInt(String.valueOf(day));
  275. }
  276. }