优化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