优化splitProvince解析汇总serProvinceId=150201 tollFee的和放入字段splitefee
parent
08085e3c2f
commit
7a1da7587e
@ -0,0 +1,54 @@
|
|||||||
|
package com.nm.gsgl.common.utils;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONArray;
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author: shuguang
|
||||||
|
* @date: 2024年07月04日 11:31
|
||||||
|
* @description:
|
||||||
|
*/
|
||||||
|
public class JsonUtils {
|
||||||
|
public static int getTollFee(String json){
|
||||||
|
JSONArray jsonArray = new JSONArray(json);
|
||||||
|
|
||||||
|
// 初始化求和变量
|
||||||
|
int sum = 0;
|
||||||
|
|
||||||
|
// 遍历JSONArray中的每个元素
|
||||||
|
for (Object obj : jsonArray) {
|
||||||
|
String s = JSON.toJSONString(obj);
|
||||||
|
JSONObject ob = JSONObject.parseObject(s);
|
||||||
|
|
||||||
|
// 检查serProvinceId是否为150201
|
||||||
|
if ("150201".equals(ob.get("serProvinceId").toString())) {
|
||||||
|
// 累加tollFee
|
||||||
|
sum += ob.getInteger("tollFee");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String json = "[{\"enPointId\":\"X0614150010010\",\"enTime\":\"2024-07-03T15:01:48\",\"enTollStationName\":null,\"exPointId\":\"X0614150010010\",\"exTime\":\"2024-07-03T15:01:48\",\"exTollStationName\":\"内蒙壕托线\",\"id\":\"X061415001001030205302024070315014885000\",\"serProvinceId\":\"150201\",\"tollFee\":4500,\"tollIntervalChargeFee\":\"4500\",\"tollIntervalDiscountFee\":\"0\",\"tollIntervalPayFee\":\"4500\",\"tollIntervalRateVersion\":null,\"tollIntervals\":\"X061415001001010\"}]";
|
||||||
|
// 使用Hutool的JsonUtil解析JSON字符串为JSONArray
|
||||||
|
JSONArray jsonArray = new JSONArray(json);
|
||||||
|
|
||||||
|
// 初始化求和变量
|
||||||
|
int sum = 0;
|
||||||
|
|
||||||
|
// 遍历JSONArray中的每个元素
|
||||||
|
for (Object obj : jsonArray) {
|
||||||
|
String s = JSON.toJSONString(obj);
|
||||||
|
JSONObject ob = JSONObject.parseObject(s);
|
||||||
|
|
||||||
|
// 检查serProvinceId是否为150201
|
||||||
|
if ("150201".equals(ob.get("serProvinceId").toString())) {
|
||||||
|
// 累加tollFee
|
||||||
|
sum += ob.getInteger("tollFee");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("Sum of tollFee where serProvinceId is 150201: " + sum);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
package com.nm.gsgl.common.utils;
|
||||||
|
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author: shuguang
|
||||||
|
* @date: 2024年07月02日 8:48
|
||||||
|
* @description:
|
||||||
|
*/
|
||||||
|
public class SqliteUtil {
|
||||||
|
|
||||||
|
public static void backupDatabase(String sourcePath, String backupPath) throws Exception {
|
||||||
|
// 加载SQLite JDBC驱动
|
||||||
|
Class.forName("org.sqlite.JDBC");
|
||||||
|
|
||||||
|
// 建立到源数据库的连接
|
||||||
|
Connection sourceConnection = DriverManager.getConnection("jdbc:sqlite:" + sourcePath);
|
||||||
|
|
||||||
|
// 打开源数据库的"读写"连接
|
||||||
|
Statement statement = sourceConnection.createStatement();
|
||||||
|
|
||||||
|
// 创建备份文件
|
||||||
|
File backupFile = new File(backupPath);
|
||||||
|
if (backupFile.exists()) {
|
||||||
|
backupFile.delete();
|
||||||
|
}
|
||||||
|
backupFile.createNewFile();
|
||||||
|
|
||||||
|
// 执行数据库备份命令
|
||||||
|
statement.executeQuery("VACUUM"); // SQLITE自带的备份命令
|
||||||
|
statement.executeQuery("ATTACH DATABASE '" + backupPath + "' AS backup_db");
|
||||||
|
statement.executeQuery("BACKUP DATABASE TO backup_db");
|
||||||
|
statement.executeQuery("DETACH DATABASE backup_db");
|
||||||
|
|
||||||
|
// 关闭连接
|
||||||
|
statement.close();
|
||||||
|
sourceConnection.close();
|
||||||
|
}
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String uuid = UuidUtil.getUuid();
|
||||||
|
String sqlitePath = PathUtil.webPathSqlite+ "identifier.sqlite";
|
||||||
|
LogUtil.WriteLog_BackupSqlite("[uuid:" + uuid + "]-开始备份sqlite文件" + sqlitePath, "SqliteBackupsServiceImpl");
|
||||||
|
String sqliteBackupsPath = PathUtil.backUpPath+"/sqliteBackups/";
|
||||||
|
FileUtil.fileCreat(sqliteBackupsPath);
|
||||||
|
|
||||||
|
// 执行备份
|
||||||
|
try {
|
||||||
|
SqliteUtil.backupDatabase(sqlitePath, sqliteBackupsPath+"identifier.sqlite");
|
||||||
|
} catch (Exception e) {
|
||||||
|
LogUtil.WriteLog_Error("[uuid:" + uuid + "]-备份sqlite失败" +e.getMessage()+ e, "SqliteBackupsServiceImpl");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
LogUtil.WriteLog_BackupSqlite("[uuid:" + uuid + "]-备份sqlite到目录" + sqliteBackupsPath+"identifier.sqlite", "SqliteBackupsServiceImpl");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue