2025年07月10日 1.1.14 优化参数下发页面日志精简打印标识为[FRONTEND],同时参数下发查询查询条件优化

main
gaoshuguang 4 months ago
parent c9f2059076
commit 692de471cd

@ -46,6 +46,7 @@ public class Constant {
public static final String STR_SLASH = "/"; public static final String STR_SLASH = "/";
public static final String NULL_STRING = ""; public static final String NULL_STRING = "";
public static final String STR_000000 = "000000"; public static final String STR_000000 = "000000";
public static final String STR_FRONTEND = "[FRONTEND]";
public static final String FIELD_SEPARATE = ","; public static final String FIELD_SEPARATE = ",";

@ -38,6 +38,7 @@ public enum MessageEnum {
("20018", "未找到最小费额文件"), ("20018", "未找到最小费额文件"),
("20019", "暂不支持上传功能"), ("20019", "暂不支持上传功能"),
("20020", "上传文件失败"), ("20020", "上传文件失败"),
("20021", "回调处理失败"),
("99999","操作失败"), ("99999","操作失败"),
; ;
private String code; private String code;

@ -5,6 +5,7 @@ import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.IThrowableProxy; import ch.qos.logback.classic.spi.IThrowableProxy;
import ch.qos.logback.classic.spi.ThrowableProxyUtil; import ch.qos.logback.classic.spi.ThrowableProxyUtil;
import ch.qos.logback.core.spi.FilterReply; import ch.qos.logback.core.spi.FilterReply;
import com.nm.gsgl.common.Constant;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
@ -30,18 +31,27 @@ public class LoggerFilter extends ThresholdFilter {
*/ */
@Override @Override
public FilterReply decide(ILoggingEvent event) { public FilterReply decide(ILoggingEvent event) {
LoggerMessage log = new LoggerMessage(); String formattedMessage = event.getFormattedMessage();
log.setClassInfo(event.getLoggerName());
log.setLogTime(formatTime(event.getTimeStamp())); // 只处理包含 [FRONTEND] 标记的日志
log.setLogInfo(event.getFormattedMessage()); if (formattedMessage != null && formattedMessage.contains(Constant.STR_FRONTEND)) {
log.setLogLevel(event.getLevel().levelStr); LoggerMessage log = new LoggerMessage();
String exception = ""; log.setClassInfo(event.getLoggerName());
IThrowableProxy throwableProxy = event.getThrowableProxy(); log.setLogTime(formatTime(event.getTimeStamp()));
if (throwableProxy != null) { log.setLogInfo(formattedMessage);
exception = ThrowableProxyUtil.asString(throwableProxy); log.setLogLevel(event.getLevel().levelStr);
String exception = "";
IThrowableProxy throwableProxy = event.getThrowableProxy();
if (throwableProxy != null) {
exception = ThrowableProxyUtil.asString(throwableProxy);
}
log.setErrorInfo(exception);
// 加入队列
LoggerQueue.getInstance().push(log);
} }
log.setErrorInfo(exception);
LoggerQueue.getInstance().push(log);
return FilterReply.ACCEPT; return FilterReply.ACCEPT;
} }
} }

@ -28,7 +28,10 @@ public class WebSocket {
for (WebSocket webSocket : webSocketMap.values()) { for (WebSocket webSocket : webSocketMap.values()) {
if (webSocket != null) { if (webSocket != null) {
try { try {
webSocket.session.getBasicRemote().sendText(message); // 只发送带有 [FRONTEND] 标记的日志
if (message.contains("[FRONTEND]")) {
webSocket.session.getBasicRemote().sendText(message);
}
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -50,7 +53,8 @@ public class WebSocket {
public void onOpen(Session session, @PathParam("userId") String userId) { public void onOpen(Session session, @PathParam("userId") String userId) {
this.session = session; this.session = session;
webSocketMap.put(userId, this); webSocketMap.put(userId, this);
sendMessage("CONNECT_SUCCESS"); //sendMessage("CONNECT_SUCCESS");
sendMessage(Constant.STR_FRONTEND+"连接成功");
System.out.println("【websocket消息】有新的连接,连接id" + userId); System.out.println("【websocket消息】有新的连接,连接id" + userId);
} }

@ -4,6 +4,8 @@ import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.nm.gsgl.common.Constant; import com.nm.gsgl.common.Constant;
import com.nm.gsgl.common.enumeration.MessageEnum;
import com.nm.gsgl.common.exception.PPException;
import com.nm.gsgl.common.utils.DateTimeUtil; import com.nm.gsgl.common.utils.DateTimeUtil;
import com.nm.gsgl.common.utils.UuidUtil; import com.nm.gsgl.common.utils.UuidUtil;
import com.nm.gsgl.entity.Instructions; import com.nm.gsgl.entity.Instructions;
@ -57,7 +59,7 @@ public class HttpCallBackServiceImpl implements HttpCallBackService {
@Override @Override
public void callBackWjt(String callBackStr) { public void callBackWjt(String callBackStr) {
String uuid = UuidUtil.getUuid(); String uuid = UuidUtil.getUuid();
log.info("[uuid:{}]-接收下载回调指令:{}", uuid, callBackStr); log.info("[uuid:{}]-{}-接收下载回调指令:{}", uuid, Constant.STR_FRONTEND,callBackStr);
try { try {
WjtCallback callback = JSON.parseObject(callBackStr, WjtCallback.class); WjtCallback callback = JSON.parseObject(callBackStr, WjtCallback.class);
if (callback != null) { if (callback != null) {
@ -98,10 +100,10 @@ public class HttpCallBackServiceImpl implements HttpCallBackService {
result.setJgDt(date); result.setJgDt(date);
if(code==200){ if(code==200){
result.setJgFlag(1); result.setJgFlag(1);
log.info("[uuid:{}]-站名称={},ip={},端口号port={},接收文件-{}-成功", uuid, callback.getStaName(),callback.getIp(),callback.getPort(),callback.getZlibName()); log.info("[uuid:{}]-{}-站名称={},ip={},端口号port={},接收文件-{}-成功", uuid, Constant.STR_FRONTEND, callback.getStaName(),callback.getIp(),callback.getPort(),callback.getZlibName());
}else { }else {
result.setJgFlag(-1); result.setJgFlag(-1);
log.error("[uuid:{}]-站名称={},ip={},端口号port={},接收文件-{}-失败,返回消息={}", uuid, callback.getStaName(),callback.getIp(),callback.getPort(),callback.getZlibName(),callback.getMsg()); log.error("[uuid:{}]-{}-站名称={},ip={},端口号port={},接收文件-{}-失败,返回消息={}", uuid, Constant.STR_FRONTEND, callback.getStaName(),callback.getIp(),callback.getPort(),callback.getZlibName(),callback.getMsg());
} }
result.setJgText(callback.getMsg()); result.setJgText(callback.getMsg());
result.setSendComNo(callback.getRoadNo()); result.setSendComNo(callback.getRoadNo());
@ -114,7 +116,8 @@ public class HttpCallBackServiceImpl implements HttpCallBackService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("[uuid:{}]-下载回调指令处理失败,报错{}" ,uuid,e.getMessage(),e); log.error("[uuid:{}]-{}-下载回调指令处理失败,报错{}" ,uuid,Constant.STR_FRONTEND,e.getMessage(),e);
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} }
} }
} }

@ -192,7 +192,7 @@ public class ManualIssueServiceImpl implements ManualIssueService {
@Override @Override
public void handSendInfo(Map<String, Object> map) { public void handSendInfo(Map<String, Object> map) {
String uuid = UuidUtil.getUuid(); String uuid = UuidUtil.getUuid();
log.info("[uuid:{}]-开始手动下发参数数据", uuid); log.info("[uuid:{}]-{}-开始手动下发参数数据", uuid,Constant.STR_FRONTEND);
//String protocolType = String.valueOf(map.get("protocolType")); //String protocolType = String.valueOf(map.get("protocolType"));
List<Integer> ids = (List<Integer>) map.get("ids"); List<Integer> ids = (List<Integer>) map.get("ids");
String checkedNodes = JSON.toJSONString(map.get("checkedNodes")); String checkedNodes = JSON.toJSONString(map.get("checkedNodes"));
@ -203,37 +203,13 @@ public class ManualIssueServiceImpl implements ManualIssueService {
//String decryptManNo = DESUtil.decrypt(manno.replace("AAAAA", "/").replace("\\", "BBBBB")); //String decryptManNo = DESUtil.decrypt(manno.replace("AAAAA", "/").replace("\\", "BBBBB"));
String decryptManNo = DESUtil.decrypt(manno); String decryptManNo = DESUtil.decrypt(manno);
if (StringUtils.isBlank(decryptManNo)) { if (StringUtils.isBlank(decryptManNo)) {
log.error("[uuid:{}]-{}-工号解密失败,请重新登录", uuid,Constant.STR_FRONTEND);
throw new RuntimeException("解密失败,请重新登录"); throw new RuntimeException("解密失败,请重新登录");
} else if ("admin".equals(decryptManNo)) { } else if ("admin".equals(decryptManNo)) {
decryptManNo = "-1"; decryptManNo = "-1";
} }
//log.info("man====={}",man);
//log.info("manno====={}",manno);
//log.info("decryptManNo====={}",decryptManNo);
List<SetUpTable> list = JSON.parseObject(checkedNodes, new TypeReference<List<SetUpTable>>() { List<SetUpTable> list = JSON.parseObject(checkedNodes, new TypeReference<List<SetUpTable>>() {
}); });
//int count = 0;
//if (list != null && list.size() > 0) {
// log.info("[uuid:{}]-开始保存已选车道,条数为{}", uuid, list.size());
// UpdateWrapper<SetupTable> updateWrapper = new UpdateWrapper<>();
// updateWrapper.set("UNUSE12", 0);
// setupTableMapper.update(null, updateWrapper);
// for (SetUpTable setUpTable : list) {
// if (StringUtils.isNotBlank(setUpTable.getPORTIP())) {
// UpdateWrapper<SetupTable> setupTableUpdateWrapper = new UpdateWrapper<>();
// setupTableUpdateWrapper.eq("ROADNO", setUpTable.getROADNO())
// .eq("STANO", setUpTable.getSTANO())
// .eq("PORTNO", setUpTable.getPORTNO())
// .set("UNUSE12", 1);
// setupTableMapper.update(null, setupTableUpdateWrapper);
// count++;
// }
//
// }
// log.info("[uuid:{}]-更新已选车道,条数为{}", uuid, count);
//} else {
// log.info("[uuid:{}]-未选择车道条数为0", uuid);
//}
for (Integer protocolType : ids) { for (Integer protocolType : ids) {
@ -376,26 +352,6 @@ public class ManualIssueServiceImpl implements ManualIssueService {
String md5 = MD5Util.getMd5ByFilePath(DownloadPath + File.separator + fileName); String md5 = MD5Util.getMd5ByFilePath(DownloadPath + File.separator + fileName);
//版本号 //版本号
String version = cmsParameter.getQgCsVerNo(); String version = cmsParameter.getQgCsVerNo();
////下传日期
//String isDate = DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD);
////序列号
//int lastNum = 1;
////先查询CMS_DOWNLOG_JAVA中下发的批次号
////判断当前是否是Oracle
//List<CmsDownLog> cmsDownLogs;
//if (Constant.STR_TWO.equals(DBType)) {
// cmsDownLogs = cmsDownLogMapper.selectListOracle(paraId, isDate);
//} else {
// QueryWrapper<CmsDownLog> downLogQueryWrapper = new QueryWrapper<>();
// downLogQueryWrapper.select("NUM").eq("PARAID", paraId)
// .eq("DT", isDate)
// .lt("NUM", 10000);
// cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper);
//}
//if (cmsDownLogs != null && cmsDownLogs.size() > 0) {
// cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed());
// lastNum = cmsDownLogs.get(0).getNum() + 1;
//}
String socketStr = conStringMin(String.valueOf(protocolType), paraName, fileName, isZlib, ip, downUrl, backUrl, md5, version, isDate, lastNum, roadNo, staNo, portNo); String socketStr = conStringMin(String.valueOf(protocolType), paraName, fileName, isZlib, ip, downUrl, backUrl, md5, version, isDate, lastNum, roadNo, staNo, portNo);
//查询获取车道的ip //查询获取车道的ip
@ -424,10 +380,10 @@ public class ManualIssueServiceImpl implements ManualIssueService {
sendSocket(portIp, Integer.valueOf(socketPort), socketStr); sendSocket(portIp, Integer.valueOf(socketPort), socketStr);
cms.setZlFlag(1); cms.setZlFlag(1);
cms.setZlText("指令发送成功"); cms.setZlText("指令发送成功");
log.info("[uuid:{}]-ip:{},发送车道指令成功!", uuid, portIp); log.info("[uuid:{}]-{}-ip:{},发送车道指令成功!", uuid, Constant.STR_FRONTEND,portIp);
//cmsDownLogMapper.insert(cms); //cmsDownLogMapper.insert(cms);
} else { } else {
log.error("[uuid:{}]-ip{},端口号{},无法访问!", uuid, portIp, socketPort); log.error("[uuid:{}]-{}-ip{},端口号{},无法访问!", uuid,Constant.STR_FRONTEND, portIp, socketPort);
cms.setZlFlag(-1); cms.setZlFlag(-1);
cms.setZlText("网络故障"); cms.setZlText("网络故障");
//cmsDownLogMapper.insert(cms); //cmsDownLogMapper.insert(cms);
@ -435,12 +391,10 @@ public class ManualIssueServiceImpl implements ManualIssueService {
} }
cmsDownLogMapper.insert(cms); cmsDownLogMapper.insert(cms);
} else { } else {
log.error("[uuid:{}]-当前分中心没有站编号为{},下发的文件{}不存在", uuid, staNo, DownloadPath + File.separator + fileName); log.error("[uuid:{}]-{}-当前分中心没有站编号为{},下发的文件{}不存在", uuid,Constant.STR_FRONTEND, staNo, DownloadPath + File.separator + fileName);
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage()); throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} }
} }
} }
} }
@ -482,27 +436,6 @@ public class ManualIssueServiceImpl implements ManualIssueService {
String md5 = cmsParameter.getQgCsMd5(); String md5 = cmsParameter.getQgCsMd5();
//版本号 //版本号
String version = cmsParameter.getQgCsVerNo(); String version = cmsParameter.getQgCsVerNo();
////下传日期
//String isDate = DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD);
////序列号
//int lastNum = 1;
////先查询CMS_DOWNLOG_JAVA中下发的批次号
////判断当前是否是Oracle
//List<CmsDownLog> cmsDownLogs;
//if (Constant.STR_TWO.equals(DBType)) {
// cmsDownLogs = cmsDownLogMapper.selectListOracle(paraId, isDate);
//} else {
// QueryWrapper<CmsDownLog> downLogQueryWrapper = new QueryWrapper<>();
// downLogQueryWrapper.select("NUM").eq("PARAID", paraId)
// .eq("DT", isDate)
// .lt("NUM", 10000);
// cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper);
//}
//
//if (cmsDownLogs != null && cmsDownLogs.size() > 0) {
// cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed());
// lastNum = cmsDownLogs.get(0).getNum() + 1;
//}
//路段号 //路段号
Integer roadNo = setUpTable.getROADNO(); Integer roadNo = setUpTable.getROADNO();
// 站编码 // 站编码
@ -514,7 +447,7 @@ public class ManualIssueServiceImpl implements ManualIssueService {
fileName, paraName, isZlib, ip, downUrl, backUrl, md5, version, isDate); fileName, paraName, isZlib, ip, downUrl, backUrl, md5, version, isDate);
} else { } else {
log.error("[uuid:{}]-下发的文件{}不存在", uuid, DownloadPath + File.separator + fileName); log.error("[uuid:{}]-{}-下发的文件{}不存在", uuid,Constant.STR_FRONTEND, DownloadPath + File.separator + fileName);
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage()); throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} }
} }
@ -676,24 +609,6 @@ public class ManualIssueServiceImpl implements ManualIssueService {
e.printStackTrace(); e.printStackTrace();
} }
} }
//序列号
//int lastNum = 1;
////先查询CMS_DOWNLOG_JAVA中下发的批次号
////判断当前是否是Oracle
//List<CmsDownLog> cmsDownLogs;
//if (Constant.STR_TWO.equals(DBType)) {
// cmsDownLogs = cmsDownLogMapper.selectListOracle(protocolType, isDate);
//} else {
// QueryWrapper<CmsDownLog> downLogQueryWrapper = new QueryWrapper<>();
// downLogQueryWrapper.select("NUM").eq("PARAID", protocolType)
// .eq("DT", isDate)
// .lt("NUM", 10000);
// cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper);
//}
//if (cmsDownLogs != null && cmsDownLogs.size() > 0) {
// cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed());
// lastNum = cmsDownLogs.get(0).getNum() + 1;
//}
//查询站的IP和程序的端口号 //查询站的IP和程序的端口号
QueryWrapper<NameTableDcom> queryWrapper = new QueryWrapper<>(); QueryWrapper<NameTableDcom> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ROADNO", roadNo) queryWrapper.eq("ROADNO", roadNo)
@ -772,9 +687,10 @@ public class ManualIssueServiceImpl implements ManualIssueService {
sendSocket(portIp, Integer.valueOf(socketPort), socketStr); sendSocket(portIp, Integer.valueOf(socketPort), socketStr);
cms.setZlFlag(1); cms.setZlFlag(1);
cms.setZlText("指令发送成功"); cms.setZlText("指令发送成功");
log.info("[uuid:{}]-{}-ip:{},发送车道指令成功!", uuid, Constant.STR_FRONTEND,portIp);
//cmsDownLogMapper.insert(cms); //cmsDownLogMapper.insert(cms);
} else { } else {
log.error("[uuid:{}]-ip{},端口号{},无法访问!", uuid, portIp, socketPort); log.error("[uuid:{}]-{}-ip{},端口号{},无法访问!", uuid, Constant.STR_FRONTEND,portIp, socketPort);
cms.setZlFlag(-1); cms.setZlFlag(-1);
cms.setZlText("网络故障"); cms.setZlText("网络故障");
//cmsDownLogMapper.insert(cms); //cmsDownLogMapper.insert(cms);

@ -92,6 +92,7 @@ public class WjtManualServiceImpl implements WjtManualService {
//String manno = "A/WmzjNaj6k="; //String manno = "A/WmzjNaj6k=";
String decryptManNo = DESUtil.decrypt(manno); String decryptManNo = DESUtil.decrypt(manno);
if (StringUtils.isBlank(decryptManNo)) { if (StringUtils.isBlank(decryptManNo)) {
log.error("[uuid:{}]-{}-工号解密失败,请重新登录", uuid,Constant.STR_FRONTEND);
throw new RuntimeException("解密失败,请重新登录"); throw new RuntimeException("解密失败,请重新登录");
} else if ("admin".equals(decryptManNo)) { } else if ("admin".equals(decryptManNo)) {
decryptManNo = "-1"; decryptManNo = "-1";
@ -191,11 +192,11 @@ public class WjtManualServiceImpl implements WjtManualService {
CloseableHttpClientUtils.doPost(sendHttpUrl, null, data, 30000); CloseableHttpClientUtils.doPost(sendHttpUrl, null, data, 30000);
downLog.setZlFlag(1); downLog.setZlFlag(1);
downLog.setZlText("指令发送成功"); downLog.setZlText("指令发送成功");
log.info("[uuid:{}]-{},ip={},端口号port={}发送下载{}指令成功,等待下载完成后回调", uuid, info.getSTANAME(), info.getIP(), info.getPORT(), newFileInfo.getProtocolType()); log.info("[uuid:{}]-{}-{},ip={},端口号port={}发送下载{}指令成功,等待下载完成后回调", uuid,Constant.STR_FRONTEND, info.getSTANAME(), info.getIP(), info.getPORT(), newFileInfo.getProtocolType());
} else { } else {
downLog.setZlFlag(-1); downLog.setZlFlag(-1);
downLog.setZlText("网络故障"); downLog.setZlText("网络故障");
log.error("[uuid:{}]-{},ip={},端口号port={}不通,发送指令{}失败", uuid, info.getSTANAME(), info.getIP(), info.getPORT(), newFileInfo.getProtocolType()); log.error("[uuid:{}]-{}-{},ip={},端口号port={}不通,发送指令{}失败", uuid,Constant.STR_FRONTEND, info.getSTANAME(), info.getIP(), info.getPORT(), newFileInfo.getProtocolType());
} }
wjtDownLogMapper.insert(downLog); wjtDownLogMapper.insert(downLog);
@ -205,11 +206,11 @@ public class WjtManualServiceImpl implements WjtManualService {
} }
} else { } else {
log.error("[uuid:{}]-下发的文件{}不存在", uuid, filePathName); log.error("[uuid:{}]-{}-下发的文件{}不存在", uuid,Constant.STR_FRONTEND, filePathName);
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage()); throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} }
} else { } else {
log.error("[uuid:{}]-下发的文件不存在", uuid); log.error("[uuid:{}]-{}-下发的文件不存在", uuid,Constant.STR_FRONTEND);
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage()); throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} }
} }
@ -302,16 +303,16 @@ public class WjtManualServiceImpl implements WjtManualService {
CloseableHttpClientUtils.doPost(sendHttpUrl, null, data, 30000); CloseableHttpClientUtils.doPost(sendHttpUrl, null, data, 30000);
downLog.setZlFlag(1); downLog.setZlFlag(1);
downLog.setZlText("指令发送成功"); downLog.setZlText("指令发送成功");
log.info("[uuid:{}]-{},ip={},端口号port={}发送下载{}指令成功,等待下载完成后回调", uuid, info.getSTANAME(), info.getIP(), info.getPORT(), paraText); log.info("[uuid:{}]-{}-{},ip={},端口号port={}发送下载{}指令成功,等待下载完成后回调", uuid,Constant.STR_FRONTEND, info.getSTANAME(), info.getIP(), info.getPORT(), paraText);
} else { } else {
downLog.setZlFlag(-1); downLog.setZlFlag(-1);
downLog.setZlText("网络故障"); downLog.setZlText("网络故障");
log.error("[uuid:{}]-{},ip={},端口号port={}不通,发送{}指令失败", uuid, info.getSTANAME(), info.getIP(), info.getPORT(), paraText); log.error("[uuid:{}]-{}-{},ip={},端口号port={}不通,发送{}指令失败", uuid,Constant.STR_FRONTEND, info.getSTANAME(), info.getIP(), info.getPORT(), paraText);
} }
wjtDownLogMapper.insert(downLog); wjtDownLogMapper.insert(downLog);
} else { } else {
log.error("[uuid:{}]-当前分中心没有站编号为{},下发的文件{}不存在", uuid, info.getSTANO(), DownloadPath + File.separator + fileName); log.error("[uuid:{}]-{}-当前分中心没有站编号为{},下发的文件{}不存在", uuid, Constant.STR_FRONTEND,info.getSTANO(), DownloadPath + File.separator + fileName);
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage()); throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} }
} }
@ -401,11 +402,11 @@ public class WjtManualServiceImpl implements WjtManualService {
CloseableHttpClientUtils.doPost(sendHttpUrl, null, data, 30000); CloseableHttpClientUtils.doPost(sendHttpUrl, null, data, 30000);
downLog.setZlFlag(1); downLog.setZlFlag(1);
downLog.setZlText("指令发送成功"); downLog.setZlText("指令发送成功");
log.info("[uuid:{}]-{},ip={},端口号port={}发送下载{}指令成功,等待下载完成后回调", uuid, info.getSTANAME(), info.getIP(), info.getPORT(), paraText); log.info("[uuid:{}]-{}-{},ip={},端口号port={}发送下载{}指令成功,等待下载完成后回调", uuid,Constant.STR_FRONTEND, info.getSTANAME(), info.getIP(), info.getPORT(), paraText);
} else { } else {
downLog.setZlFlag(-1); downLog.setZlFlag(-1);
downLog.setZlText("网络故障"); downLog.setZlText("网络故障");
log.error("[uuid:{}]-{},ip={},端口号port={}不通,发送{}指令失败", uuid, info.getSTANAME(), info.getIP(), info.getPORT(), paraText); log.error("[uuid:{}]-{}-{},ip={},端口号port={}不通,发送{}指令失败", uuid,Constant.STR_FRONTEND, info.getSTANAME(), info.getIP(), info.getPORT(), paraText);
} }
wjtDownLogMapper.insert(downLog); wjtDownLogMapper.insert(downLog);
} }
@ -414,7 +415,7 @@ public class WjtManualServiceImpl implements WjtManualService {
} else { } else {
log.error("[uuid:{}]-下发的文件{}不存在", uuid, DownloadPath + File.separator + fileName); log.error("[uuid:{}]-{}-下发的文件{}不存在", uuid,Constant.STR_FRONTEND, DownloadPath + File.separator + fileName);
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage()); throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} }
@ -567,11 +568,11 @@ public class WjtManualServiceImpl implements WjtManualService {
CloseableHttpClientUtils.doPost(sendHttpUrl, null, data, 30000); CloseableHttpClientUtils.doPost(sendHttpUrl, null, data, 30000);
downLog.setZlFlag(1); downLog.setZlFlag(1);
downLog.setZlText("指令发送成功"); downLog.setZlText("指令发送成功");
log.info("[uuid:{}]-{},ip={},端口号port={}发送下载{}指令成功,等待下载完成后回调", uuid, info.getSTANAME(), info.getIP(), info.getPORT(), paraText); log.info("[uuid:{}]-{}-{},ip={},端口号port={}发送下载{}指令成功,等待下载完成后回调", uuid, Constant.STR_FRONTEND,info.getSTANAME(), info.getIP(), info.getPORT(), paraText);
} else { } else {
downLog.setZlFlag(-1); downLog.setZlFlag(-1);
downLog.setZlText("网络故障"); downLog.setZlText("网络故障");
log.error("[uuid:{}]-{},ip={},端口号port={}不通,发送{}指令失败", uuid, info.getSTANAME(), info.getIP(), info.getPORT(), paraText); log.error("[uuid:{}]-{}-{},ip={},端口号port={}不通,发送{}指令失败", uuid,Constant.STR_FRONTEND, info.getSTANAME(), info.getIP(), info.getPORT(), paraText);
} }
wjtDownLogMapper.insert(downLog); wjtDownLogMapper.insert(downLog);
} }

