gaoshuguang 1 year ago
parent 8b97cbac7c
commit e054334e04

@ -4,7 +4,7 @@
<inspection_tool class="AlibabaVarargsParameter" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<Languages>
<language minSize="202" name="Java" />
<language minSize="836" name="Java" />
</Languages>
</inspection_tool>
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">

@ -0,0 +1,115 @@
package com.nmgs.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author: shuguang
* @date: 20240618 17:02
* @description:
*/
public class DataTableComparisonTest {
public static void main(String[] args) {
// 数据库连接信息
String db1Url = "jdbc:oracle:thin:@10.15.100.5:1521/TORCL";
String db2Url = "jdbc:oracle:thin:@10.15.100.5:1521/TORCL";
String username = "nmgmpayadmin";
String password = "nmgh90[]";
String username2 = "nmghlbeadmin";
String password2 = "nmlwzx2021[]";
// SQL查询语句
//String query = "SELECT SPLITDATE,PROCESSTIME,AMOUNT,TRANSACTIONCOUNT,BASICFILENAME FROM CT_ETC_CLEAR_SUM WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME ";
//String query = "SELECT SERPROVINCEID,CLEARDATE,PROCESSTIME,PAYERAMOUNT,PAYERMESSAGECOUNT,RECEIVERAMOUNT FROM CT_OTHER_CLEAR_SUM_1 WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME ";
//String query = "SELECT count(*) FROM CT_GANTRYPASSID WHERE EXTIME>=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ";
//String query = "SELECT ID,SPLITTIME,EXTIME FROM CT_OUT_PORT_ETC_NOPAY WHERE EXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME";
//String query = "SELECT ID,SPLITTIME,ENTIME FROM CT_OTHER_OUT_PORT WHERE ENTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and ENTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME";
//String query = "SELECT ID,SPLITTIME FROM CT_OTHER_GANTRYPASSID WHERE SPLITTIME>=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID " ;
//String query = "SELECT ID,SPLITTIME FROM CT_OUTOTHER_GANTRY WHERE SPLITTIME>=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID " ;
String query = "SELECT ID,REFUNDID,PROCESSTIME FROM CT_SERVERREFUND_TABLE WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//304 ID长度不一致 0114012399230100003730202404221452502024
//0114012399230100003730202404221452502024061609034300202
//String query = "SELECT ID,RESTITUTIONID,PROCESSTIME FROM CT_SERVERLATERPAY_TABLE WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT PASSID,VEHICLEID,RECEIVERID,PAYERID,FEE,RECEIVETIME FROM CT_GATHERDETAIL_TABLE WHERE RECEIVETIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and RECEIVETIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PASSID" ;
//String query = "SELECT PASSID,VEHICLEID,ORIGIN,PAYERID,PAYFEE,PAYTIME FROM CT_PAYERDETAIL_TABLE WHERE PAYTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PAYTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PASSID" ;
//String query = "SELECT CHECKID FROM CHECKRESULT_INFO_TABLE WHERE CHECKTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and CHECKTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY CHECKID" ;
//String query = "SELECT CHECKID,VEHICLEID,CHECKTIME FROM CHECKRESULT_TABLE_NEW WHERE CHECKTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and CHECKTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY CHECKID" ;
//String query = "SELECT ID,EXTIME FROM BSDZ_DISPUTE_PASSPROV WHERE EXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT SPLITDATE,SERPROVINCEID FROM BSDZ_CLEAR_SUM WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY SPLITDATE" ;
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_S2_DOWN WHERE PROVEXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_S2_DOWN WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,EXTIME FROM BSDZ_DISPUTE_EXPROV WHERE EXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_S3_DOWN WHERE PROVEXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_RESULT WHERE PROVEXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_S3_DOWN WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_RESULT WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
// 连接数据库并获取数据
List<Map<String, Object>> dataFromDb1 = fetchData(db1Url, query, username, password);
List<Map<String, Object>> dataFromDb2 = fetchData(db2Url, query, username2, password2);
// 比较数据
boolean areEqual = areListsEqual(dataFromDb1, dataFromDb2);
System.out.println("数据是否一致: " + areEqual);
}
private static List<Map<String, Object>> fetchData(String url, String query, String user, String password) {
List<Map<String, Object>> dataList = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query)) {
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
while (rs.next()) {
Map<String, Object> row = new HashMap<>();
for (int i = 1; i <= columnCount; i++) {
row.put(metaData.getColumnName(i), rs.getObject(i));
}
dataList.add(row);
}
} catch (SQLException e) {
e.printStackTrace();
}
return dataList;
}
public static boolean areListsEqual(List<Map<String, Object>> list1, List<Map<String, Object>> list2) {
if (list1.size() != list2.size()) {
return false;
}
// 对列表中的Map进行排序
list1.sort(Comparator.comparing(Map::toString));
list2.sort(Comparator.comparing(Map::toString));
for (int i = 0; i < list1.size(); i++) {
Map<String, Object> map1 = list1.get(i);
Map<String, Object> map2 = list2.get(i);
if (!map1.equals(map2) || !map2.equals(map1)) {
return false;
}
}
return true;
}
}

