|
@@ -7,6 +7,7 @@ import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
|
|
/**
|
|
|
* @ author :TXF
|
|
@@ -17,24 +18,45 @@ public class DataChange {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 解析前端传来的日期字符串
|
|
|
+ * 时间转换类
|
|
|
+ * 处理了三种类型 yyyy-MM-dd HH:mm:ss yyyy/MM/dd HH:mm:ss 时间戳类型(带毫秒数时间戳13位)
|
|
|
* @param vueDate
|
|
|
* @return
|
|
|
*/
|
|
|
public static Date dataToDate(Object vueDate){
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- Date parseDate = null;
|
|
|
- if (vueDate != null){
|
|
|
+ if(vueDate instanceof Date){
|
|
|
+ return (Date) vueDate;
|
|
|
+ } else {
|
|
|
try {
|
|
|
- String date = (String) vueDate;
|
|
|
- parseDate = sdf.parse(date);
|
|
|
- } catch (ParseException e) {
|
|
|
- e.printStackTrace();
|
|
|
+ String str = String.valueOf(vueDate);
|
|
|
+ if(judgeNumber(str) && str.length() == 13){
|
|
|
+ return new Date(Long.parseLong(str));
|
|
|
+ }else if(str.contains("-")){
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ return sdf.parse(str);
|
|
|
+ }else if(str.contains("/")){
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
|
+ return sdf.parse(str);
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ System.out.println("时间解析错误!返回null");
|
|
|
+ return null;
|
|
|
}
|
|
|
}
|
|
|
- return parseDate;
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断是否纯数字(不带小数点)仅供上面方法使用
|
|
|
+ * @param str
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static boolean judgeNumber(String str){
|
|
|
+ Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
|
|
|
+ return pattern.matcher(str).matches();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 数据转换成BigDecimal
|
|
|
* @param data
|
|
@@ -106,19 +128,18 @@ public class DataChange {
|
|
|
* @param key
|
|
|
*/
|
|
|
public static void dataTo2Number(List<Map<String, Object>> list, String ...key){
|
|
|
+ DecimalFormat df = new DecimalFormat("0.00");
|
|
|
//遍历List
|
|
|
for (Map<String, Object> map : list) {
|
|
|
for (String s : key) {
|
|
|
//修改数据为带两位小数
|
|
|
try {
|
|
|
- BigDecimal oldDate = (BigDecimal) map.get(s);
|
|
|
- DecimalFormat df = new DecimalFormat("0.00");
|
|
|
+ BigDecimal oldDate = dataToBigDecimal(map.get(s));
|
|
|
String resultDeduction = df.format(oldDate.doubleValue());
|
|
|
map.put(s, resultDeduction);
|
|
|
} catch (Exception e) {
|
|
|
System.out.println("原料扣减量数据有误");
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|