@ -1,5 +1,8 @@
package org.tempuri; package org.tempuri;
import com.nm.gsgl.common.Constant;
import com.nm.gsgl.common.enumeration.MessageEnum;
import com.nm.gsgl.common.exception.PPException;
import com.nm.gsgl.common.utils.DateTimeUtil; import com.nm.gsgl.common.utils.DateTimeUtil;
import com.nm.gsgl.common.utils.UuidUtil; import com.nm.gsgl.common.utils.UuidUtil;
import com.nm.gsgl.entity.BackParam; import com.nm.gsgl.entity.BackParam;
@ -30,11 +33,11 @@ public class LaneCallbackImpl implements ILaneCallback {
public String CDReturnMsg(String roadno, String stano, String portno, String msgType, String msgText, String zlText) { public String CDReturnMsg(String roadno, String stano, String portno, String msgType, String msgText, String zlText) {
String uuid = UuidUtil.getUuid(); String uuid = UuidUtil.getUuid();
try { try {
log.info("[uuid:{}]-车道回调接口开始", uuid); log.info("[uuid:{}]-{}-站编码为{},车道号为{}回调接口开始", uuid, Constant.STR_FRONTEND,stano,portno);
byte[] decodedBytes = Base64.getDecoder().decode(msgText); byte[] decodedBytes = Base64.getDecoder().decode(msgText);
String str = new String(decodedBytes, "GBK"); String str = new String(decodedBytes, "GBK");
String backStr = String.format("roadno:%s,stano:%s,portno:%s,msgtype:%s,msgText:%s,zlText:%s", roadno, stano, portno, msgType, str, zlText); String backStr = String.format("roadno:%s,stano:%s,portno:%s,msgtype:%s,msgText:%s,zlText:%s", roadno, stano, portno, msgType, str, zlText);
log.info("[uuid:{}]-车道回调接口参数为{}", uuid, backStr); log.info("[uuid:{}]-{}-车道回调接口参数为{}", uuid, Constant.STR_FRONTEND,backStr);
String[] arr = zlText.split("\\|"); String[] arr = zlText.split("\\|");
String paraId = arr[1]; String paraId = arr[1];
String num = arr[11]; String num = arr[11];
@ -65,8 +68,9 @@ public class LaneCallbackImpl implements ILaneCallback {
log.info("[uuid:{}]-根据车道回调参数插入下传车道结果表{}", uuid, cm); log.info("[uuid:{}]-根据车道回调参数插入下传车道结果表{}", uuid, cm);
} catch (Exception e) { } catch (Exception e) {
log.error("[uuid:{}]-根据车道回调参数,更新下传车道任务表、插入下传车道结果表失败{}", uuid, e.getMessage(), e); log.error("[uuid:{}]-根据车道回调参数,更新下传车道任务表、插入下传车道结果表失败{}", uuid, e.getMessage(), e);
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} }
log.info("[uuid:{}]-车道回调数据处理完成", uuid); log.info("[uuid:{}]-{}-站编码为{},车道号为{}回调数据处理完成", uuid, Constant.STR_FRONTEND,stano,portno);
return "1"; return "1";
} }

@ -5,7 +5,7 @@
<meta charset="UTF-8"/> <meta charset="UTF-8"/>
<title></title> <title></title>
<script type="module" crossorigin src="./assets/index.e95fc146.js"></script> <script type="module" crossorigin src="./assets/index.46f1e074.js"></script>
<link rel="stylesheet" href="./assets/index.a3f8c100.css"> <link rel="stylesheet" href="./assets/index.a3f8c100.css">
</head> </head>
<body> <body>

@ -27,3 +27,4 @@
22 2025年02月24日 1.1.11 55-车道参数表修改SQB文件的字段并将查询语句更改为SELECT BEGDATE, MINETCRATE, MAXETCRATE, MINCPCRATE, MAXCPCRATE, MAXHCRATE, USENEWTYPE, ALLOWCPU0, PAYRESTBAL, PERINSCPU, PEROUTSCPU, W0019MODE2, CANDISTIME, OPENFEE, BAK1, BAK2, BAK3, BAK4, BAK6, BAK7, BAK8, MAXONLINE, MAXHCONLIN from LaneInfo_Table 22 2025年02月24日 1.1.11 55-车道参数表修改SQB文件的字段并将查询语句更改为SELECT BEGDATE, MINETCRATE, MAXETCRATE, MINCPCRATE, MAXCPCRATE, MAXHCRATE, USENEWTYPE, ALLOWCPU0, PAYRESTBAL, PERINSCPU, PEROUTSCPU, W0019MODE2, CANDISTIME, OPENFEE, BAK1, BAK2, BAK3, BAK4, BAK6, BAK7, BAK8, MAXONLINE, MAXHCONLIN from LaneInfo_Table
23 2025年05月09日 1.1.12 适配达梦数据库 23 2025年05月09日 1.1.12 适配达梦数据库
24 2025年06月16日 1.1.13 配置文件UserStaNO增加适配多个分公司编码多个编码用英文,隔开 24 2025年06月16日 1.1.13 配置文件UserStaNO增加适配多个分公司编码多个编码用英文,隔开
25 2025年07月10日 1.1.14 优化参数下发页面日志精简打印标识为[FRONTEND],同时参数下发查询查询条件优化

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

@ -1,31 +0,0 @@
<!DOCTYPE html>
<!--<html lang="en" class="dark">-->
<html lang="en" class="light">
<head>
<meta charset="UTF-8"/>
<title></title>
<script type="module" crossorigin src="./assets/index.e95fc146.js"></script>
<link rel="stylesheet" href="./assets/index.a3f8c100.css">
</head>
<body>
<div id="app">
<div class="loading">
<div class="loading-wrap">
<div class="loading-dots">
<span class="dot dot-spin">
<i></i>
<i></i>
<i></i>
<i></i>
</span>
</div>
<div class="loading-title">
正在缓冲...
</div>
</div>
</div>
</div>
</body>
</html>

@ -1,6 +1,6 @@
{ {
"hash": "7a0e2aae", "hash": "7a0e2aae",
"browserHash": "24d2c489", "browserHash": "6a2c34c1",
"optimized": { "optimized": {
"@element-plus/icons-vue": { "@element-plus/icons-vue": {
"src": "../../@element-plus/icons-vue/dist/index.js", "src": "../../@element-plus/icons-vue/dist/index.js",
@ -212,10 +212,22 @@
"fileHash": "ff3c3c7c", "fileHash": "ff3c3c7c",
"needsInterop": true "needsInterop": true
}, },
"element-plus/es/components/button/style/css": { "element-plus/es/components/form/style/css": {
"src": "../../element-plus/es/components/button/style/css.mjs", "src": "../../element-plus/es/components/form/style/css.mjs",
"file": "element-plus_es_components_button_style_css.js", "file": "element-plus_es_components_form_style_css.js",
"fileHash": "9de75e26", "fileHash": "ac16b78c",
"needsInterop": false
},
"element-plus/es/components/upload/style/css": {
"src": "../../element-plus/es/components/upload/style/css.mjs",
"file": "element-plus_es_components_upload_style_css.js",
"fileHash": "4b70b9ba",
"needsInterop": false
},
"element-plus/es/components/form-item/style/css": {
"src": "../../element-plus/es/components/form-item/style/css.mjs",
"file": "element-plus_es_components_form-item_style_css.js",
"fileHash": "5ac034ba",
"needsInterop": false "needsInterop": false
}, },
"element-plus/es/components/row/style/css": { "element-plus/es/components/row/style/css": {
@ -224,6 +236,24 @@
"fileHash": "23b0ebb8", "fileHash": "23b0ebb8",
"needsInterop": false "needsInterop": false
}, },
"element-plus/es/components/col/style/css": {
"src": "../../element-plus/es/components/col/style/css.mjs",
"file": "element-plus_es_components_col_style_css.js",
"fileHash": "c3ed36ab",
"needsInterop": false
},
"element-plus/es/components/button/style/css": {
"src": "../../element-plus/es/components/button/style/css.mjs",
"file": "element-plus_es_components_button_style_css.js",
"fileHash": "9de75e26",
"needsInterop": false
},
"element-plus/es/components/icon/style/css": {
"src": "../../element-plus/es/components/icon/style/css.mjs",
"file": "element-plus_es_components_icon_style_css.js",
"fileHash": "c0781492",
"needsInterop": false
},
"element-plus/es/components/checkbox-group/style/css": { "element-plus/es/components/checkbox-group/style/css": {
"src": "../../element-plus/es/components/checkbox-group/style/css.mjs", "src": "../../element-plus/es/components/checkbox-group/style/css.mjs",
"file": "element-plus_es_components_checkbox-group_style_css.js", "file": "element-plus_es_components_checkbox-group_style_css.js",
@ -242,36 +272,6 @@
"fileHash": "b6a195ef", "fileHash": "b6a195ef",
"needsInterop": false "needsInterop": false
}, },
"element-plus/es/components/col/style/css": {
"src": "../../element-plus/es/components/col/style/css.mjs",
"file": "element-plus_es_components_col_style_css.js",
"fileHash": "c3ed36ab",
"needsInterop": false
},
"element-plus/es/components/form/style/css": {
"src": "../../element-plus/es/components/form/style/css.mjs",
"file": "element-plus_es_components_form_style_css.js",
"fileHash": "ac16b78c",
"needsInterop": false
},
"element-plus/es/components/upload/style/css": {
"src": "../../element-plus/es/components/upload/style/css.mjs",
"file": "element-plus_es_components_upload_style_css.js",
"fileHash": "4b70b9ba",
"needsInterop": false
},
"element-plus/es/components/form-item/style/css": {
"src": "../../element-plus/es/components/form-item/style/css.mjs",
"file": "element-plus_es_components_form-item_style_css.js",
"fileHash": "5ac034ba",
"needsInterop": false
},
"element-plus/es/components/icon/style/css": {
"src": "../../element-plus/es/components/icon/style/css.mjs",
"file": "element-plus_es_components_icon_style_css.js",
"fileHash": "c0781492",
"needsInterop": false
},
"element-plus/es/components/menu/style/css": { "element-plus/es/components/menu/style/css": {
"src": "../../element-plus/es/components/menu/style/css.mjs", "src": "../../element-plus/es/components/menu/style/css.mjs",
"file": "element-plus_es_components_menu_style_css.js", "file": "element-plus_es_components_menu_style_css.js",

@ -321,12 +321,17 @@ export default {
websocketonmessage(e) { websocketonmessage(e) {
const line = e.data; const line = e.data;
let line2 = e.data; let line2 = e.data;
if (line.includes('ERROR')) { // [FRONTEND]
line2 = `<p style="color: red;">${line}</p>` if (line.includes("[FRONTEND]")) {
} else { // [FRONTEND]
line2 = `<p>${line}</p>` line2 = line.replace("[FRONTEND]", "");
if (line.includes('ERROR')) {
line2 = `<p style="color: red;">${line2}</p>`;
} else {
line2 = `<p>${line2}</p>`;
}
this.textarea = this.textarea + line2;
} }
this.textarea = this.textarea + line2;
}, },
// //
websocketonerror(e) { websocketonerror(e) {

@ -123,7 +123,7 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="下发状态:" :label-width="formLabelWidth" prop="jgFlag"> <el-form-item label="下发状态:" :label-width="formLabelWidth" prop="jgFlag">
<el-select v-model="inputFormParams.jgFlag"> <el-select v-model="inputFormParams.jgFlag">
<el-option label="全部车道" value="0"/> <!-- <el-option label="全部车道" value="0"/>-->
<el-option label="已发指令车道" value="1"/> <el-option label="已发指令车道" value="1"/>
<el-option label="已发送指令但失败车道" value="-1"/> <el-option label="已发送指令但失败车道" value="-1"/>
</el-select> </el-select>
@ -440,15 +440,16 @@ export default {
let paraId = this.inputFormParams.paraId; let paraId = this.inputFormParams.paraId;
let isSend = this.inputFormParams.isSend; let isSend = this.inputFormParams.isSend;
let sendTime = this.inputFormParams.sendTime; let sendTime = this.inputFormParams.sendTime;
let batchNo = this.inputFormParams.batchNo;
// console.log(this.inputFormParams.paraId) // console.log(this.inputFormParams.paraId)
// console.log(this.inputFormParams.isSend) // console.log(this.inputFormParams.isSend)
// console.log(this.inputFormParams.sendTime) // console.log(this.inputFormParams.sendTime)
this.selectForm.pageNum = this.pageNum; this.selectForm.pageNum = this.pageNum;
this.selectForm.pageSize = this.pageSize; this.selectForm.pageSize = this.pageSize;
if (paraId === undefined || isSend === undefined || sendTime === undefined) { if (paraId === undefined || isSend === undefined || sendTime === undefined|| batchNo === undefined) {
ElMessage({ ElMessage({
showClose: true, showClose: true,
message: '请选择参数、下发方式、下发时间', message: '请选择参数、下发方式、下发时间、批次号',
type: 'warning', type: 'warning',
}) })
return; return;
@ -468,7 +469,8 @@ export default {
}) })
}, },
reNetwork() { // reNetwork() { //
this.inputFormParams = {}; this.inputFormParams = { isSend: '0',
jgFlag: '1'};
// this.network(); // this.network();
}, },
cancelParamsData() { cancelParamsData() {

@ -133,7 +133,7 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="下发状态:" :label-width="formLabelWidth" prop="jgFlag"> <el-form-item label="下发状态:" :label-width="formLabelWidth" prop="jgFlag">
<el-select v-model="inputFormParams.jgFlag"> <el-select v-model="inputFormParams.jgFlag">
<el-option label="全部" value="0"/> <!-- <el-option label="全部" value="0"/>-->
<el-option label="成功发送指令" value="1"/> <el-option label="成功发送指令" value="1"/>
<el-option label="已发送指令但失败" value="-1"/> <el-option label="已发送指令但失败" value="-1"/>
</el-select> </el-select>
@ -470,15 +470,16 @@ export default {
let paraId = this.inputFormParams.paraId; let paraId = this.inputFormParams.paraId;
let isSend = this.inputFormParams.isSend; let isSend = this.inputFormParams.isSend;
let sendTime = this.inputFormParams.sendTime; let sendTime = this.inputFormParams.sendTime;
let batchNo = this.inputFormParams.batchNo;
// console.log(this.inputFormParams.paraId) // console.log(this.inputFormParams.paraId)
// console.log(this.inputFormParams.isSend) // console.log(this.inputFormParams.isSend)
// console.log(this.inputFormParams.sendTime) // console.log(this.inputFormParams.sendTime)
this.selectForm.pageNum = this.pageNum; this.selectForm.pageNum = this.pageNum;
this.selectForm.pageSize = this.pageSize; this.selectForm.pageSize = this.pageSize;
if (paraId === undefined || isSend === undefined || sendTime === undefined) { if (paraId === undefined || isSend === undefined || sendTime === undefined|| batchNo === undefined) {
ElMessage({ ElMessage({
showClose: true, showClose: true,
message: '请选择参数、下发方式、下发时间', message: '请选择参数、下发方式、下发时间、批次号',
type: 'warning', type: 'warning',
}) })
return; return;
@ -496,7 +497,8 @@ export default {
}) })
}, },
reNetwork() { // reNetwork() { //
this.inputFormParams = {}; this.inputFormParams = { isSend: '0',
jgFlag: '1'};
// this.network(); // this.network();
}, },
cancelParamsData() { cancelParamsData() {

@ -230,12 +230,16 @@ export default {
websocketonmessage(e) { websocketonmessage(e) {
const line = e.data; const line = e.data;
let line2 = e.data; let line2 = e.data;
if (line.includes('ERROR')) { if (line.includes("[FRONTEND]")) {
line2 = `<p style="color: red;">${line}</p>` // [FRONTEND]
} else { line2 = line.replace("[FRONTEND]", "");
line2 = `<p>${line}</p>` if (line.includes('ERROR')) {
line2 = `<p style="color: red;">${line2}</p>`;
} else {
line2 = `<p>${line2}</p>`;
}
this.textarea = this.textarea + line2;
} }
this.textarea = this.textarea + line2;
}, },
// //
websocketonerror(e) { websocketonerror(e) {

Loading…
Cancel
Save