@ -0,0 +1,61 @@
package com.nmgs.test;
import com.nmgs.util.BatchUtil;
import com.nmgs.util.DBUtil;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class sta_test {
public static void main(String[] args) throws Exception {
final boolean[] result = {true};
String sql="select * from nmglwadmin.acarno_test where ishand=0 and rownum<=10000";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='冀B7093Q'";
JdbcTemplate jdbcTemplate = new JdbcTemplate(new DBUtil().Hikar_DataSource_MPAY());
//while (true){
long startAll = System.currentTimeMillis();
for (int j = 0; j < 20; j++) {
try {
long start = System.currentTimeMillis();
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
if (list.size() > 0) {
//int poolSize = Runtime.getRuntime().availableProcessors();
ExecutorService executorService = Executors.newFixedThreadPool(20);
// 将数据分成20份
int batchSize = list.size() / 20;
for (int i = 0; i < 20; i++) {
int startIndex = i * batchSize;
int endIndex = (i + 1) * batchSize;
if (i == 19) {
endIndex = list.size(); // 最后一份可能包含更多的数据
}
List<Map<String, Object>> subList = list.subList(startIndex, endIndex);
BatchUtil task = new BatchUtil(jdbcTemplate, subList);
executorService.submit(task);
}
// 关闭线程池
// 关闭线程池,尝试停止所有正在执行的任务
executorService.shutdown();
// 等待所有任务完成,设置合理的超时时间
executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
}
long end = System.currentTimeMillis();
System.out.println("单次多线程处理耗时:"+(end-start)+"毫秒");
} catch (Exception e) {
System.out.println("程序错误:" + e.getMessage());
}
}
long endAll = System.currentTimeMillis();
System.out.println("多线程处理总耗时:"+(endAll-startAll)+"毫秒");
}
}

