|
|
|
|
@ -0,0 +1,702 @@
|
|
|
|
|
package com.nmgs.service.impl;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.nmgs.mapper.Mapper;
|
|
|
|
|
import com.nmgs.util.LogUtil;
|
|
|
|
|
import com.nmgs.util.PropertiesUtil;
|
|
|
|
|
import com.nmgs.util.PubTools;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
public class DivOutPortDroadaImpl {
|
|
|
|
|
@Autowired
|
|
|
|
|
public Mapper mapperI;
|
|
|
|
|
|
|
|
|
|
public List getDivDataTableList(String classDate, String queryFilter, Integer start, Integer end,
|
|
|
|
|
JSONArray whereParams) {
|
|
|
|
|
List list=new ArrayList();
|
|
|
|
|
List listRet=new ArrayList();
|
|
|
|
|
String sql="";
|
|
|
|
|
String dbType = PropertiesUtil.getValue("DBType");
|
|
|
|
|
String startsql = "SELECT \n" +
|
|
|
|
|
"\tss.rn,\n" +
|
|
|
|
|
"\tss.ID,\n" +
|
|
|
|
|
"\tss.PASSID,\n" +
|
|
|
|
|
"\t ss.PAYFEE AS PAYFEE,\n" +
|
|
|
|
|
"\tss.FEE AS FEE,\n" +
|
|
|
|
|
"\tss.DISCOUNTFEE,\n" +
|
|
|
|
|
"\tss.SPLITFEE AS SPLITFEE,\n" +
|
|
|
|
|
"\tss.CLEARDATE,\n" +
|
|
|
|
|
"\tss.ENTIME,\n" +
|
|
|
|
|
"\tss.EXTIME,\n" +
|
|
|
|
|
"\tss.ENTOLLSTATIONNAME,\n" +
|
|
|
|
|
"\tss.EXTOLLSTATIONNAME,\n" +
|
|
|
|
|
"\tss.ENPOINTID,\n" +
|
|
|
|
|
"\tss.EXPOINTID,\n" +
|
|
|
|
|
"\tss.VEHICLEID ,\n" +
|
|
|
|
|
"\tss.SPLITPROVINCE,\n" +
|
|
|
|
|
"\tss.DIVDATE,\n" +
|
|
|
|
|
"\tss.RESULT,\n" +
|
|
|
|
|
"\tss.DIVDETAIL,\n" +
|
|
|
|
|
"\tss.VEHICLECLASS,\n" +
|
|
|
|
|
"\tss.DROADNO,\n" +
|
|
|
|
|
"\tss.DROADFEE,\n" +
|
|
|
|
|
"\trt.ROADNAME,\n" +
|
|
|
|
|
"\tttd.text AS VEHICLETYPENAME,\n" +
|
|
|
|
|
"\tvt.text as VEHICLECLASSName,\n" +
|
|
|
|
|
"\td2.TEXT AS EXITFEETYPENAME,\n" +
|
|
|
|
|
"\tss.VEHICLETYPE ";
|
|
|
|
|
String startsqlPage = "SELECT ";
|
|
|
|
|
if ("2".equals(dbType)) {
|
|
|
|
|
startsqlPage += "\tROWNUM AS rn,\n";
|
|
|
|
|
} else {
|
|
|
|
|
startsqlPage += "\t (row_number() over(partition by t.classdate))-1 AS rn,\n";
|
|
|
|
|
}
|
|
|
|
|
startsqlPage += "\tt.ID,\n" +
|
|
|
|
|
"\tt.TOLLPROVINCEID,\n" +
|
|
|
|
|
"\tt.PASSID,\n" +
|
|
|
|
|
"\t t.PAYFEE/100 AS PAYFEE,\n" +
|
|
|
|
|
"\t t.FEE/100 AS FEE,\n" +
|
|
|
|
|
"\t t.DISCOUNTFEE/100 AS DISCOUNTFEE,\n" +
|
|
|
|
|
"\tt.SPLITFEE/100 AS SPLITFEE,\n" +
|
|
|
|
|
"\tt.ENTIME,\n" +
|
|
|
|
|
"\tt.EXTIME,\n" +
|
|
|
|
|
"\tt.ENTOLLSTATIONNAME,\n" +
|
|
|
|
|
"\tt.EXTOLLSTATIONNAME,\n" +
|
|
|
|
|
"\tt.ENPOINTID,\n" +
|
|
|
|
|
"\tt.EXPOINTID,\n" +
|
|
|
|
|
"\tt.EXITFEETYPE,\n" +
|
|
|
|
|
"\tto_char(t.SPLITPROVINCE) AS SPLITPROVINCE,\n" +
|
|
|
|
|
"\tt.CLEARDATE,\n" +
|
|
|
|
|
"\tt.DIVDATE,\n" +
|
|
|
|
|
"\tt.RESULT,\n" +
|
|
|
|
|
"\tto_char(t.DIVDETAIL) AS DIVDETAIL,\n" +
|
|
|
|
|
"\t CONCAT(substr( t.VEHICLEID, 1, length(t.VEHICLEID)-1),pt.TEXT) as VEHICLEID,\n" +
|
|
|
|
|
"\tt.VEHICLECLASS,\n" +
|
|
|
|
|
"\tt.DROADNO,\n" +
|
|
|
|
|
"\tt.DROADFEE/100 AS DROADFEE,\n" +
|
|
|
|
|
"\tt.VEHICLETYPE AS VEHICLETYPE";
|
|
|
|
|
|
|
|
|
|
String mysqlResult = "select\n" +
|
|
|
|
|
"\t\t\t(row_number() over(partition by t.CLEARDATE))-1 as rn,\n" +
|
|
|
|
|
"\t\t\tt.ID,\n" +
|
|
|
|
|
"\t\t\tt.PASSID,\n" +
|
|
|
|
|
"\t\t\tt.TOLLPROVINCEID as TOLLPROVINCEID,\n" +
|
|
|
|
|
"\t\t\tt.PAYFEE/100 as PAYFEE,\n" +
|
|
|
|
|
"\t\t\tt.FEE/100 AS FEE,\n" +
|
|
|
|
|
"\t\t\tt.DISCOUNTFEE/100 as DISCOUNTFEE,\n" +
|
|
|
|
|
"\t\t\tto_char(t.DIVDETAIL) AS DIVDETAIL,\n" +
|
|
|
|
|
"\t\t\tto_char(t.SPLITPROVINCE) AS SPLITPROVINCE,\n" +
|
|
|
|
|
"\t\t\tt.CLEARDATE,\n" +
|
|
|
|
|
"\t\t\tt.ENTIME,\n" +
|
|
|
|
|
"\t\t\tt.EXTIME,\n" +
|
|
|
|
|
"\t\t\tt.ENTOLLSTATIONNAME,\n" +
|
|
|
|
|
"\t\t\tt.EXTOLLSTATIONNAME,\n" +
|
|
|
|
|
"\t\t\tt.ENPOINTID,\n" +
|
|
|
|
|
"\t\t\tt.EXPOINTID,\n" +
|
|
|
|
|
"\t\t\tCONCAT(substr( t.VEHICLEID, 1, length(t.VEHICLEID)-1), pt.TEXT) as VEHICLEID,\n" +
|
|
|
|
|
"\t\t\tt.VEHICLECLASS,\n" +
|
|
|
|
|
"\t\t\tt.VEHICLETYPE as VEHICLETYPE,\n" +
|
|
|
|
|
"\t\t\tttd.text as VEHICLETYPENAME,\n" +
|
|
|
|
|
"\t\t\tvt.text as VEHICLECLASSName,\n" +
|
|
|
|
|
"\t\t\tt.DIVDATE ,\n" +
|
|
|
|
|
"\t\t\tt.RESULT as RESULT,\n" +
|
|
|
|
|
"\t\t\tt.DROADNO as DROADNO,\n" +
|
|
|
|
|
"\trt.ROADNAME,\n" +
|
|
|
|
|
"\t\t\tt.DROADFEE/100 as DROADFEE,\n" +
|
|
|
|
|
"\t\t\td2.TEXT as EXITFEETYPENAME";
|
|
|
|
|
String endSql=" FROM\n" +
|
|
|
|
|
" DIV_OUT_PORT_DROAD t left join PLATECOLOR_TEXT pt on(pt.value = substr( t.VEHICLEID, length(t.VEHICLEID))) @JOINCONDITION@" +
|
|
|
|
|
"WHERE 1=1 \n";
|
|
|
|
|
if (!PubTools.isNull(classDate)) {
|
|
|
|
|
endSql += "\t AND t.CLEARDATE = to_date( '" + classDate + "', 'yyyy-mm-dd' ) \n";
|
|
|
|
|
}
|
|
|
|
|
try{
|
|
|
|
|
if(whereParams.size()>0){
|
|
|
|
|
endSql += solveSearchJSOn(whereParams, queryFilter);
|
|
|
|
|
}
|
|
|
|
|
if(start >=0 && end >0){
|
|
|
|
|
if ("2".equals(dbType)) {//oracle
|
|
|
|
|
sql = startsql + " from (" + startsqlPage + endSql + " and ROWNUM <= " + end + ")ss " ;
|
|
|
|
|
sql += " LEFT JOIN VEHICLECLASS_TEXT vt ON ( ss.VEHICLECLASS = vt.value ) " +
|
|
|
|
|
" LEFT JOIN type_text ttd ON ( ss.VEHICLETYPE = ttd.value ) " +
|
|
|
|
|
" left join exitfeetype_text d2 on(ss.exitfeetype = d2.value)" +
|
|
|
|
|
" left join ROAD_TABLE rt on(ss.DROADNO = rt.ROADNO)" +
|
|
|
|
|
" where ss.rn >= " + start+" order by ss.rn ";
|
|
|
|
|
sql = sql.replace("@JOINCONDITION@", "");
|
|
|
|
|
} else {
|
|
|
|
|
sql = mysqlResult + endSql + " order by rt.ROADNAME limit " + start + "," + end + " ";
|
|
|
|
|
String joinCondition = " LEFT JOIN VEHICLECLASS_TEXT vt ON ( ss.VEHICLECLASS = vt.value ) " +
|
|
|
|
|
" LEFT JOIN type_text ttd ON ( ss.VEHICLETYPE = ttd.value ) " +
|
|
|
|
|
" left join exitfeetype_text d2 on(ss.exitfeetype = d2.value)"+
|
|
|
|
|
" left join ROAD_TABLE rt on(ss.DROADNO = rt.ROADNO)" ;
|
|
|
|
|
sql = sql.replace("@JOINCONDITION@", joinCondition);
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
endSql = endSql.replace("@JOINCONDITION@", "");
|
|
|
|
|
sql = " select count(1) as TOTALCOUNT " + endSql;
|
|
|
|
|
}
|
|
|
|
|
LogUtil.WriteLog_Info("sql===执行开始"+PubTools.getCurrentDate(),"DivPassDataImpl");
|
|
|
|
|
list= this.mapperI.selectforlist(sql);
|
|
|
|
|
LogUtil.WriteLog_Info("sql===执行结束"+PubTools.getCurrentDate(),"DivPassDataImpl");
|
|
|
|
|
if(list.size()>0){
|
|
|
|
|
if(PubTools.isEmpty(list.get(0))){
|
|
|
|
|
list=new ArrayList();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}catch(Exception e){
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
LogUtil.WriteLog_Error("查询数据失败==="+e.getMessage(),"DivPassDataImpl");
|
|
|
|
|
return new ArrayList();
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
public JSONObject getDivMapDataList(String gPATOLLINTERVALID,String gPAFEEGROUP,String gPAFEE,String dIVTOLLINTERVALID,String dIVFEEGROUP,String dIVFEE,String PASSID,String gPAENPOINTID,String gPAEXPOINTID) {
|
|
|
|
|
String[] mapMarker=gPATOLLINTERVALID.replace("|",",").split(",");
|
|
|
|
|
String[] mapMarkerFee=gPAFEEGROUP.replace("|",",").split(",");
|
|
|
|
|
String mapMarkerFeeMoney=gPAFEE;
|
|
|
|
|
String[] mapMarkerD=dIVTOLLINTERVALID.replace("|",",").split(",");
|
|
|
|
|
String[] mapMarkerDFee=dIVFEEGROUP.replace("|",",").split(",");
|
|
|
|
|
String mapMarkerDFeeMoney=dIVFEE;
|
|
|
|
|
JSONObject jo=new JSONObject();
|
|
|
|
|
jo.put("PASSID",PASSID);
|
|
|
|
|
List mapFEEList = new ArrayList();//展示计费数据地图数据
|
|
|
|
|
List mapDivFEEList = new ArrayList();//展示拆分数据地图数据
|
|
|
|
|
List mapList=new ArrayList();//用于展示表格数据
|
|
|
|
|
Double gpaMoneyTotal=0.0;
|
|
|
|
|
Double divMoneyTotal=0.0;
|
|
|
|
|
Double gpaLengthTotal=0.0;
|
|
|
|
|
Double divLengthTotal=0.0;
|
|
|
|
|
try{
|
|
|
|
|
String sql="select distinct (case ft.VIRTUALTYPE when 0 then nt.NAME else dt.STANAME end) as STANAME," +
|
|
|
|
|
"(case ft.VIRTUALTYPE when 0 then nt.LNG else dt.LNG end) AS LNG," +
|
|
|
|
|
"(case ft.VIRTUALTYPE when 0 then nt.LAT else dt.LAT end) AS LAT,ft.length/1000 as LENGTH," +
|
|
|
|
|
"(case ft.VIRTUALTYPE when 0 then nt.STANO else dt.STANO end) as STANO," +
|
|
|
|
|
"ft.NAME as FEEUNITNAME from \n" +
|
|
|
|
|
"FEEUNIT_TABLE ft \n" +
|
|
|
|
|
"left join GANTRY_TABLE nt on nt.TOLLINTERVALS=ft.ID AND ft.VIRTUALTYPE=0\n" +
|
|
|
|
|
"left join DIV_NAME_TABLE dt on dt.STANO=ft.OSTANO AND ft.VIRTUALTYPE=1\n" +
|
|
|
|
|
"where ft.ID='@PARAM@'";
|
|
|
|
|
if(mapMarker.length >0 && !PubTools.isNull(mapMarker[0]) && mapMarkerD.length>0 && !PubTools.isNull(mapMarkerD[0]) ){
|
|
|
|
|
JSONArray jaGPA=new JSONArray();
|
|
|
|
|
JSONArray jaDiv=new JSONArray();
|
|
|
|
|
for(int i=0;i<mapMarker.length;i++) {
|
|
|
|
|
//计费单元地图数据
|
|
|
|
|
JSONObject joT = new JSONObject();
|
|
|
|
|
//计费单元数据
|
|
|
|
|
JSONObject joGPA = new JSONObject();
|
|
|
|
|
String sqlT = sql.replace("@PARAM@", mapMarker[i].substring(0,16));
|
|
|
|
|
Map<String, Object> select1 = new HashMap<>();
|
|
|
|
|
List temp = this.mapperI.selectforlist(sqlT);
|
|
|
|
|
if (temp != null && temp.size() > 0) {
|
|
|
|
|
select1 = (Map<String, Object>) temp.get(0);
|
|
|
|
|
}
|
|
|
|
|
//查询单元名称
|
|
|
|
|
String staName = "";
|
|
|
|
|
String feeUnitName = "";//计费单元名称
|
|
|
|
|
String LNG = "";
|
|
|
|
|
String LAT = "";
|
|
|
|
|
String lengthD = "";
|
|
|
|
|
if (!PubTools.isEmpty(select1)) {
|
|
|
|
|
for (String str : select1.keySet()) {
|
|
|
|
|
if ("STANAME".equals(str)) {
|
|
|
|
|
staName = (!PubTools.isEmpty(select1.get(str)) ? select1.get(str).toString() : "");
|
|
|
|
|
} else if ("LNG".equals(str)) {
|
|
|
|
|
LNG = (!PubTools.isEmpty(select1.get(str)) ? select1.get(str).toString() : "");
|
|
|
|
|
} else if ("LAT".equals(str)) {
|
|
|
|
|
LAT = (!PubTools.isEmpty(select1.get(str)) ? select1.get(str).toString() : "");
|
|
|
|
|
} else if ("LENGTH".equals(str)) {
|
|
|
|
|
lengthD = (!PubTools.isEmpty(select1.get(str)) ? select1.get(str).toString() : "");
|
|
|
|
|
}else if ("FEEUNITNAME".equals(str)) {
|
|
|
|
|
feeUnitName = (!PubTools.isEmpty(select1.get(str)) ? select1.get(str).toString() : "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gpaMoneyTotal += Double.parseDouble(mapMarkerFee[i].toString());
|
|
|
|
|
gpaLengthTotal += Double.parseDouble(PubTools.isNull(lengthD) ? "0" : lengthD);
|
|
|
|
|
joGPA.put("feeUnitId",mapMarker[i].substring(0,16));
|
|
|
|
|
joGPA.put("gpaName",feeUnitName);
|
|
|
|
|
joGPA.put("gpaMoney", Double.parseDouble(mapMarkerFee[i].toString()) / 100);
|
|
|
|
|
joGPA.put("gpaLength",lengthD);
|
|
|
|
|
jaGPA.add(joGPA);
|
|
|
|
|
if (!PubTools.isNull(staName)) {
|
|
|
|
|
joT.put("staName", staName);
|
|
|
|
|
joT.put("LNG", LNG);//经度
|
|
|
|
|
joT.put("LAT", LAT);//纬度
|
|
|
|
|
joT.put("FEE", Double.parseDouble(mapMarkerFee[i].toString()) / 100);//金额
|
|
|
|
|
mapFEEList.add(joT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for(int k=0;k<mapMarkerD.length;k++){
|
|
|
|
|
//拆分单元地图的数据
|
|
|
|
|
JSONObject joT=new JSONObject();
|
|
|
|
|
//拆分单元数据
|
|
|
|
|
JSONObject joDiv = new JSONObject();
|
|
|
|
|
String sqlT = "";
|
|
|
|
|
if (mapMarkerD[k].length() > 16) {
|
|
|
|
|
sqlT = sql.replace("@PARAM@", mapMarkerD[k].substring(0, 16));
|
|
|
|
|
} else {
|
|
|
|
|
sqlT = sql.replace("@PARAM@", mapMarkerD[k]);
|
|
|
|
|
}
|
|
|
|
|
Map<String,Object> select1D=new HashMap<>();
|
|
|
|
|
List temp = this.mapperI.selectforlist(sqlT);
|
|
|
|
|
Map<String, Object> select1 = new HashMap<>();
|
|
|
|
|
if(temp != null && temp.size()>0){
|
|
|
|
|
select1=(Map<String,Object>)temp.get(0);
|
|
|
|
|
}else{
|
|
|
|
|
select1=new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
String staName = "";
|
|
|
|
|
String LNG = "";
|
|
|
|
|
String feeUnitName = "";//计费单元名称
|
|
|
|
|
String LAT = "";
|
|
|
|
|
String lengthD = "";
|
|
|
|
|
if(!PubTools.isEmpty(select1)){
|
|
|
|
|
for(String str:select1.keySet()){
|
|
|
|
|
if("STANAME".equals(str)){
|
|
|
|
|
staName= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if("LNG".equals(str)){
|
|
|
|
|
LNG= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if("LAT".equals(str)){
|
|
|
|
|
LAT= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if("LENGTH".equals(str)){
|
|
|
|
|
lengthD= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if ("FEEUNITNAME".equals(str)) {
|
|
|
|
|
feeUnitName = (!PubTools.isEmpty(select1.get(str)) ? select1.get(str).toString() : "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
divMoneyTotal+=Double.parseDouble(mapMarkerDFee[k].toString());
|
|
|
|
|
divLengthTotal+=Double.parseDouble(PubTools.isNull(lengthD)?"0":lengthD);
|
|
|
|
|
joDiv.put("feeUnitId",mapMarkerD[k].substring(0,16));
|
|
|
|
|
joDiv.put("divName",feeUnitName);
|
|
|
|
|
joDiv.put("divMoney", Double.parseDouble(mapMarkerDFee[k].toString()) / 100);
|
|
|
|
|
joDiv.put("divLength",lengthD);
|
|
|
|
|
jaDiv.add(joDiv);
|
|
|
|
|
if(!PubTools.isNull(staName)){
|
|
|
|
|
joT.put("staName",staName);
|
|
|
|
|
joT.put("LNG",LNG);//经度
|
|
|
|
|
joT.put("LAT",LAT);//纬度
|
|
|
|
|
joT.put("FEE", Double.parseDouble(mapMarkerDFee[k].toString()) / 100);//金额
|
|
|
|
|
mapDivFEEList.add(joT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(jaGPA.size()> jaDiv.size()){
|
|
|
|
|
for(Object divObject:jaGPA){//已计费数据为主
|
|
|
|
|
JSONObject jT=(JSONObject)divObject;
|
|
|
|
|
JSONObject table = new JSONObject();
|
|
|
|
|
table.put("PASSID", PASSID);
|
|
|
|
|
String feeUnitId= jT.getString("feeUnitId");
|
|
|
|
|
String gpaName=jT.getString("gpaName");;
|
|
|
|
|
String gpaMoney=jT.getString("gpaMoney");;
|
|
|
|
|
String gpaLength=jT.getString("gpaLength");;
|
|
|
|
|
String divName="";
|
|
|
|
|
String divMoney="";
|
|
|
|
|
String divLength="";
|
|
|
|
|
for(Object gpaObject:jaDiv){
|
|
|
|
|
JSONObject jTD=(JSONObject)gpaObject;
|
|
|
|
|
String feeUnitIdDiv= jTD.getString("feeUnitId");
|
|
|
|
|
if(feeUnitId.equals(feeUnitIdDiv)){
|
|
|
|
|
divName=jTD.getString("divName");
|
|
|
|
|
divMoney=jTD.getString("divMoney");
|
|
|
|
|
divLength=jTD.getString("divLength");
|
|
|
|
|
jaDiv.remove(gpaObject);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
table.put("gpaName", gpaName);
|
|
|
|
|
table.put("gpaMoney", gpaMoney);
|
|
|
|
|
table.put("gpaLength", gpaLength);
|
|
|
|
|
table.put("divName",divName);
|
|
|
|
|
table.put("divMoney",divMoney);
|
|
|
|
|
table.put("divLength",divLength);
|
|
|
|
|
mapList.add(table);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//没有匹配上的数据
|
|
|
|
|
if(jaDiv.size()>0){
|
|
|
|
|
for(Object gpaObject:jaDiv){
|
|
|
|
|
JSONObject table = new JSONObject();
|
|
|
|
|
table.put("PASSID", PASSID);
|
|
|
|
|
JSONObject jTD=(JSONObject)gpaObject;
|
|
|
|
|
table.put("gpaName", "");
|
|
|
|
|
table.put("gpaMoney", "");
|
|
|
|
|
table.put("gpaLength", "");
|
|
|
|
|
table.put("divName",jTD.getString("divName"));
|
|
|
|
|
table.put("divMoney",jTD.getString("divMoney"));
|
|
|
|
|
table.put("divLength",jTD.getString("divLength"));
|
|
|
|
|
mapList.add(table);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}else if(jaGPA.size()< jaDiv.size()){
|
|
|
|
|
for(Object divObject:jaDiv){//已拆分数据为主
|
|
|
|
|
JSONObject jT=(JSONObject)divObject;
|
|
|
|
|
JSONObject table = new JSONObject();
|
|
|
|
|
table.put("PASSID", PASSID);
|
|
|
|
|
String feeUnitId= jT.getString("feeUnitId");
|
|
|
|
|
String gpaName="";
|
|
|
|
|
String gpaMoney="";
|
|
|
|
|
String gpaLength="";
|
|
|
|
|
String divName=jT.getString("divName");;
|
|
|
|
|
String divMoney=jT.getString("divMoney");
|
|
|
|
|
String divLength=jT.getString("divLength");
|
|
|
|
|
for(Object gpaObject:jaGPA){
|
|
|
|
|
JSONObject jTD=(JSONObject)gpaObject;
|
|
|
|
|
String feeUnitIdDiv= jTD.getString("feeUnitId");
|
|
|
|
|
if(feeUnitId.equals(feeUnitIdDiv)){
|
|
|
|
|
gpaName=jTD.getString("gpaName");
|
|
|
|
|
gpaMoney=jTD.getString("gpaMoney");
|
|
|
|
|
gpaLength=jTD.getString("gpaLength");
|
|
|
|
|
jaGPA.remove(gpaObject);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
table.put("gpaName", gpaName);
|
|
|
|
|
table.put("gpaMoney", gpaMoney);
|
|
|
|
|
table.put("gpaLength", gpaLength);
|
|
|
|
|
table.put("divName",divName);
|
|
|
|
|
table.put("divMoney",divMoney);
|
|
|
|
|
table.put("divLength",divLength);
|
|
|
|
|
mapList.add(table);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//没有匹配上的数据
|
|
|
|
|
if(jaGPA.size()>0){
|
|
|
|
|
for(Object gpaObject:jaGPA){
|
|
|
|
|
JSONObject table = new JSONObject();
|
|
|
|
|
table.put("PASSID", PASSID);
|
|
|
|
|
JSONObject jTD=(JSONObject)gpaObject;
|
|
|
|
|
table.put("gpaName", jTD.getString("gpaName"));
|
|
|
|
|
table.put("gpaMoney", jTD.getString("gpaMoney"));
|
|
|
|
|
table.put("gpaLength", jTD.getString("gpaLength"));
|
|
|
|
|
table.put("divName","");
|
|
|
|
|
table.put("divMoney","");
|
|
|
|
|
table.put("divLength","");
|
|
|
|
|
mapList.add(table);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
for(Object divObject:jaGPA){//已拆分数据为主
|
|
|
|
|
JSONObject table = new JSONObject();
|
|
|
|
|
table.put("PASSID", PASSID);
|
|
|
|
|
JSONObject jT=(JSONObject)divObject;
|
|
|
|
|
String feeUnitId= jT.getString("feeUnitId");
|
|
|
|
|
String gpaName=jT.getString("gpaName");;
|
|
|
|
|
String gpaMoney=jT.getString("gpaMoney");;
|
|
|
|
|
String gpaLength=jT.getString("gpaLength");;
|
|
|
|
|
String divName="";
|
|
|
|
|
String divMoney="";
|
|
|
|
|
String divLength="";
|
|
|
|
|
for(Object gpaObject:jaDiv){
|
|
|
|
|
JSONObject jTD=(JSONObject)gpaObject;
|
|
|
|
|
String feeUnitIdDiv= jTD.getString("feeUnitId");
|
|
|
|
|
if(feeUnitId.equals(feeUnitIdDiv)){
|
|
|
|
|
divName=jTD.getString("divName");
|
|
|
|
|
divMoney=jTD.getString("divMoney");
|
|
|
|
|
divLength=jTD.getString("divLength");
|
|
|
|
|
jaDiv.remove(gpaObject);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
table.put("gpaName", gpaName);
|
|
|
|
|
table.put("gpaMoney", gpaMoney);
|
|
|
|
|
table.put("gpaLength", gpaLength);
|
|
|
|
|
table.put("divName",divName);
|
|
|
|
|
table.put("divMoney",divMoney);
|
|
|
|
|
table.put("divLength",divLength);
|
|
|
|
|
mapList.add(table);
|
|
|
|
|
}
|
|
|
|
|
//没有匹配上的数据
|
|
|
|
|
if(jaDiv.size()>0){
|
|
|
|
|
for(Object gpaObject:jaDiv){
|
|
|
|
|
JSONObject table = new JSONObject();
|
|
|
|
|
table.put("PASSID", PASSID);
|
|
|
|
|
JSONObject jTD=(JSONObject)gpaObject;
|
|
|
|
|
table.put("gpaName", "");
|
|
|
|
|
table.put("gpaMoney", "");
|
|
|
|
|
table.put("gpaLength", "");
|
|
|
|
|
table.put("divName",jTD.getString("divName"));
|
|
|
|
|
table.put("divMoney",jTD.getString("divMoney"));
|
|
|
|
|
table.put("divLength",jTD.getString("divLength"));
|
|
|
|
|
mapList.add(table);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}else if(mapMarker.length >0 && !PubTools.isNull(mapMarker[0]) && PubTools.isNull(mapMarkerD[0]) ){//只有计费没有拆分
|
|
|
|
|
for(int i=0;i<mapMarker.length;i++){
|
|
|
|
|
JSONObject table = new JSONObject();
|
|
|
|
|
table.put("PASSID",PASSID);
|
|
|
|
|
//计费单元数据
|
|
|
|
|
JSONObject joT=new JSONObject();
|
|
|
|
|
String sqlT = "";
|
|
|
|
|
if (mapMarker[i].length() > 16) {
|
|
|
|
|
sqlT = sql.replace("@PARAM@", mapMarker[i].substring(0, 16));
|
|
|
|
|
} else {
|
|
|
|
|
sqlT = sql.replace("@PARAM@", mapMarker[i]);
|
|
|
|
|
}
|
|
|
|
|
Map<String,Object> select1=new HashMap<>();
|
|
|
|
|
List temp = this.mapperI.selectforlist(sqlT);
|
|
|
|
|
if(temp != null && temp.size()>0){
|
|
|
|
|
select1=(Map<String,Object>)temp.get(0);
|
|
|
|
|
}
|
|
|
|
|
//查询单元名称
|
|
|
|
|
String staName="";
|
|
|
|
|
String LNG="";
|
|
|
|
|
String LAT="";
|
|
|
|
|
String lengthD="";
|
|
|
|
|
String feeUnitName="";
|
|
|
|
|
if(!PubTools.isEmpty(select1)){
|
|
|
|
|
for(String str:select1.keySet()){
|
|
|
|
|
if("STANAME".equals(str)){
|
|
|
|
|
staName= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if("LNG".equals(str)){
|
|
|
|
|
LNG= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if("LAT".equals(str)){
|
|
|
|
|
LAT= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if("LENGTH".equals(str)){
|
|
|
|
|
lengthD= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if ("FEEUNITNAME".equals(str)) {
|
|
|
|
|
feeUnitName = (!PubTools.isEmpty(select1.get(str)) ? select1.get(str).toString() : "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
table.put("gpaName",feeUnitName);
|
|
|
|
|
table.put("gpaMoney", Double.parseDouble(mapMarkerFee[i].toString()) / 100);
|
|
|
|
|
table.put("gpaLength",lengthD);
|
|
|
|
|
gpaMoneyTotal+=Double.parseDouble(mapMarkerFee[i].toString());
|
|
|
|
|
gpaLengthTotal+=Double.parseDouble(PubTools.isNull(lengthD)?"0":lengthD);
|
|
|
|
|
if(!PubTools.isNull(staName)){
|
|
|
|
|
joT.put("staName",staName);
|
|
|
|
|
joT.put("LNG",LNG);//经度
|
|
|
|
|
joT.put("LAT",LAT);//纬度
|
|
|
|
|
joT.put("FEE", Double.parseDouble(mapMarkerFee[i].toString()) / 100);//金额
|
|
|
|
|
mapFEEList.add(joT);
|
|
|
|
|
}
|
|
|
|
|
//拆分单元的数据
|
|
|
|
|
table.put("divName","");
|
|
|
|
|
table.put("divMoney","");
|
|
|
|
|
table.put("divLength","");
|
|
|
|
|
mapList.add(table);
|
|
|
|
|
}
|
|
|
|
|
}else if( PubTools.isNull(mapMarker[0]) && !PubTools.isNull(mapMarkerD[0]) && mapMarkerD.length>0){//只有拆分没有计费
|
|
|
|
|
for(int i=0;i<mapMarkerD.length;i++){
|
|
|
|
|
JSONObject table = new JSONObject();
|
|
|
|
|
table.put("PASSID",PASSID);
|
|
|
|
|
//计费单元数据
|
|
|
|
|
JSONObject joT=new JSONObject();
|
|
|
|
|
Map<String,Object> select1=new HashMap<>();
|
|
|
|
|
//查询单元名称
|
|
|
|
|
String staName="";
|
|
|
|
|
String LNG="";
|
|
|
|
|
String LAT="";
|
|
|
|
|
String feeUnitName="";
|
|
|
|
|
String lengthD="";
|
|
|
|
|
table.put("gpaName","");
|
|
|
|
|
table.put("gpaMoney","");
|
|
|
|
|
table.put("gpaLength","");
|
|
|
|
|
//拆分单元的数据
|
|
|
|
|
String sqlT=sql.replace("@PARAM@",mapMarkerD[i].substring(0,16));
|
|
|
|
|
Map<String,Object> select1D=new HashMap<>();
|
|
|
|
|
List temp = this.mapperI.selectforlist(sqlT);
|
|
|
|
|
if(temp != null && temp.size()>0){
|
|
|
|
|
select1=(Map<String,Object>)temp.get(0);
|
|
|
|
|
}else{
|
|
|
|
|
select1=new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
if(!PubTools.isEmpty(select1)){
|
|
|
|
|
for(String str:select1.keySet()){
|
|
|
|
|
if("STANAME".equals(str)){
|
|
|
|
|
staName= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if("LNG".equals(str)){
|
|
|
|
|
LNG= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if("LAT".equals(str)){
|
|
|
|
|
LAT= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if("LENGTH".equals(str)){
|
|
|
|
|
lengthD= (!PubTools.isEmpty(select1.get(str))?select1.get(str).toString():"");
|
|
|
|
|
}else if ("FEEUNITNAME".equals(str)) {
|
|
|
|
|
feeUnitName = (!PubTools.isEmpty(select1.get(str)) ? select1.get(str).toString() : "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
table.put("divName",feeUnitName);
|
|
|
|
|
table.put("divMoney", Double.parseDouble(mapMarkerDFee[i].toString()) / 100);
|
|
|
|
|
divMoneyTotal+=Double.parseDouble(mapMarkerDFee[i].toString());
|
|
|
|
|
table.put("divLength",lengthD);
|
|
|
|
|
divLengthTotal+=Double.parseDouble(PubTools.isNull(lengthD)?"0":lengthD);
|
|
|
|
|
if(!PubTools.isNull(staName)){
|
|
|
|
|
joT.put("staName",staName);
|
|
|
|
|
joT.put("LNG",LNG);//经度
|
|
|
|
|
joT.put("LAT",LAT);//纬度
|
|
|
|
|
joT.put("FEE", Double.parseDouble(mapMarkerDFee[i].toString()) / 100);//金额
|
|
|
|
|
mapDivFEEList.add(joT);
|
|
|
|
|
}
|
|
|
|
|
mapList.add(table);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//表格加一个合计
|
|
|
|
|
if(mapList.size()>0){
|
|
|
|
|
JSONObject totalJson=new JSONObject();
|
|
|
|
|
totalJson.put("PASSID","合计");
|
|
|
|
|
totalJson.put("gpaName","");
|
|
|
|
|
totalJson.put("gpaMoney", gpaMoneyTotal < 0 ? "" : PubTools.doubleSave1(Double.parseDouble(gpaMoneyTotal.toString()) / 100));
|
|
|
|
|
totalJson.put("gpaLength", gpaLengthTotal < 0 ? "" : PubTools.doubleSave1(Double.parseDouble(gpaLengthTotal.toString())));
|
|
|
|
|
totalJson.put("divName","");
|
|
|
|
|
totalJson.put("divMoney", divMoneyTotal < 0 ? "" : PubTools.doubleSave1(Double.parseDouble(divMoneyTotal.toString()) / 100));
|
|
|
|
|
totalJson.put("divLength", divLengthTotal < 0 ? "" : PubTools.doubleSave1(Double.parseDouble(divLengthTotal.toString())));
|
|
|
|
|
mapList.add(totalJson);
|
|
|
|
|
}
|
|
|
|
|
jo.put("mapFEEList",mapFEEList);//计费路线
|
|
|
|
|
jo.put("mapDivFEEList",mapDivFEEList);//拆分路线
|
|
|
|
|
jo.put("mapMarkerFeeMoney",mapMarkerFeeMoney);//计费总金额
|
|
|
|
|
jo.put("mapMarkerDFeeMoney",mapMarkerDFeeMoney);//拆分总金额
|
|
|
|
|
jo.put("tableList",mapList);
|
|
|
|
|
}catch(Exception e){
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
LogUtil.WriteLog_Error("查询数据失败====="+e.getMessage(),"DivPassDataImpl");
|
|
|
|
|
jo=new JSONObject();
|
|
|
|
|
}
|
|
|
|
|
return jo;
|
|
|
|
|
}
|
|
|
|
|
public String getFlagType(String value){
|
|
|
|
|
String ret="";
|
|
|
|
|
String sql = "SELECT TEXT AS FLAGTEXT\n" +
|
|
|
|
|
"FROM FLAG_TEXT where value in("+value+")";
|
|
|
|
|
try{
|
|
|
|
|
List temp = this.mapperI.selectforlist(sql);
|
|
|
|
|
if(temp != null && temp.size()>0){
|
|
|
|
|
for (int k = 0; k < temp.size(); k++) {
|
|
|
|
|
Map<String, Object> select1 = (Map<String, Object>) temp.get(k);
|
|
|
|
|
if (PubTools.isNull(ret)) {
|
|
|
|
|
ret = select1.get("FLAGTEXT").toString();
|
|
|
|
|
} else {
|
|
|
|
|
ret += "," + select1.get("FLAGTEXT").toString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}catch(Exception e){
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
ret="";
|
|
|
|
|
}
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 拆分异常数据的详情
|
|
|
|
|
* @param passId
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public List getDivErrorDatas(String passId) {
|
|
|
|
|
List list=new ArrayList();
|
|
|
|
|
String sql =" SELECT " +
|
|
|
|
|
" CASE RESULT WHEN 1 THEN '结束追偿'" +
|
|
|
|
|
" WHEN 2 THEN '有效追偿(涉及资金结算)'" +
|
|
|
|
|
" WHEN 3 THEN '有效追偿(不涉及资金结算)'" +
|
|
|
|
|
" WHEN 4 THEN '无效追偿'" +
|
|
|
|
|
" WHEN 5 THEN '交易已补传 '" +
|
|
|
|
|
" WHEN 6 THEN '交易已补传(优惠车辆)'" +
|
|
|
|
|
" WHEN 7 THEN '添加passId已拆分'" +
|
|
|
|
|
" WHEN 8 THEN '添加passId不拆分'" +
|
|
|
|
|
" WHEN 9 THEN '添加passId(优惠车辆)'" +
|
|
|
|
|
" WHEN 10 THEN '确认未找到流水(其他)'" +
|
|
|
|
|
" WHEN 11 THEN '确认未找到流水(出口逃费)'" +
|
|
|
|
|
" else '' END as RESULTNAME, " +
|
|
|
|
|
" CASE HANDLESTATUS WHEN 1 THEN ‘无效追偿’ WHEN 2 THEN '有效追偿(涉及资金结算)' WHEN 3 THEN '有效追偿(不涉及资金结算)' ELSE '' END AS HANDLENAME" +
|
|
|
|
|
" FROM (\tSELECT PASSID,RESULT,HANDLESTATUS FROM BSDZ_NOSPLIT_RESULT \n" +
|
|
|
|
|
"\t\n" +
|
|
|
|
|
"\tUNION ALL\n" +
|
|
|
|
|
"\t\n" +
|
|
|
|
|
"\tSELECT PASSID,RESULT,HANDLESTATUS FROM BSDZ_NOOUTPORT_RESULT)t where t.PASSID='"+passId+"'";
|
|
|
|
|
try{
|
|
|
|
|
list= this.mapperI.selectforlist(sql);
|
|
|
|
|
if(list.size()>0){
|
|
|
|
|
if(PubTools.isEmpty(list.get(0))){
|
|
|
|
|
list=new ArrayList();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}catch(Exception e){
|
|
|
|
|
LogUtil.WriteLog_Error("查询数据失败====="+e.getMessage(),"getDivErrorDatas");
|
|
|
|
|
list=new ArrayList();
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String solveSearchJSOn(JSONArray params, String queryFilter) {
|
|
|
|
|
String querySql="";
|
|
|
|
|
if(params.size()>0){
|
|
|
|
|
for (int k = 0; k < params.size(); k++) {
|
|
|
|
|
JSONObject retO = (JSONObject) params.get(k);
|
|
|
|
|
String colName = retO.get("colName").toString();
|
|
|
|
|
if (retO.get("value") instanceof String || retO.get("value") instanceof Integer) {
|
|
|
|
|
String val = retO.get("value").toString();
|
|
|
|
|
if (!PubTools.isNull(val)) {
|
|
|
|
|
if (colName.equals("vecheType")) {
|
|
|
|
|
querySql += "\tAND t.vehicletype = ( SELECT value FROM type_text WHERE text = '" + val + "' ) ";
|
|
|
|
|
} else if (colName.equals("sPassId")) {
|
|
|
|
|
querySql += "\t AND t.passid = '" + val + "' ";
|
|
|
|
|
} else if (colName.equals("enSTANAME")) {
|
|
|
|
|
querySql += "\tAND t.GPA_ENTOLLSTATIONNAME like '%" + val + "%'";
|
|
|
|
|
} else if (colName.equals("exSTANAME")) {
|
|
|
|
|
querySql += "\tAND t.GPA_EXTOLLSTATIONNAME like '%" + val + "%'";
|
|
|
|
|
} else if (colName.equals("sVEHICLEID")) {
|
|
|
|
|
querySql += "\tAND t.VEHICLEID = '" + val + "' ";
|
|
|
|
|
} else if (colName.equals("sVecheType")) {
|
|
|
|
|
querySql += "\tAND t.vehicletype = '" + val + "' ";
|
|
|
|
|
} else if (colName.equals("sVecheClass")) {
|
|
|
|
|
querySql += "\tAND t.VEHICLECLASS ='" + val + "' ";
|
|
|
|
|
} else if (colName.equals("sExitfeeType")) {
|
|
|
|
|
querySql += "\tAND a.EXITFEETYPE ='" + val + "' ";
|
|
|
|
|
} else if (colName.equals("SENSTANAMEID")) {
|
|
|
|
|
querySql += "\tAND t.GPA_ENPOINTID in (select TOLLINTERVALS from GANTRY_TABLE WHERE STANO = '" + val + "') ";
|
|
|
|
|
} else if (colName.equals("SEXSTANAMEID")) {
|
|
|
|
|
querySql += "\tAND t.GPA_EXPOINTID in (select TOLLINTERVALS from GANTRY_TABLE WHERE STANO = '" + val + "') ";
|
|
|
|
|
} else if (colName.equals("sStatus")) {
|
|
|
|
|
querySql += "\tAND t.STATUS ='" + val + "' ";
|
|
|
|
|
} else if (colName.equals("sBak1")) {
|
|
|
|
|
if ("v".equals(val)) {
|
|
|
|
|
querySql += "\tAND t.VEHICLECLASS > 0 AND t.BAK1 !='w'";
|
|
|
|
|
} else if ("b".equals(val) || "k".equals(val)){
|
|
|
|
|
querySql += "\tAND t.BAK1 ='" + val + "' AND t.VEHICLECLASS=0";
|
|
|
|
|
}else if ("w".equals(val)){
|
|
|
|
|
querySql += "\tAND t.BAK1 ='" + val + "'";
|
|
|
|
|
}
|
|
|
|
|
} else if (colName.equals("specialEvent")) {
|
|
|
|
|
if ("1".equals(queryFilter)) {
|
|
|
|
|
querySql += "\tAND FIND_IN_SET( '" + val + "',t.bak2) >0 ";
|
|
|
|
|
} else if ("2".equals(queryFilter)) {
|
|
|
|
|
querySql += "\tAND FIND_IN_SET( '" + val + "',t.bak2) <=0 ";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if (retO.get("value") instanceof JSONArray) {
|
|
|
|
|
JSONArray valList = (JSONArray) retO.get("value");
|
|
|
|
|
if (valList.size() > 0) {
|
|
|
|
|
if (colName.equals("exitType")) {
|
|
|
|
|
String querylist = String.join(", ", JSONObject.parseArray(JSONObject.toJSONString(valList), String.class));
|
|
|
|
|
if ("1".equals(queryFilter)) {
|
|
|
|
|
querySql += "\tAND t.EXITFEETYPE in(" + querylist + ") ";
|
|
|
|
|
} else if ("2".equals(queryFilter)) {
|
|
|
|
|
querySql += "\tAND t.EXITFEETYPE not in(" + querylist + ") ";
|
|
|
|
|
}
|
|
|
|
|
} else if (colName.equals("specialEvent")) {
|
|
|
|
|
String querylist = String.join(", ", JSONObject.parseArray(JSONObject.toJSONString(valList), String.class));
|
|
|
|
|
if ("1".equals(queryFilter)) {
|
|
|
|
|
querySql += "\tAND FIND_IN_SET( " + querylist + ",t.bak2) >0 ";
|
|
|
|
|
} else if ("2".equals(queryFilter)) {
|
|
|
|
|
querySql += "\tAND FIND_IN_SET( " + querylist + ",t.bak2) <=0 ";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return querySql;
|
|
|
|
|
}
|
|
|
|
|
}
|