@ -0,0 +1,204 @@
package com.nmgs.test;
import com.nmgs.util.DBUtil;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
public class sta_test1 {
public static void main(String[] args) throws Exception {
final boolean[] result = {true};
//String sql = "select * from nmglwadmin.acarno_test where ishand=0 and rownum<=1";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='冀B7093Q'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='京AVG258'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='蒙J62539'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='冀J9B209'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='蒙JJ7429'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='晋BF7470'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='京KMG113'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='蒙M69059'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='蒙L97259'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='蒙B98570'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='晋BV8185'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='宁B98580'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='蒙BA6198'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='宁B97955'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='蒙B80868'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='陕KM6974'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='晋BH9181'";
//String sql = "select * from nmglwadmin.acarno_test where ACARNO='蒙BA8355'";
String sql = "select * from nmglwadmin.acarno_test where ACARNO='黑MD3390'";
JdbcTemplate jdbcTemplate = new JdbcTemplate(new DBUtil().Hikar_DataSource_MPAY());
//while (true){
try {
long start = System.currentTimeMillis();
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
if (list.size() > 0) {
for (Map<String, Object> map : list) {
String acarno = map.get("ACARNO").toString();
System.out.println("处理车牌:" + acarno);
String sql_data = "select a.listno, a.istano,b.num inum,substr(b.gbstationid,0,5) iline,a.stano,c.num num,substr(c.gbstationid,0,5) line,a.tmiles,C from nmggtadmin.out_port_hc_xd5 a left join NAME_TABLE_NUM_XD b on a.istano=b.stano left join NAME_TABLE_NUM_XD c on a.stano=c.stano where acarno='" + acarno + "' order by dt";
List<Map<String, Object>> list_data = jdbcTemplate.queryForList(sql_data);
if (list_data.size() > 0) {
if (list_data.size() == 1) {
Map map_data = list_data.get(0);
String listno = map_data.get("LISTNO").toString();
int istano = Integer.valueOf(map_data.get("ISTANO").toString());
jdbcTemplate.update("update nmggtadmin.out_port_hc_xd5 set A=1,B=0,C=" + istano + ",D=" + Integer.valueOf(map_data.get("TMILES").toString()) + " where listno='" + listno + "'");
} else {
int A = 0;
int B = 0;
int C = 0;
int D1 = 0;
int D2 = 0;
for (int i = 0; i < list_data.size() - 1; i++) {
Map map_data1 = list_data.get(i);
String listno1 = map_data1.get("LISTNO").toString();
int istano1 = Integer.valueOf(map_data1.get("ISTANO").toString());
int inum1 = Integer.valueOf(map_data1.get("INUM").toString());
String iline1 = map_data1.get("ILINE").toString();
int stano1 = Integer.valueOf(map_data1.get("STANO").toString());
int num1 = Integer.valueOf(map_data1.get("NUM").toString());
String line1 = map_data1.get("LINE").toString();
int tmiles1 = Integer.valueOf(map_data1.get("TMILES").toString());
C = istano1;
int direct1 = 0;
if (istano1 != stano1) {
direct1 = num1 - inum1;
}
Map map_data2 = list_data.get(i + 1);
String listno2 = map_data2.get("LISTNO").toString();
int istano2 = Integer.valueOf(map_data2.get("ISTANO").toString());
int inum2 = Integer.valueOf(map_data2.get("INUM").toString());
String iline2 = map_data2.get("ILINE").toString();
int stano2 = Integer.valueOf(map_data2.get("STANO").toString());
int num2 = Integer.valueOf(map_data2.get("NUM").toString());
String line2 = map_data2.get("LINE").toString();
int tmiles2 = Integer.valueOf(map_data2.get("TMILES").toString());
int direct2 = 0;
if (istano2 != stano2) {
direct2 = num2 - inum2;
}
int direct3 = 0;
int num3 = 0;
int inum3 = 0;
int istano3 = 0;
int stano3 = 0;
int tmiles3=0;
int C3=0;
if (i >= 1) {
Map map_data3 = list_data.get(i - 1);
inum3 = Integer.valueOf(map_data3.get("INUM").toString());
istano3 = Integer.valueOf(map_data3.get("ISTANO").toString());
stano3 = Integer.valueOf(map_data3.get("STANO").toString());
num3 = Integer.valueOf(map_data3.get("NUM").toString());
tmiles3 = Integer.valueOf(map_data3.get("TMILES").toString());
if (istano3 != stano3) {
direct3 = num3 - inum3;
}
C3=Integer.valueOf(map_data3.get("C").toString());
C=C3;
}
if (istano3 == stano1) {//第二趟行程的入口是否是上一趟行程的出口
B=1;
}else {
B=0;
}
boolean b = (direct1 > 0 && direct3 < 0)
|| (direct1 < 0 && direct3 > 0)
//|| (direct1 > 0 && direct3 > 0 && num1 >= inum3 )
//
|| ((inum3 != 0) && ((direct1 > 0 && direct3 > 0) ||(direct1 <0 && direct3 < 0)) && (inum1 > num3))
|| (i>1 &&inum1==num1)
||(i>1 && direct3==0 )
// || (inum3 != 0 && inum1 == inum3)
//|| (num3 != 0 && inum1 == num3)
//|| ( inum3 != 0 && inum1 > num3 )
;
boolean b1 = (direct1 > 0 && direct2 < 0) || (direct1 < 0 && direct2 > 0)
|| (inum2 != 0 && ((direct1 > 0 && direct2 > 0) ||(direct1 <0 && direct2 < 0)) && inum2 > num1)
|| (i>1 &&inum2==num2)
||(i>1 && direct2==0 )
//|| inum2 > num1
//|| inum2 == inum1
//|| (num2 != 0 && inum1 == num2 )
;
//if (direct1 != 0 &&( direct2 != 0 || direct3 != 0)) {
if (i == list_data.size() - 2) {
//代表方向不同
if (b) {
//if ((direct1>0 && direct2<0) || (direct1<0 && direct2>0) ){//代表方向不同
//如果循环到倒数第二条此时最后一条跟倒数第二条方向不一致此时需把最后一条也更新update两个listno
A++;
C=istano1;
D1=tmiles1;
}else {
D1=tmiles1+tmiles3;
}
jdbcTemplate.update("update nmggtadmin.out_port_hc_xd5 set A=" + A +",B=" + B + ",C=" + C + ",D=" + D1 + " where listno='" + listno1 + "'");
if (b1) {
A++;
C=istano2;
D2 = tmiles2;
}else {
D2 = tmiles1+tmiles2;
}
if (istano2 == stano1) {
B=1;
}else {
B=0;
}
jdbcTemplate.update("update nmggtadmin.out_port_hc_xd5 set A=" + A +",B=" + B + ",C=" + C + ",D=" + D2 + " where listno='" + listno2 + "'");
} else {
if (b) {//代表方向不同
//如果循环到倒数第二条此时最后一条跟倒数第二条方向不一致此时需把最后一条也更新update两个listno
A++;
C=istano1;
D1=tmiles1;
} else {
D1=tmiles1+tmiles3;
}
jdbcTemplate.update("update nmggtadmin.out_port_hc_xd5 set A=" + A +",B=" + B + ",C=" + C + ",D=" + D1 + " where listno='" + listno1 + "'");
}
}
}
}
jdbcTemplate.update("update nmglwadmin.acarno_test set ishand=1 where acarno='" + acarno + "'");
}
}
long end = System.currentTimeMillis();
System.out.println("单次耗时:" + (end - start) + "毫秒");
} catch (Exception e) {
System.out.println("程序错误:" + e.getMessage());
}
//}
}
}

@ -0,0 +1,179 @@
package com.nmgs.util;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
/**
* @author: shuguang
* @date: 20240619 15:53
* @description:
*/
public class BatchUtil implements Runnable{
private JdbcTemplate jdbcTemplate;
private List<Map<String, Object>> list;
public BatchUtil(JdbcTemplate jdbcTemplate, List<Map<String, Object>> list) {
this.jdbcTemplate = jdbcTemplate;
this.list = list;
}
@Override
public void run() {
if (list.size() > 0) {
for (Map<String, Object> map : list) {
String acarno = map.get("ACARNO").toString();
System.out.println("处理车牌:" + acarno);
String sql_data = "select a.listno, a.istano,b.num inum,substr(b.gbstationid,0,5) iline,a.stano,c.num num,substr(c.gbstationid,0,5) line,a.tmiles,C from nmggtadmin.out_port_hc_xd5 a left join NAME_TABLE_NUM_XD b on a.istano=b.stano left join NAME_TABLE_NUM_XD c on a.stano=c.stano where acarno='" + acarno + "' order by dt";
List<Map<String, Object>> list_data = jdbcTemplate.queryForList(sql_data);
if (list_data.size() > 0) {
if (list_data.size() == 1) {
Map map_data = list_data.get(0);
String listno = map_data.get("LISTNO").toString();
int istano = Integer.valueOf(map_data.get("ISTANO").toString());
jdbcTemplate.update("update nmggtadmin.out_port_hc_xd5 set A=1,B=0,C=" + istano + ",D=" + Integer.valueOf(map_data.get("TMILES").toString()) + " where listno='" + listno + "'");
} else {
int A = 0;
int B = 0;
int C = 0;
int D1 = 0;
int D2 = 0;
for (int i = 0; i < list_data.size() - 1; i++) {
Map map_data1 = list_data.get(i);
String listno1 = map_data1.get("LISTNO").toString();
int istano1 = Integer.valueOf(map_data1.get("ISTANO").toString());
int inum1 = Integer.valueOf(map_data1.get("INUM").toString());
String iline1 = map_data1.get("ILINE").toString();
int stano1 = Integer.valueOf(map_data1.get("STANO").toString());
int num1 = Integer.valueOf(map_data1.get("NUM").toString());
String line1 = map_data1.get("LINE").toString();
int tmiles1 = Integer.valueOf(map_data1.get("TMILES").toString());
C = istano1;
int direct1 = 0;
if (istano1 != stano1) {
direct1 = num1 - inum1;
}
Map map_data2 = list_data.get(i + 1);
String listno2 = map_data2.get("LISTNO").toString();
int istano2 = Integer.valueOf(map_data2.get("ISTANO").toString());
int inum2 = Integer.valueOf(map_data2.get("INUM").toString());
String iline2 = map_data2.get("ILINE").toString();
int stano2 = Integer.valueOf(map_data2.get("STANO").toString());
int num2 = Integer.valueOf(map_data2.get("NUM").toString());
String line2 = map_data2.get("LINE").toString();
int tmiles2 = Integer.valueOf(map_data2.get("TMILES").toString());
int direct2 = 0;
if (istano2 != stano2) {
direct2 = num2 - inum2;
}
int direct3 = 0;
int num3 = 0;
int inum3 = 0;
int istano3 = 0;
int stano3 = 0;
int tmiles3=0;
int C3=0;
if (i >= 1) {
Map map_data3 = list_data.get(i - 1);
inum3 = Integer.valueOf(map_data3.get("INUM").toString());
istano3 = Integer.valueOf(map_data3.get("ISTANO").toString());
stano3 = Integer.valueOf(map_data3.get("STANO").toString());
num3 = Integer.valueOf(map_data3.get("NUM").toString());
tmiles3 = Integer.valueOf(map_data3.get("TMILES").toString());
if (istano3 != stano3) {
direct3 = num3 - inum3;
}
C3=Integer.valueOf(map_data3.get("C").toString());
C=C3;
}
if (istano3 == stano1) {//第二趟行程的入口是否是上一趟行程的出口
B=1;
}else {
B=0;
}
boolean b = (direct1 > 0 && direct3 < 0)
|| (direct1 < 0 && direct3 > 0)
//|| (direct1 > 0 && direct3 > 0 && num1 >= inum3 )
//
|| ((inum3 != 0) && ((direct1 > 0 && direct3 > 0) ||(direct1 <0 && direct3 < 0)) && (inum1 > num3))
|| (i>1 &&inum1==num1)
||(i>1 && direct3==0 )
// || (inum3 != 0 && inum1 == inum3)
//|| (num3 != 0 && inum1 == num3)
//|| ( inum3 != 0 && inum1 > num3 )
;
boolean b1 = (direct1 > 0 && direct2 < 0) || (direct1 < 0 && direct2 > 0)
|| (inum2 != 0 && ((direct1 > 0 && direct2 > 0) ||(direct1 <0 && direct2 < 0)) && inum2 > num1)
|| (i>1 &&inum2==num2)
||(i>1 && direct2==0 )
//|| inum2 > num1
//|| inum2 == inum1
//|| (num2 != 0 && inum1 == num2 )
;
//if (direct1 != 0 &&( direct2 != 0 || direct3 != 0)) {
if (i == list_data.size() - 2) {
//代表方向不同
if (b) {
//if ((direct1>0 && direct2<0) || (direct1<0 && direct2>0) ){//代表方向不同
//如果循环到倒数第二条此时最后一条跟倒数第二条方向不一致此时需把最后一条也更新update两个listno
A++;
C=istano1;
D1=tmiles1;
}else {
D1=tmiles1+tmiles3;
}
jdbcTemplate.update("update nmggtadmin.out_port_hc_xd5 set A=" + A +",B=" + B + ",C=" + C + ",D=" + D1 + " where listno='" + listno1 + "'");
if (b1) {
A++;
C=istano2;
D2 = tmiles2;
}else {
D2 = tmiles1+tmiles2;
}
if (istano2 == stano1) {
B=1;
}else {
B=0;
}
jdbcTemplate.update("update nmggtadmin.out_port_hc_xd5 set A=" + A +",B=" + B + ",C=" + C + ",D=" + D2 + " where listno='" + listno2 + "'");
} else {
if (b) {//代表方向不同
//如果循环到倒数第二条此时最后一条跟倒数第二条方向不一致此时需把最后一条也更新update两个listno
A++;
C=istano1;
D1=tmiles1;
} else {
D1=tmiles1+tmiles3;
}
jdbcTemplate.update("update nmggtadmin.out_port_hc_xd5 set A=" + A +",B=" + B + ",C=" + C + ",D=" + D1 + " where listno='" + listno1 + "'");
}
}
}
}
jdbcTemplate.update("update nmglwadmin.acarno_test set ishand=1 where acarno='" + acarno + "'");
}
}
}
}

@ -0,0 +1,123 @@
package com.nmgs.util;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import javax.sql.DataSource;
public class DBUtil {
public DataSource Hikar_DataSource_NMGGS() throws Exception{
HikariConfig config=new HikariConfig();
try {
config.setDriverClassName("oracle.jdbc.driver.OracleDriver");
config.setJdbcUrl("jdbc:oracle:thin:@//10.15.0.11:1521/orcl");
config.setUsername("nmggs");
config.setPoolName("nmggs");
config.setPassword("sysadmin");
config.addDataSourceProperty("v$session.osuser","DL");
config.addDataSourceProperty("v$session.machine","10.15.0.36");
config.addDataSourceProperty("v$session.program","DIV_SEC");
config.setMaximumPoolSize(10);
config.setMinimumIdle(2);
config.setConnectionTestQuery("select 1 from dual");
config.setAutoCommit(true);
}
catch (Exception e){
System.out.println("连接池错误:"+e.toString());
}
DataSource ds=new HikariDataSource(config);
return ds;
}
public DataSource Hikar_DataSource_JTJT() throws Exception{
HikariConfig config=new HikariConfig();
try {
config.setDriverClassName("oracle.jdbc.driver.OracleDriver");
config.setJdbcUrl("jdbc:oracle:thin:@//10.15.0.12:1521/orcl");
config.setUsername("nmgjtjt");
config.setPoolName("nmgjtjt");
config.setPassword("sysadmin");
config.addDataSourceProperty("v$session.osuser","DL");
config.addDataSourceProperty("v$session.machine","10.15.0.13");
config.addDataSourceProperty("v$session.program","DIV_SEC");
config.setMaximumPoolSize(10);
config.setMinimumIdle(2);
config.setConnectionTestQuery("select 1 from dual");
config.setAutoCommit(true);
}
catch (Exception e){
System.out.println("连接池错误:"+e.toString());
}
DataSource ds=new HikariDataSource(config);
return ds;
}
public DataSource Hikar_DataSource_MPAY() throws Exception{
HikariConfig config=new HikariConfig();
try {
config.setDriverClassName("oracle.jdbc.driver.OracleDriver");
config.setJdbcUrl("jdbc:oracle:thin:@//10.15.100.5:1521/torcl");
config.setUsername("nmgmpayadmin");
config.setPoolName("nmggs");
config.setPassword("nmgh90[]");
config.addDataSourceProperty("v$session.osuser","DL");
config.addDataSourceProperty("v$session.machine","10.15.0.36");
config.addDataSourceProperty("v$session.program","DIV_SEC");
config.setMaximumPoolSize(10);
config.setMinimumIdle(2);
config.setConnectionTestQuery("select 1 from dual");
config.setAutoCommit(true);
}
catch (Exception e){
System.out.println("连接池错误:"+e.toString());
}
DataSource ds=new HikariDataSource(config);
return ds;
}
public DataSource Hikar_DataSource_GT() throws Exception{
HikariConfig config=new HikariConfig();
try {
config.setDriverClassName("oracle.jdbc.driver.OracleDriver");
config.setJdbcUrl("jdbc:oracle:thin:@//10.15.100.5:1521/torcl");
config.setUsername("nmggtadmin");
config.setPoolName("nmggs");
config.setPassword("nmgh90[]");
config.addDataSourceProperty("v$session.osuser","DL");
config.addDataSourceProperty("v$session.machine","10.15.0.36");
config.addDataSourceProperty("v$session.program","DIV_SEC");
config.setMaximumPoolSize(10);
config.setMinimumIdle(2);
config.setConnectionTestQuery("select 1 from dual");
config.setAutoCommit(true);
}
catch (Exception e){
System.out.println("连接池错误:"+e.toString());
}
DataSource ds=new HikariDataSource(config);
return ds;
}
public DataSource Hikar_DataSource_216() throws Exception{
HikariConfig config=new HikariConfig();
try {
config.setDriverClassName("oracle.jdbc.OracleDriver");
config.setJdbcUrl("jdbc:oracle:thin:@//10.15.100.216:1521/torclhis");
config.setUsername("transfer");
config.setPoolName("216");
config.setPassword("trans2020");
config.setMaximumPoolSize(3);
config.setMinimumIdle(2);
config.setConnectionTestQuery("select 1 from dual");
config.setAutoCommit(true);
}
catch (Exception e){
System.out.println("连接池错误:"+e.toString());
}
DataSource ds=new HikariDataSource(config);
return ds;
}
}
Loading…
Cancel
Save