Compare commits

...

3 Commits

Author SHA1 Message Date
han-l b84d9abd0c 变更 2 years ago
han-l e1f9f38b4d 变更 2 years ago
han-l 5f7fa29108 变更 2 years ago

@ -21,6 +21,7 @@
<module name="CentralizedMonitoring" options="-parameters" />
<module name="NMGJTManager" options="-parameters" />
<module name="SSMPBack" options="-parameters" />
<module name="WS_SystemShow" options="-parameters" />
</option>
</component>
</project>

@ -1,10 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<component name="Encoding" native2AsciiForPropertiesFiles="true" defaultCharsetForPropertiesFiles="UTF-8">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/../NMGJTManager/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/../NMGJTManager/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/../NMGJTManager/src/main/resources/static/View/assets" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/../NMGJTManager/src/main/resources/static/View/index.html" charset="GBK" />
<file url="file://$PROJECT_DIR$/../NMGJTManager/src/main/resources/static/View/resource" charset="GBK" />
<file url="file://$PROJECT_DIR$/../NMGJTManager/src/main/resources/static/View/tinymce" charset="GBK" />
<file url="file://$PROJECT_DIR$/../../TRKFTrafficSpace-WorkSpace/WS_SystemShow/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/../../TRKFTrafficSpace-WorkSpace/WS_SystemShow/src/main/resources" charset="UTF-8" />
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

@ -6,7 +6,7 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.15</version>
<relativePath/> <!-- lookup parent from repository -->
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>CentralizedMonitoring</artifactId>

@ -37,6 +37,7 @@ public class CorsConfig implements WebMvcConfigurer {
.excludePathPatterns("/resource/**")
.excludePathPatterns("/assets/**")
.excludePathPatterns("/CarLineView/**")
.excludePathPatterns("/IpPortText/**")
.excludePathPatterns("/index**")
.excludePathPatterns("/WorkOrderCirculation/**")
;

@ -33,9 +33,9 @@ public class FilterConfig implements HandlerInterceptor {
response.setHeader("Access-Control-Allow-Headers", "Authorization,Origin, X-Requested-With, Content-Type, Accept,Access-Token");//Origin, X-Requested-With, Content-Type, Accept,Access-Token
response.setHeader("Set-Cookie", "SameSite=None");
String token = request.getHeader("token");
if ("test".equals(token)) {
return true;
}
// if ("test".equals(token)) {
// return true;
// }
if (token != null) {
boolean result = TokenUtil.verify(token, request);
//判断绑定

@ -21,7 +21,7 @@ public class ThreadPoolConfig {
executor.setQueueCapacity(300);
executor.setKeepAliveSeconds(300);
executor.setThreadNamePrefix("NORMAL--");
executor.setAwaitTerminationSeconds(60);
executor.setAwaitTerminationSeconds(120);
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
executor.initialize();

@ -43,7 +43,7 @@ public class CarLineController {
List<Map<String, Object>> portList = carLineMapper.selectPortBySta(params);
for (Map<String, Object> port : portList) {
String key = port.get("STANO") + "-" + port.get("PORTNO");
Boolean portSta = portInfo.getPortSta().get(key);
Boolean portSta = portInfo.getPortSta(key);
port.put("PORTSTA", portSta);
}
sta.put("portList", portList);

@ -0,0 +1,90 @@
package com.nmgs.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.IpPortText;
import com.nmgs.mapper.IpPortTextMapper;
import com.nmgs.util.PropertiesUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
*
* @author ruoyi
*/
@Controller
@RequestMapping("/IpPortText")
@CrossOrigin(origins = "*")
public class IpPortTextController {
@Resource
IpPortTextMapper ipPortTextMapper;
@PostMapping("/getPage")
@ResponseBody
public Object getPage(@RequestBody Map<String, Object> params, HttpServletRequest request) {
int pageNum = (int) params.get("pageNum");
int pageSize = (int) params.get("pageSize");
Page<IpPortText> page = new Page<>(pageNum, pageSize);
QueryWrapper<IpPortText> wrapper = new QueryWrapper<>();
if(params.containsKey("staNo")&&params.get("staNo")!=null&&!params.get("staNo").toString().trim().equals("")){
wrapper.eq("STANO",params.get("staNo"));
}
page = ipPortTextMapper.selectPage(page, wrapper);
return page;
}
@PostMapping("/selectInfo")
@ResponseBody
public Object selectInfo() {
Map<String, Object> params = new HashMap<>();
params.put("staNoList", ipPortTextMapper.getStaNoList(PropertiesUtil.getValue("UserStaNO")));
return params;
}
@PostMapping("/checkStaNo")
@ResponseBody
public Object checkStaNo(@RequestBody Map<String, Object> params) {
IpPortText staNo = ipPortTextMapper.selectById((int) params.get("staNo"));
return staNo == null;
}
@PostMapping("/saveData")
@ResponseBody
public Object saveData(@RequestBody IpPortText ipPortText) {
int a = 0;
if (ipPortText.getIsAdd()) {
a = ipPortTextMapper.insert(ipPortText);
} else {
a = ipPortTextMapper.updateById(ipPortText);
}
if (a > 0) {
try {
new PropertiesUtil().set("isReloadPortTask", "1");
} catch (IOException ignored) {
}
}
return a;
}
@PostMapping("/deleteByIds")
@ResponseBody
public Object deleteByIds(@RequestBody List<Integer> ids) {
int a = 0;
a = ipPortTextMapper.deleteBatchIds(ids);
if (a > 0) {
try {
new PropertiesUtil().set("isReloadPortTask", "1");
} catch (IOException ignored) {
}
}
return a;
}
}

@ -36,8 +36,8 @@ public class WebSocketController {
public void onClose(Session session) {
String socketId = WebsocketUtil.getParam(WebsocketUtil.sessionKey, session);
// 删除映射关系
portInfoSocketAsyncService.clearIsOpen();
portInfoSocketAsyncService.closeUntitled();
portInfoSocketAsyncService.clearIsOpen(socketId);
portInfoSocketAsyncService.closeUntitled(socketId);
WebsocketUtil.removeSession(socketId);
}
@ -53,18 +53,20 @@ public class WebSocketController {
} else if (command.equals("close")) {
portInfoSocketAsyncService.removeIsOpen(socketId + resultMap.get("staNoPortNo").toString());
} else if (command.equals("Untitled")) {
portInfoSocketAsyncService.getUntitled(resultMap.get("manNo").toString(), session, resultMap.get("staNo").toString(),Boolean.parseBoolean(resultMap.get("isFirst").toString()) );
portInfoSocketAsyncService.getUntitled(resultMap.get("manNo").toString(), session, resultMap.get("staNo").toString(),Boolean.parseBoolean(resultMap.get("isFirst").toString()),socketId );
} else if (command.equals("closeUntitled")) {
portInfoSocketAsyncService.closeUntitled();
portInfoSocketAsyncService.closeUntitled(socketId);
}
}
@OnError
public void onError(Session session, Throwable throwable) {
portInfoSocketAsyncService.clearIsOpen();
portInfoSocketAsyncService.closeUntitled();
String socketId = WebsocketUtil.getParam(WebsocketUtil.sessionKey, session);
portInfoSocketAsyncService.clearIsOpen(socketId);
portInfoSocketAsyncService.closeUntitled(socketId);
try {
WebsocketUtil.removeSession(socketId);
if (session.isOpen()) {
session.close();
}

@ -0,0 +1,28 @@
package com.nmgs.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Data
@TableName("IP_PORT_TYPE_TEXT")
public class IpPortText {
@TableId(value = "STANO")
private Long staNo;
@TableField(value = "IP")
private String ip;
@TableField("PORT")
private Long port;
@TableField("TEXT")
private String text;
@TableField("ISRUN")
private Long isRun;
@TableField(exist = false)
private Boolean isAdd;
}

@ -14,7 +14,7 @@
*
from USER_STA_TABLE
<where>
MANNO=${manNo}
MANNO=#{manNo}
</where>
)
</if>
@ -57,7 +57,7 @@
SELECT b.*,c.PORTNO
FROM NAME_TABLE_DCOM a
INNER JOIN (SELECT * from IP_PORT_TYPE_TEXT WHERE TEXT ='集中监控车道日志') b on a.STANO=b.STANO
LEFT JOIN SETUP_TABLE c on c.STANO=a.STANO
INNER JOIN SETUP_TABLE c on c.STANO=a.STANO
WHERE a.USERTYPE = 1
AND (a.SUBCOMNO = ${STANO} OR a.STANO = ${STANO})
ORDER BY c.PORTNO
@ -117,6 +117,6 @@
</if>
</select>
<select id="getStaByManNoAdmin" resultType="java.lang.String">
SELECT STANO from IP_PORT_TYPE_TEXT WHERE TEXT ='集中监控车道日志'
SELECT STANO from IP_PORT_TYPE_TEXT WHERE TEXT ='集中监控车道日志' AND ISRUN=1
</select>
</mapper>

@ -0,0 +1,14 @@
package com.nmgs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nmgs.entity.IpPortText;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@Mapper
public interface IpPortTextMapper extends BaseMapper<IpPortText> {
List<Map<String,Object>> getStaNoList(@Param("STANO") String staNo);
}

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nmgs.mapper.IpPortTextMapper">
<select id="getStaNoList" resultType="java.util.Map">
SELECT *
FROM NAME_TABLE_DCOM
WHERE SUBCOMNO = #{STANO}
AND USERTYPE = 1
</select>
</mapper>

@ -0,0 +1,23 @@
package com.nmgs.service;
import com.nmgs.util.PropertiesUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
/**
* @author lnj
* createTime 2018-11-07 22:37
**/
@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
new PropertiesUtil().set("isReloadText", "1");
new PropertiesUtil().set("isReloadPortTask", "1");
}
}

@ -1,6 +1,7 @@
package com.nmgs.service;
import com.nmgs.controller.WebSocketController;
import com.nmgs.util.LogUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.DisposableBean;
@ -22,10 +23,12 @@ public class ApplicationStopImpl implements DisposableBean {
@Override
public void destroy() {
taskService.setRunMap(new HashMap<>());
WebSocketController.portInfoSocketAsyncService.clearIsOpen();
WebSocketController.portInfoSocketAsyncService.clearIsOpen("all");
portInfoSocketAsyncService.clearIsOpen("all");
portInfoSocketAsyncService.isRun = false;
taskService.isRun = false;
ThreadTaskService.isRun = false;
taskService.setRun(false);
LogUtil.WriteLog_Info("清除车道信息采集任务runMap","STOP");
logger.info("清除车道信息采集任务runMap");
}
}

@ -6,6 +6,7 @@ import com.nmgs.entity.PortInfo;
import com.nmgs.mapper.CarLineMapper;
import com.nmgs.util.ExceptionUtil;
import com.nmgs.util.JDBCUtil;
import com.nmgs.util.LogUtil;
import com.nmgs.util.WebsocketUtil;
import com.zaxxer.hikari.HikariDataSource;
import org.slf4j.Logger;
@ -22,20 +23,22 @@ import java.util.*;
@Service
public class PortInfoSocketAsyncService {
public static boolean isRun = true;
public boolean isRun = true;
public static Logger logger = LoggerFactory.getLogger("GetCarLineLogs");
public Map<String, Boolean> isOpen = new HashMap<>();
@Resource
PortInfo portInfo;
@Resource
ThreadTaskService threadTaskService;
@Resource
CarLineMapper carLineMapper;
@Async("CentralizedMonitoringThreadPool")
public void getComStr(String staNoPortNo, Session session) {
public void getComStr(String staNoPortNo, Session session) {
String socketId = WebsocketUtil.getParam(WebsocketUtil.sessionKey, session);
HikariDataSource sqliteSource = JDBCUtil.getSqliteSource(staNoPortNo);
List<Map<String, String>> logsList = getComByStaNoPortNo(staNoPortNo, 0, sqliteSource);
int id=0;
int id = 0;
if (logsList != null && logsList.size() > 0) {
id = Integer.parseInt(logsList.get(logsList.size() - 1).get("id"));
WebsocketUtil.sendMessage(session, getSocketResult(staNoPortNo, "ComStrList", JSONArray.toJSONString(logsList)));
@ -74,14 +77,14 @@ public class PortInfoSocketAsyncService {
}
@Async("CentralizedMonitoringThreadPool")
public void getImgBase64AndCarInfo(String staNoPortNo,Session session) {
public void getImgBase64AndCarInfo(String staNoPortNo, Session session) {
String socketId = WebsocketUtil.getParam(WebsocketUtil.sessionKey, session);
HikariDataSource sqliteSource = JDBCUtil.getSqliteSource(staNoPortNo);
String carInfo = portInfo.getCarInfo(staNoPortNo);
carInfo = carInfo == null ? "" : carInfo;
WebsocketUtil.sendMessage(session, getSocketResult(staNoPortNo, "CarInfo", carInfo));
int id=0;
int id = 0;
List<Map<String, String>> imgsList = getImgByStaNoPortNo(staNoPortNo, 0, sqliteSource);
if (imgsList != null && imgsList.size() > 0) {
id = Integer.parseInt(imgsList.get(imgsList.size() - 1).get("id"));
@ -120,62 +123,71 @@ public class PortInfoSocketAsyncService {
return getMapsBySql(sqliteSource, sql);
}
public Map<String, HikariDataSource> dbMap = new HashMap<>();
public List<String> staList = new ArrayList<>();
public Map<String, Map<String, HikariDataSource>> dbMap = new HashMap<>();
public Map<String, List<String>> staListMap = new HashMap<>();
@Async("CentralizedMonitoringThreadPool")
public void getUntitled(String manNo, Session session, String staNo, boolean isFirst) {
if (isFirst) {
reloadUntitledMap(manNo);
}
List<Map<String, String>> List = getUntitledByDB(dbMap, staNo);
if (List != null && List.size() > 0) {
WebsocketUtil.sendMessage(session, getSocketResult("", "Untitled", JSONArray.toJSONString(List)));
public void getUntitled(String manNo, Session session, String staNo, boolean isFirst, String socketId) {
LogUtil.WriteLog_Info("查询流水", "SocketUnitTask");
LogUtil.WriteLog_Info("threadTaskService.getRun()=" + threadTaskService.getRun(), "SocketUnitTask");
if (threadTaskService.getRun()) {
if (isFirst) {
reloadUntitledMap(manNo, socketId);
}
List<Map<String, String>> List = getUntitledByDB(dbMap.get(socketId), staNo);
if (List != null && List.size() > 0) {
WebsocketUtil.sendMessage(session, getSocketResult("", "Untitled", JSONArray.toJSONString(List)));
} else {
WebsocketUtil.sendMessage(session, getSocketResult("", "Untitled", JSONArray.toJSONString(new ArrayList<>())));
}
} else {
closeAllUntitled();
WebsocketUtil.sendMessage(session, getSocketResult("", "Untitled", JSONArray.toJSONString(new ArrayList<>())));
}
}
@Async("CentralizedMonitoringThreadPool")
public void closeUntitled() {
if (dbMap != null && dbMap.size() > 0) {
for (Map.Entry<String, HikariDataSource> entry : dbMap.entrySet()) {
public void closeUntitled(String socketId) {
Map<String, HikariDataSource> dbMapItem = dbMap.get(socketId);
if (dbMapItem != null && dbMapItem.size() > 0) {
for (Map.Entry<String, HikariDataSource> entry : dbMapItem.entrySet()) {
if (entry.getValue() != null) {
entry.getValue().close();
}
}
}
staList = new ArrayList<>();
dbMap = new HashMap<>();
staListMap.remove(socketId);
dbMap.remove(socketId);
}
private void reloadUntitledMap(String manNo) {
if(manNo.equals("0")){
staList = carLineMapper.getStaByManNoAdmin();
}else{
staList = carLineMapper.getStaByManNo(manNo);
private void reloadUntitledMap(String manNo, String socketId) {
if (manNo.equals("0")) {
staListMap.put(socketId, carLineMapper.getStaByManNoAdmin());
} else {
staListMap.put(socketId, carLineMapper.getStaByManNo(manNo));
}
for (String sta : staList) {
Map<String, HikariDataSource> map = new HashMap<>();
for (String sta : staListMap.get(socketId)) {
HikariDataSource sqliteSource = null;
try {
sqliteSource = JDBCUtil.getSqliteSource(sta + "Untitled");
sqliteSource = JDBCUtil.getSqliteSource(sta.trim() + "Untitled");
} catch (Exception e) {
logger.info("获取sqlite链接失败 " + sta + "Untitled");
logger.info(ExceptionUtil.getExceptionStr(e));
}
dbMap.put(sta, sqliteSource);
map.put(sta, sqliteSource);
}
dbMap.put(socketId, map);
}
private List<Map<String, String>> getUntitledByDB(Map<String, HikariDataSource> dbMap, String staNo) {
private List<Map<String, String>> getUntitledByDB(Map<String, HikariDataSource> dbMapItem, String staNo) {
String sql;
if (staNo != null && staNo.length() > 0) {
sql = "SELECT * FROM Untitled WHERE " +
" stano = " + staNo + " ORDER BY id DESC LIMIT 100";
return getMapsBySql(dbMap.get(staNo), sql);
return getMapsBySql(dbMapItem.get(staNo), sql);
} else {
List<Map<String, String>> list = new ArrayList<>();
for (Map.Entry<String, HikariDataSource> entry : dbMap.entrySet()) {
for (Map.Entry<String, HikariDataSource> entry : dbMapItem.entrySet()) {
sql = "SELECT * FROM Untitled " +
" ORDER BY id DESC LIMIT 100";
if (entry.getValue() != null) {
@ -229,12 +241,43 @@ public class PortInfoSocketAsyncService {
isOpen.remove(k);
}
public void clearIsOpen() {
isOpen.clear();
for (String sta : staList) {
if (dbMap.get(sta) != null) {
dbMap.get(sta).close();
public void clearIsOpen(String socketId) {
if (socketId.equals("all")) {
isOpen.clear();
closeAllUntitled();
} else {
for (Map.Entry<String, Boolean> entry : isOpen.entrySet()) {
if (entry.getKey().startsWith(socketId)) {
isOpen.remove(entry.getKey());
}
}
closeUntitled(socketId);
}
}
public void closeAllUntitled() {
LogUtil.WriteLog_Info("开始清除所有流水链接", "getUnitTask");
LogUtil.WriteLog_Info("dbMap.size()=" + dbMap.size(), "getUnitTask");
if (dbMap != null && dbMap.size() > 0) {
for (Map.Entry<String, Map<String, HikariDataSource>> entryMain : dbMap.entrySet()) {
Map<String, HikariDataSource> dbMapItem = dbMap.get(entryMain.getKey());
if (dbMapItem != null && dbMapItem.size() > 0) {
for (Map.Entry<String, HikariDataSource> entry : dbMapItem.entrySet()) {
if (entry.getValue() != null) {
entry.getValue().close();
}
}
}
staListMap.remove(entryMain.getKey());
dbMap.remove(entryMain.getKey());
}
LogUtil.WriteLog_Info("清除完成", "getUnitTask");
LogUtil.WriteLog_Info("dbMap.size()=" + dbMap.size(), "getUnitTask");
LogUtil.WriteLog_Info("准备clear", "getUnitTask");
dbMap.clear();
LogUtil.WriteLog_Info("clear完成", "getUnitTask");
LogUtil.WriteLog_Info("dbMap.size()=" + dbMap.size(), "getUnitTask");
}
}
}

@ -1,5 +1,6 @@
package com.nmgs.service;
import com.nmgs.controller.WebSocketController;
import com.nmgs.entity.PortInfo;
import com.nmgs.mapper.CarLineMapper;
import com.nmgs.util.*;
@ -32,16 +33,15 @@ public class ScheduleService implements SchedulingConfigurer {
PortInfo portInfo;
@Resource
CarLineMapper carLineMapper;
boolean isFirst = true;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
//动态使用毫秒数设置循环间隔
taskRegistrar.addTriggerTask(() -> {
String runTask=PropertiesUtil.getValue("runTask");
if(runTask==null||runTask.equals("1")||runTask.equals("")){
if (isFirst || (PropertiesUtil.getValue("isReloadText").equals("1") && !isFirst)) {
String runTask = PropertiesUtil.getValue("runTask");
if (runTask == null || runTask.equals("1") || runTask.equals("")) {
if (PropertiesUtil.getValue("isReloadText").equals("1")) {
try {
new PropertiesUtil().set("isReloadText", "0");
} catch (IOException e) {
@ -49,14 +49,28 @@ public class ScheduleService implements SchedulingConfigurer {
}
loadTextMap();
}
if (isFirst || (PropertiesUtil.getValue("isReloadPortTask").equals("1") && !isFirst)) {
if (PropertiesUtil.getValue("isReloadPortTask").equals("1")) {
try {
new PropertiesUtil().set("isReloadPortTask", "0");
} catch (IOException e) {
throw new RuntimeException(e);
}
reStartRequestPortLogs();
isFirst = false;
}
}
String stopTask = PropertiesUtil.getValue("stopTask");
if (stopTask != null && !stopTask.trim().equals("")) {
if (stopTask.equals("1")) {
try {
new PropertiesUtil().set("stopTask", "0");
} catch (IOException e) {
throw new RuntimeException(e);
}
taskService.setRunMap(new HashMap<>());
taskService.setRun(false);
ThreadTaskService.isRun = false;
LogUtil.WriteLog_Info("清除车道信息采集任务runMap", "STOP");
logger.info("清除车道信息采集任务runMap");
}
}
}, triggerContext -> {
@ -108,6 +122,8 @@ public class ScheduleService implements SchedulingConfigurer {
params.put("STANO", PropertiesUtil.getValue("UserStaNO"));
List<Map<String, Object>> staList = carLineMapper.getAllStaList(params);
for (Map<String, Object> sta : staList) {
String ip = sta.get("IP").toString().trim();
String port = sta.get("PORT").toString().trim();
String staNo = sta.get("STANO").toString();
String portNo = sta.get("PORTNO").toString();
String sqliteBasePath = PathUtil.sqliteBasePath;
@ -116,52 +132,96 @@ public class ScheduleService implements SchedulingConfigurer {
logger.info("开始拉取文件{}", sqlitePath);
FileUtil.copyFile(sqliteBasePath, sqlitePath, sqliteName + ".sqlite");
logger.info("备份sqlite到目录{}", sqlitePath + staNo + "-" + portNo + ".sqlite");
String uuid = UuidUtil.getUuid();
ThreadTaskService.runMap.put(uuid, true);
taskService.getPortLogsTask(uuid, sta.get("IP").toString(), sta.get("PORT").toString(), staNo, portNo, sqliteName);
if (sta.get("ISRUN") != null && sta.get("ISRUN").toString().trim().equals("1")) {
String uuid = UuidUtil.getUuid();
taskService.putRunMap(uuid, true);
taskService.getPortLogsTask(uuid, ip, port, staNo, portNo, sqliteName);
} else {
LogUtil.WriteLog_Info("采集日志 " + ip + ":" + port + "-" + staNo + "-" + portNo + "配置为不采集,不开启采集线程", "getPortLogsTask");
}
}
LogUtil.WriteLog_Info("==================================================", "getPortLogsTask");
LogUtil.WriteLog_Info("==================================================", "getPortLogsTask");
LogUtil.WriteLog_Info("================采集日志 线程开启完毕=================", "getPortLogsTask");
LogUtil.WriteLog_Info("==================================================", "getPortLogsTask");
LogUtil.WriteLog_Info("==================================================", "getPortLogsTask");
List<Map<String, Object>> onlySta = carLineMapper.getOnlySta(params);
List<Map<String, Object>> staNameList = carLineMapper.getStaName();
for (Map<String, Object> sta : onlySta) {
String ip = sta.get("IP").toString().trim();
String port = sta.get("PORT").toString().trim();
String staNo = sta.get("STANO").toString();
String sqliteBasePath = PathUtil.sqliteUntitledPath;
String sqlitePath = PathUtil.sqlitePath;
String sqliteName = staNo + "Untitled";
logger.info("开始拉取文件{}", sqlitePath);
FileUtil.copyFile(sqliteBasePath, sqlitePath, sqliteName + ".sqlite");
try {
logger.info("开始拉取文件{}", sqlitePath);
LogUtil.WriteLog_Info("开始拉取文件" + sqlitePath, "getUnitTask");
FileUtil.copyFile(sqliteBasePath, sqlitePath, sqliteName + ".sqlite");
} catch (Exception e) {
LogUtil.WriteLog_Info("开始拉取出错" + ExceptionUtil.getExceptionStr(e), "getUnitTask");
logger.info("开始拉取出错{}", ExceptionUtil.getExceptionStr(e));
}
try {
logger.info("插入站点字典表");
LogUtil.WriteLog_Info("插入站点字典表", "getUnitTask");
putStaNameInSqlite(staNameList, sqliteName);
} catch (SQLException e) {
logger.info("开始拉取出错{}", ExceptionUtil.getExceptionStr(e));
logger.info("插入站点字典表出错" + ExceptionUtil.getExceptionStr(e));
LogUtil.WriteLog_Info("插入站点字典表出错" + ExceptionUtil.getExceptionStr(e), "getUnitTask");
continue;
}
LogUtil.WriteLog_Info("备份sqlite到目录" + sqlitePath + staNo + "-" + ".sqlite", "getUnitTask");
logger.info("备份sqlite到目录{}", sqlitePath + staNo + "-" + ".sqlite");
String uuid = UuidUtil.getUuid();
ThreadTaskService.runMap.put(uuid, true);
taskService.getUnitTask(uuid, sta.get("IP").toString(), sta.get("PORT").toString(), staNo, sqliteName);
if (sta.get("ISRUN") != null && sta.get("ISRUN").toString().trim().equals("1")) {
String uuid = UuidUtil.getUuid();
taskService.putRunMap(uuid, true);
taskService.getUnitTask(uuid, ip, port, staNo, sqliteName);
} else {
LogUtil.WriteLog_Info("采集流水 " + ip + ":" + port + "-" + staNo + "配置为不采集,不开启采集线程", "getUnitTask");
}
}
LogUtil.WriteLog_Info("==================================================", "getUnitTask");
LogUtil.WriteLog_Info("==================================================", "getUnitTask");
LogUtil.WriteLog_Info("================采集流水 线程开启完毕=================", "getUnitTask");
LogUtil.WriteLog_Info("==================================================", "getUnitTask");
LogUtil.WriteLog_Info("==================================================", "getUnitTask");
}
private void putStaNameInSqlite(List<Map<String, Object>> staNameList, String sqliteName) throws SQLException {
Connection conn = JDBCUtil.getConnect(sqliteName);
conn.setAutoCommit(false);
String insertSql = "INSERT INTO Sta_TEXT (\"STANO\", \"STANAME\") VALUES (?, ?)";
LogUtil.WriteLog_Info("开始清空站点表", "getUnitTask");
PreparedStatement ps = conn.prepareStatement("DELETE FROM Sta_TEXT");
ps.execute();
conn.commit();
LogUtil.WriteLog_Info("清空完成站点表", "getUnitTask");
ps = conn.prepareStatement(insertSql);
for (Map<String, Object> staName : staNameList) {
LogUtil.WriteLog_Info("开始插入站点表", "getUnitTask");
for (int i = 0; i < staNameList.size(); i++) {
Map<String, Object> staName = staNameList.get(i);
try {
ps.setInt(1, Integer.parseInt(staName.get("STANO").toString()));
ps.setString(2, staName.get("STANAME").toString());
ps.execute();
} catch (Exception ignored) {
ps.addBatch();
} catch (Exception e) {
LogUtil.WriteLog_Info("插入站点表" + i + "条错误" + ExceptionUtil.getExceptionStr(e), "getUnitTask");
LogUtil.WriteLog_Info("staName.get(\"STANO\"):" + staName.get("STANO"), "getUnitTask");
LogUtil.WriteLog_Info("staName.get(\"STANAME\"):" + staName.get("STANAME"), "getUnitTask");
}
}
LogUtil.WriteLog_Info("开始执行站点表executeBatch", "getUnitTask");
ps.executeBatch();
LogUtil.WriteLog_Info("站点表executeBatch完成开始commit", "getUnitTask");
conn.commit();
LogUtil.WriteLog_Info("站点表commit完成,开始关闭ps,conn", "getUnitTask");
try {
ps.close();
conn.close();
} catch (Exception ignored) {
LogUtil.WriteLog_Info("站点表关闭ps,conn完成", "getUnitTask");
} catch (Exception e) {
LogUtil.WriteLog_Info("站点表关闭ps,conn错误" + ExceptionUtil.getExceptionStr(e), "getUnitTask");
}
}
}

@ -32,26 +32,41 @@ public class ThreadTaskService {
@Async("CentralizedMonitoringThreadPool") //多个线程池配置时需指定配置实例
public void getPortLogsTask(String uuid, String ip, String port, String staNo, String portNo, String sqliteName) {
logger.info("开始采集 " + ip + ":" + port + "-" + staNo + "-" + portNo);
while (isRun && runMap.containsKey(uuid) && runMap.get(uuid)) {
logger.info("开始采集日志 " + ip + ":" + port + "-" + staNo + "-" + portNo);
LogUtil.WriteLog_Info("开始采集日志 " + ip + ":" + port + "-" + staNo + "-" + portNo, "getPortLogsTask");
loop:
while (getRunSta(uuid)) {
try {
//获取车道状态
// LogUtil.WriteLog_Info("发送状态请求", "getPortLogsTaskLog");
Integer stat = HTTPUtil.sendRequestGet("http://" + ip + ":" + port + "/get_portstat?portno=" + portNo, Integer.class);
logger.info("采集 " + ip + ":" + port + "-" + staNo + "-" + portNo + " stat===" + stat);
// LogUtil.WriteLog_Info("状态请求完成", "getPortLogsTaskLog");
// LogUtil.WriteLog_Info("判断存活1", "getPortLogsTaskLog");
if(!getRunSta(uuid)){
// LogUtil.WriteLog_Info("判断存活1false结束线程"+ip + ":" + port + "-" + staNo + "-" + portNo, "getPortLogsTaskLog");
break;
}
if (stat != null) {
// LogUtil.WriteLog_Info("状态放入内存", "getPortLogsTaskLog");
portInfo.putPortSta(sqliteName, stat == 1);
} else {
stat = 0;
}
//获取车道日志
PreparedStatement ps = null;
// LogUtil.WriteLog_Info("发送日志请求", "getPortLogsTaskLog");
List<String> logsList = HTTPUtil.sendRequestGet("http://" + ip + ":" + port + "/GetData2?portno=" + portNo + "&watchno=2", List.class);
// LogUtil.WriteLog_Info("日志请求完成", "getPortLogsTaskLog");
try {
Connection conn = JDBCUtil.getConnect(sqliteName);
PreparedStatement ps = null;
for (String str : logsList) {
Map<String, Object> map = JSONObject.parseObject(str, HashMap.class);
List<Map<String, Object>> logsMaps = (List<Map<String, Object>>) map.get("UNITINFO");
for (Map<String, Object> logsMap : logsMaps) {
// LogUtil.WriteLog_Info("判断存活2false结束线程"+ip + ":" + port + "-" + staNo + "-" + portNo, "getPortLogsTaskLog");
if(!getRunSta(uuid)){
break loop;
}
try {
String INFOSTR = logsMap.get("INFOSTR").toString();
String CREATETIME = logsMap.get("CREATETIME").toString();
@ -67,6 +82,7 @@ public class ThreadTaskService {
"(select COUNT(1) from portLineLogs where staNo=" + staNo + " AND portNo=" + portNo + ") >100";
ps = conn.prepareStatement(deleteSql);
ps.execute();
// LogUtil.WriteLog_Info("插日志入完成", "getPortLogsTaskLog");
} catch (Exception e) {
logger.info("采集 " + ip + ":" + port + "-" + staNo + "-" + portNo);
logger.info("解析日志参数失败插入失败" + ExceptionUtil.getExceptionStr(e));
@ -77,6 +93,12 @@ public class ThreadTaskService {
//解析车道图片
Map<String, Object> imgMap = (Map<String, Object>) map.get("IMAGEINFO");
try {
// LogUtil.WriteLog_Info("判断存活3", "getPortLogsTaskLog");
if(!getRunSta(uuid)){
// LogUtil.WriteLog_Info("判断存活3false结束线程"+ip + ":" + port + "-" + staNo + "-" + portNo, "getPortLogsTaskLog");
break loop;
}
// LogUtil.WriteLog_Info("插入图片开始", "getPortLogsTaskLog");
if (imgMap != null && imgMap.get("IMAGE_DATA") != null) {
String insertImgSql = "INSERT INTO \"main\".\"portImg64\" " +
"( \"staNo\", \"portNo\", \"img64\") VALUES " +
@ -89,11 +111,13 @@ public class ThreadTaskService {
ps = conn.prepareStatement(deleteSql);
ps.execute();
}
// LogUtil.WriteLog_Info("插入图片完成", "getPortLogsTaskLog");
} catch (Exception e) {
logger.info("采集 " + ip + ":" + port + "-" + staNo + "-" + portNo);
logger.info("解析图像参数失败插入失败" + ExceptionUtil.getExceptionStr(e));
}
//解析车型信息
// LogUtil.WriteLog_Info("解析车型", "getPortLogsTaskLog");
List<Map<String, Object>> listMap = (List<Map<String, Object>>) map.get("LIST");
String carNo = "";
String carType = "";
@ -103,6 +127,11 @@ public class ThreadTaskService {
String carInfo = "";
if (listMap != null && listMap.size() > 0) {
for (Map<String, Object> list : listMap) {
// LogUtil.WriteLog_Info("判断存活4", "getPortLogsTaskLog");
if(!getRunSta(uuid)){
// LogUtil.WriteLog_Info("判断存活4false结束线程"+ip + ":" + port + "-" + staNo + "-" + portNo, "getPortLogsTaskLog");
break loop;
}
String code = list.get("CODE").toString();
info = list.get("INFO") == null ? "" : list.get("INFO").toString();
switch (code) {
@ -122,6 +151,11 @@ public class ThreadTaskService {
}
carInfo = "" + carNo + " " + carType + " " + carKind + " " + carFei + "元";
if (!carInfo.replace(" ", "").equals("元")) {
// LogUtil.WriteLog_Info("判断存活5", "getPortLogsTaskLog");
if(!getRunSta(uuid)){
// LogUtil.WriteLog_Info("判断存活5false结束线程"+ip + ":" + port + "-" + staNo + "-" + portNo, "getPortLogsTaskLog");
break loop;
}
portInfo.putCarInfo(sqliteName, carInfo);
}
}
@ -138,7 +172,12 @@ public class ThreadTaskService {
logger.info("get请求错误" + ExceptionUtil.getExceptionStr(e));
}
}
logger.info("结束采集 " + ip + ":" + port + "-" + staNo + "-" + portNo);
logger.info("结束采集日志 " + ip + ":" + port + "-" + staNo + "-" + portNo);
LogUtil.WriteLog_Info("结束采集日志 " + ip + ":" + port + "-" + staNo + "-" + portNo, "getPortLogsTask");
}
private boolean getRunSta(String uuid) {
return isRun && runMap.containsKey(uuid) && runMap.get(uuid);
}
private String getCarKind(String k) {
@ -170,22 +209,33 @@ public class ThreadTaskService {
}
}
public void setRunMap(HashMap<String, Boolean> objectObjectHashMap) {
runMap = objectObjectHashMap;
}
@Async("CentralizedMonitoringThreadPool") //多个线程池配置时需指定配置实例
public void getUnitTask(String uuid, String ip, String port, String staNo, String sqliteName) {
logger.info("开始采集 " + ip + ":" + port + "-" + staNo + "-" + "流水");
while (isRun && runMap.containsKey(uuid) && runMap.get(uuid)) {
logger.info("开始采集流水 " + ip + ":" + port + "-" + staNo + "-" + "流水");
LogUtil.WriteLog_Info("开始采集流水 " + ip + ":" + port + "-" + staNo + "-" + "流水", "getUnitTask");
loop: while (getRunSta(uuid)) {
try {
try {
Connection conn = JDBCUtil.getConnect(sqliteName);
PreparedStatement ps = null;
// LogUtil.WriteLog_Info("发送请求", "getUnitTaskLog");
List<Map<String, Object>> unitTiled = HTTPUtil.sendRequestGet("http://" + ip + ":" + port + "/get_listall2?watchno=2", List.class);
// LogUtil.WriteLog_Info("请求完成", "getUnitTaskLog");
// LogUtil.WriteLog_Info("判断存活1", "getUnitTaskLog");
if(!getRunSta(uuid)){
// LogUtil.WriteLog_Info("判断存活1false结束线程"+ip + ":" + port + "-" + staNo , "getUnitTaskLog");
break;
}
if (unitTiled != null && unitTiled.size() > 0) {
for (Map<String, Object> unit : unitTiled) {
// LogUtil.WriteLog_Info("判断存活2", "getUnitTaskLog");
if(!getRunSta(uuid)){
// LogUtil.WriteLog_Info("判断存活2false结束线程"+ip + ":" + port + "-" + staNo , "getUnitTaskLog");
break loop;
}
try {
// LogUtil.WriteLog_Info("开始插入", "getUnitTaskLog");
String insertSql = "INSERT INTO Untitled " +
"(\"listno\", \"staname\", \"classnotext\", \"istaname\", \"stano\"," +
" \"overratetext\", \"flagtext\", \"portno\", \"cardno\", \"datemark\"," +
@ -207,6 +257,7 @@ public class ThreadTaskService {
"(select COUNT(1) from Untitled ) >100";
ps = conn.prepareStatement(deleteSql);
ps.execute();
// LogUtil.WriteLog_Info("插入完成", "getUnitTaskLog");
} catch (Exception e) {
logger.info("采集 " + ip + ":" + port + "-" + staNo + "-" + "流水");
logger.info("解析流水失败插入失败" + ExceptionUtil.getExceptionStr(e));
@ -226,6 +277,7 @@ public class ThreadTaskService {
}
}
logger.info("结束采集 " + ip + ":" + port + "-" + staNo + "流水");
LogUtil.WriteLog_Info("结束采集 " + ip + ":" + port + "-" + staNo + "流水", "getUnitTask");
}
private String getNum(Map<String, Object> map, String k) {
@ -242,12 +294,31 @@ public class ThreadTaskService {
if (flag != null && flag.length() > 0) {
String text = "";
List<Integer> flagList = FlagUtil.getFlagList(flag);
for (Integer i : flagList) {
text += portInfo.getFlag(i + "") + ",";
if (flagList.size() > 0) {
for (Integer i : flagList) {
text += portInfo.getFlag(i + "") + ",";
}
return text.substring(0, text.length() - 1);
} else {
return "";
}
return text.substring(0, text.length() - 1);
} else {
return flag;
}
}
public boolean getRun() {
return isRun;
}
public void setRun(boolean v) {
isRun=v;
}
public void putRunMap(String k, boolean v) {
runMap.put(k, v);
}
public void setRunMap(HashMap<String, Boolean> objectObjectHashMap) {
runMap = objectObjectHashMap;
}
}

@ -59,6 +59,7 @@ public class FileUtil {
out.close();
}
} catch (IOException e) {
LogUtil.WriteLog_Info("拷贝备份文件" + oldPath + ",到" + newPath + "失败:" + ExceptionUtil.getExceptionStr(e), "getUnitTask");
log.error("拷贝备份文件{},到{}失败:{}", oldPath, newPath, e.getMessage(), e);
}
}
@ -76,9 +77,11 @@ public class FileUtil {
file.mkdirs();
}
}
/**
* 使walkFileTree使FileVisitor
* FileVisitorvisitFile
*
* @param filePath
* @throws IOException
*/
@ -115,6 +118,7 @@ public class FileUtil {
/**
*
*
* @param file
*/
public static void deleteAllFilesOfDir(File file) {
@ -142,6 +146,7 @@ public class FileUtil {
/**
*
*
* @param pathname
* @return
*/
@ -155,6 +160,7 @@ public class FileUtil {
}
return result;
}
/**
*
*
@ -183,6 +189,7 @@ public class FileUtil {
log.info("给定的路径不是一个文件夹");
}
}
/**
*
*
@ -242,6 +249,7 @@ public class FileUtil {
}
}
}
/**
*
*/

@ -49,7 +49,7 @@ public class JDBCUtil {
String DBUrl = "jdbc:sqlite::resource:sqlite/"+name+".sqlite";
HikariConfig config = new HikariConfig();
config.setPoolName("sqlite");
config.setMaximumPoolSize(300);
config.setMaximumPoolSize(20);
config.setIdleTimeout(60000);
config.setMaxLifetime(180000);
config.setMinimumIdle(1);

@ -65,20 +65,15 @@ public class LogUtil {
}
}
String fullFilePath = baseDir + fileDic + "/" + suffix + ".txt";
try (RandomAccessFile reader = new RandomAccessFile(new File(fullFilePath), "rw");
FileLock lock1 = reader.getChannel().lock()) {
FileLock ignored = reader.getChannel().lock()) {
reader.seek(reader.length());
reader.write(sb.toString().getBytes());
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
} catch (Exception exception) {
exception.printStackTrace();
System.out.println(exception.getMessage());
}
}

@ -1,6 +1,8 @@
package com.nmgs.util;
import com.trkf.PasswordEncryption.PassWordUtils;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.List;
@ -8,14 +10,15 @@ import java.util.Map;
public class Main {
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println(PassWordUtils.encrypt("sysadmin"));
// TokenUtil.verify("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyVW5pdENsYXNzIjoiMCIsInVzZXJTdWJDb21ObyI6IjAiLCJ1c2VyU3Rhbm8iOiIwIiwibWFubm8iOiJhZG1pbiIsIm1hbiI6IueuoeeQhuWRmCIsImV4cCI6MTcwMDgxOTE5N30.Cc_BAlYQe42msbutmQbBFVakbFXWTHaVmL8mEDDSks4");
// int stat = HTTPUtil.sendRequestGet("http://10.15.136.194:6000/get_portstat?portno=1", Integer.class);
// System.out.println(stat);
// String str="20231117093727";
// String date=DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,DateUtils.dateTime(DateUtils.YYYYMMDDHHMMSS,str));
// System.out.println(date);
Object stat = HTTPUtil.sendRequestGet("http://10.15.57.3:6000/get_portstat?portno="+51, Object.class);
// Object stat = HTTPUtil.sendRequestGet("http://10.15.57.141:6000/GetData2?portno=" + 21 + "&watchno=2", Object.class);
// Object stat = HTTPUtil.sendRequestGet("http://10.15.56.2:6000/get_portstat?portno="+51, Object.class);
Object stat = HTTPUtil.sendRequestGet("http://10.15.55.75:6000/GetData2?portno=" + 1 + "&watchno=2", Object.class);
// Object stat = HTTPUtil.sendRequestGet("http://10.15.57.141:6000/get_listall2?watchno=" + 2, Object.class);
System.out.println(stat);
// String url = "http://10.15.136.194:6000/get_listall2?watchno=2";

@ -5,8 +5,8 @@
<link rel="icon" href="/favicon.ico"/>
<title></title>
<script type="module" crossorigin src="./assets/index.edf3ac11.js"></script>
<link rel="stylesheet" href="./assets/index.38f67042.css">
<script type="module" crossorigin src="./assets/index.3afe6177.js"></script>
<link rel="stylesheet" href="./assets/index.0e7489d9.css">
</head>
<body>
<div id="app">

@ -2,17 +2,31 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="3f61f33b-1398-438f-b18e-516860fc6663" name="更改" comment="">
<change afterPath="$PROJECT_DIR$/../NMGJTManager/target/NMGJTManager/META-INF/MANIFEST.MF" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/controller/WebSocketController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/controller/WebSocketController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/mapper/CarLineMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/mapper/CarLineMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/controller/IpPortTextController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/entity/IpPortText.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/mapper/IpPortTextMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/mapper/IpPortTextMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/CentralizedMonitoring/assets/index.0e7489d9.css" afterDir="false" />
<change afterPath="$PROJECT_DIR$/CentralizedMonitoring/assets/index.3afe6177.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/views/IpPortText/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/.idea/compiler.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/pom.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/mapper/CarLineMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/mapper/CarLineMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/service/PortInfoSocketAsyncService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/service/PortInfoSocketAsyncService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/service/ScheduleService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/service/ScheduleService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/util/LogUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/util/LogUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/util/Main.java" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/java/com/nmgs/util/Main.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/resources/static/View/assets/index.38f67042.css" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/resources/static/View/assets/index.edf3ac11.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/resources/static/View/assets/index.e0b25201.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/resources/static/View/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/../CentralizedMonitoring/src/main/resources/static/View/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/views/CarLine/components/PortInfo.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/CarLine/components/PortInfo.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/CentralizedMonitoring/assets/index.38f67042.css" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/CentralizedMonitoring/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/CentralizedMonitoring/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/util/api/api.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/util/api/api.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/util/router/router.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/util/router/router.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../NMGJTManager/src/main/java/com/nmgs/controller/GtUserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../NMGJTManager/src/main/java/com/nmgs/controller/GtUserController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../NMGJTManager/target/NMGJTManager.war" beforeDir="false" afterPath="$PROJECT_DIR$/../NMGJTManager/target/NMGJTManager.war" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../NMGJTManager/target/NMGJTManager/WEB-INF/classes/com/nmgs/controller/GtUserController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../NMGJTManager/target/NMGJTManager/WEB-INF/classes/com/nmgs/controller/GtUserController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../NMGJTManager/target/classes/com/nmgs/controller/GtUserController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../NMGJTManager/target/classes/com/nmgs/controller/GtUserController.class" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -51,7 +65,7 @@
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
&quot;last_opened_file_path&quot;: &quot;D:/JAVA/JAVAIDE/WorkSpace/TRKFTrafficSpace-WorkSpace/SysManagerView&quot;,
&quot;last_opened_file_path&quot;: &quot;D:/JAVA/JAVAIDE/WorkSpace/CentralizedMonitoring/CentralizedMonitoringView/src/views/IpPortText&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;ts.external.directory.path&quot;: &quot;D:\\JAVA\\JAVAIDE\\IntelliJ IDEA 2022.2.2\\plugins\\JavaScriptLanguage\\jsLanguageServicesImpl\\external&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
@ -59,10 +73,11 @@
}</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\CentralizedMonitoringView\src\views\IpPortText" />
<recent name="D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\CentralizedMonitoringView\src\views" />
<recent name="D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\CentralizedMonitoringView\src\views\Pages\WorkOrderCirculation" />
<recent name="D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\CentralizedMonitoringView\public\resource\img" />
<recent name="D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\CentralizedMonitoringView" />
<recent name="D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\CentralizedMonitoringView\src\plugins" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\CentralizedMonitoringView\src\views\CarLine" />
@ -110,6 +125,21 @@
<workItem from="1701391080614" duration="159000" />
<workItem from="1701391437003" duration="9000" />
<workItem from="1701393376051" duration="70000" />
<workItem from="1701417696677" duration="1240000" />
<workItem from="1701420807391" duration="2195000" />
<workItem from="1701649449202" duration="3018000" />
<workItem from="1701680604147" duration="1968000" />
<workItem from="1701735637022" duration="3456000" />
<workItem from="1701772295166" duration="1566000" />
<workItem from="1701857103166" duration="517000" />
<workItem from="1701857763391" duration="787000" />
<workItem from="1701909716947" duration="61000" />
<workItem from="1701939370080" duration="600000" />
<workItem from="1701995475598" duration="141000" />
<workItem from="1701996661623" duration="594000" />
<workItem from="1702022031734" duration="52000" />
<workItem from="1702281013983" duration="4067000" />
<workItem from="1702450883129" duration="62000" />
</task>
<task id="LOCAL-00001" summary="变更">
<created>1699319109952</created>
@ -139,7 +169,14 @@
<option name="project" value="LOCAL" />
<updated>1701313330372</updated>
</task>
<option name="localTasksCounter" value="5" />
<task id="LOCAL-00005" summary="变更">
<created>1701650562489</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1701650562489</updated>
</task>
<option name="localTasksCounter" value="6" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -5,8 +5,8 @@
<link rel="icon" href="/favicon.ico"/>
<title></title>
<script type="module" crossorigin src="./assets/index.edf3ac11.js"></script>
<link rel="stylesheet" href="./assets/index.38f67042.css">
<script type="module" crossorigin src="./assets/index.3afe6177.js"></script>
<link rel="stylesheet" href="./assets/index.0e7489d9.css">
</head>
<body>
<div id="app">

@ -3,4 +3,11 @@ import axios from "../axios/axios";
const {get, post} = axios
export const getTreeData = data => post("/CentralizedMonitoring/CarLine/getTreeData", data)
export const selectPortLogs = data => post("/CentralizedMonitoring/CarLine/selectPortLogs", data)
export const getSelectInfo = data => post("/CentralizedMonitoring/CarLine/getSelectInfo", data)
export const getSelectInfo = data => post("/CentralizedMonitoring/CarLine/getSelectInfo", data)
export const getPage = data => post("/CentralizedMonitoring/IpPortText/getPage", data)
export const selectInfo = () => post("/CentralizedMonitoring/IpPortText/selectInfo", {})
export const saveData = data => post("/CentralizedMonitoring/IpPortText/saveData", data)
export const deleteByIds = data => post("/CentralizedMonitoring/IpPortText/deleteByIds", data)
export const checkStaNo = data => post("/CentralizedMonitoring/IpPortText/checkStaNo", data)

@ -5,7 +5,7 @@ import {ElMessage} from "element-plus";
// axios.defaults.staticBaseURL = '../'
axios.defaults.baseURL = 'http://' + window.location.host //正式
// axios.defaults.baseURL = 'http://' + window.location.hostname + ':8080' //测试
// axios.defaults.baseURL = 'http://' + window.location.hostname + ':9998' //测试
//post请求头
axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8";
@ -22,7 +22,8 @@ axios.defaults.timeout = 150000;
axios.interceptors.request.use(
config => {
const token = localStorage.getItem('token');
// const token ="test";
// const token = "test";
// localStorage.setItem("mannoDe", "0")
if (token == null) {
try {
window.parent.toLogin()

@ -1,7 +1,7 @@
import * as vueRouter from "vue-router";
import NotFound from '../../views/ErrorPage/404.vue';
import CarLineView from '../../views/CarLine/CarLineView.vue';
import test from '../../views/CarLine/test.vue';
import IpPortText from '../../views/IpPortText/index.vue';
import WorkOrderCirculation from '../../views/Pages/WorkOrderCirculation/WorkOrderCirculation.vue';
@ -11,8 +11,8 @@ const routes = [
component: CarLineView
},
{
path: '/CentralizedMonitoring/test',
component: test
path: '/CentralizedMonitoring/IpPortText',
component: IpPortText
},
{
path: '/CentralizedMonitoring/WorkOrderCirculation',

@ -62,7 +62,7 @@ export default {
PortInfoStyle: '',
tabInfoStyle: '',
socketLoading: true,
drawer: false,
drawer: true,
UntitledData: [],
}
},
@ -116,7 +116,6 @@ export default {
}
},
created() {
localStorage.setItem("mannoDe", '0')
this.WindowsHeight = document.documentElement.clientHeight;
this.PortInfoStyle = 'height:' + this.WindowsHeight * 0.9 + 'px';
this.tabInfoStyle = 'height:' + this.WindowsHeight * 0.3 + 'px';

@ -118,10 +118,10 @@ export default {
data.CarInfo = ""
if (checked) {
data.loading = true
this.portInfoMap.set(staNoPortNo, data);
} else {
data.loading = false
}
this.portInfoMap.set(staNoPortNo, data);
this.portInfoMapIterator = this.portInfoMap.values()
this.$nextTick(() => {
_this.openAutoLoadCom(staNoPortNo, checked);
@ -180,7 +180,7 @@ export default {
mapData.COMLIST = logDatas
const stat = logDatas[logDatas.length - 1].stat;
if (stat != null && stat != '') {
this.$emit('changeTreeSta', mapData.labelName, stat == 1)
this.$emit('changeTreeSta', mapData.treeId, stat == 1)
}
} else if (data.type == 'ComStr' || data.type == 'ImgBase64') {
mapData.loading = false
@ -188,7 +188,7 @@ export default {
let logData = JSON.parse(data.value);
mapData.COMLIST = this.addList(mapData.COMLIST, logData)
if (logData.stat != null && logData.stat != '') {
this.$emit('changeTreeSta', mapData.labelName, logData.stat == 1)
this.$emit('changeTreeSta', mapData.treeId, logData.stat == 1)
}
} else if (data.type == 'ImgBase64') {
mapData.imgBase64 = data.value

@ -17,10 +17,10 @@
:expand-on-click-node="false"
@check-change="selectChange"
>
<template #default="{ node }">
<img src="/resource/img/normal.png" v-if="portSta[node.label]!=null&&portSta[node.label]"
<template #default="{ node,data }">
<img src="/resource/img/normal.png" v-if="portSta[data.treeId]!=null&&portSta[data.treeId]"
style="width: 15px;height: 15px">
<img src="/resource/img/disConnect.png" v-if="portSta[node.label]!=null&&!portSta[node.label]"
<img src="/resource/img/disConnect.png" v-if="portSta[data.treeId]!=null&&!portSta[data.treeId]"
style="width: 15px;height: 15px">
<span>{{ node.label }}</span>
</template>
@ -56,13 +56,15 @@ export default {
loadTreeData() {
this.TreeLoading = true
getTreeData({manNo: localStorage.getItem("mannoDe")}).then(res => {
// getTreeData({manNo: 0}).then(res => {
for (let i = 0; i < res.length; i++) {
for (let j = 0; j < res[i].portList.length; j++) {
this.portSta[res[i].portList[j].labelName] = res[i].portList[j].PORTSTA
this.portSta[res[i].portList[j].treeId] = res[i].portList[j].PORTSTA
}
this.$refs.treeRef.setExpandedKeys([res[i].treeId])
}
this.stanTreeData = res
console.log(this.portSta)
this.TreeLoading = false
})
},

@ -0,0 +1,348 @@
<template>
<div class="intemShow">
<el-row style="width: 100%;height: 100%">
<el-col :span="24">
<div style="padding: 10px 0">
<el-select v-model="selectFrom.staNo" placeholder="请选择收费站"
style="width: 150px"
>
<el-option
v-for="item in staNoList"
:label="item.STANAME"
:value="item.STANO+''"
/>
</el-select>
<el-input style="width: 150px;margin-left: 0.5%" placeholder="请输入站点编号" v-model="selectFrom.staNo"
clearable></el-input>
<el-button type="primary" style="margin-left: 0.5%;margin-top: 0px" @click="network">
<el-icon style="vertical-align: middle;">
<search/>
</el-icon>
<span style="vertical-align: middle;"> 搜索 </span>
</el-button>
<el-button type="primary" style="margin-left: 0.5%;margin-top: 0px" @click="reNetwork">
<el-icon>
<Refresh/>
</el-icon>
<span style="vertical-align: middle;"> 重置 </span>
</el-button>
<el-button type="primary" style="margin-left: 0.5%;margin-top: 0px" @click="addItem"><span style="vertical-align: middle;"> 新增 </span>
<el-icon style="margin-left: 3px">
<plus/>
</el-icon>
</el-button>
<el-button type="danger" style="margin-left: 0.5%;margin-top: 0px" @click="deleteSelect(null)"><span style="vertical-align: middle;"> 删除 </span>
<el-icon style="margin-left: 3px">
<delete/>
</el-icon>
</el-button>
</div>
<el-table :data="tableData"
border
highlight-current-row="true"
style="width: 100%;"
:height=myHeight
v-loading="tableLoading"
@selection-change="handleSelectionChange"
>
<el-table-column resizable="false" fixed type="selection" width="50" align="center"></el-table-column>
<el-table-column fixed prop="staNo" label="站点编号" width="100"
align="center"></el-table-column>
<el-table-column prop="staName" label="站点名称" align="center"
:formatter="getName"></el-table-column>
<el-table-column prop="ip" label="IP"
align="center"></el-table-column>
<el-table-column prop="port" label="端口"
align="center"></el-table-column>
<el-table-column prop="text" label="备注"
align="center"></el-table-column>
<el-table-column prop="isRun" label="是否运行"
align="center" :formatter="getRun"></el-table-column>
<el-table-column :resizable="false" prop="right" label="操作" width="130" align="center">
<template v-slot="scope">
<el-button style="width: 45%;margin-left: 2%" @click="editThis(scope.row)" type="warning" size="default"
:icon="Edit">
</el-button>
<el-button style="width: 45%;margin-left: 2%" @click="deleteSelect(scope.row.staNo)" type="danger"
size="default" :icon="Delete">
</el-button>
</template>
</el-table-column>
</el-table>
<el-config-provider :locale="locale">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="selectFrom.pageNum"
:page-sizes="[ 10,15,30, 50, 100]"
:page-size="selectFrom.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="selectFrom.total">
</el-pagination>
</el-config-provider>
</el-col>
</el-row>
</div>
<el-dialog title="操作" v-model="dialogFormVisible" width="50%" top="0.5%" :close-on-click-modal=false
destroy-on-close
>
<el-form :model="inputForm" size="medium" :rules="rules" ref="form">
<el-row>
<el-col :span="12">
<el-form-item label="收费站" :label-width="formLabelWidth" prop="staNo">
<el-select v-model="inputForm.staNo" placeholder="请选择收费站"
style="width:100%"
:disabled="!inputForm.isAdd"
>
<el-option
v-for="item in staNoList"
:label="item.STANAME"
:value="item.STANO"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="IP" :label-width="formLabelWidth" prop="ip">
<el-input v-model="inputForm.ip" autocomplete="off" :disabled="keyInput"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="端口" :label-width="formLabelWidth" prop="port">
<el-input v-model="inputForm.port" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" :label-width="formLabelWidth" prop="text">
<el-input v-model="inputForm.text" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否运行" :label-width="formLabelWidth" prop="isRun">
<el-select v-model="inputForm.isRun" placeholder="请选择是否运行" style="width:100%">
<el-option
label="是"
:value="1"
/>
<el-option
label="否"
:value="0"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogFormVisible=false"> </el-button>
<el-button type="primary" @click="saveData('form')"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script lang="ts">
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import {ElMessage, ElMessageBox} from "element-plus";
import {
getPage,
selectInfo,
saveData,
deleteByIds,
checkStaNo
} from "../../util/api/api.js";
import moment from "moment";
import {Delete, Edit, Search, Share, Upload, Plus} from '@element-plus/icons-vue'
export default {
name: "index",
components: {
Search,
},
data() {
return {
Search,
Edit,
Delete,
selectFrom: {
pageNum: 1,
pageSize: 10,
total: 0,
staNo: '',
},
inputForm: {},
nowTime: '',
locale: zhCn,
tableData: [],
multipleSelection: [],
staNoList: [],
staNoMap: {},
myHeight: 500,
dialogFormVisible: false,
tableLoading: true,
formLabelWidth: '100px',
rules: {
ip: [{required: true, message: '请输入路段编码', trigger: 'blur'}],
port: [{required: true, message: '请输入路段名称', trigger: 'blur'}],
text: [{required: true, message: '请输入路段名称', trigger: 'blur'}],
isRun: [{required: true, message: '请输入路段名称', trigger: 'blur'}],
staNo: [{required: true, validator: this.toCheckStaNo, trigger: 'blur'}],
}
}
},
methods: {
toCheckStaNo(rule: any, value: any, callback: any) {
if (this.inputForm.isAdd) {
if (value == '' || value == null) {
callback(new Error('请选择收费站!'))
} else {
checkStaNo({staNo: value}).then(res => {
console.log(res)
if (res) {
callback()
} else {
callback(new Error('该配置已存在!'))
}
})
}
} else {
callback()
}
},
handleSelectionChange(row) { //
this.multipleSelection = row
},
handleSizeChange(val) { //
this.selectFrom.pageSize = val
this.network()
},
handleCurrentChange(val) { //
this.selectFrom.pageNum = val
this.network()
},
network() { //
this.tableLoading = true
selectInfo().then((res) => {
this.staNoList = res.staNoList
for (let i = 0; i < this.staNoList.length; i++) {
this.staNoMap[this.staNoList[i].STANO] = this.staNoList[i].STANAME;
}
})
getPage(this.selectFrom).then((res) => {
this.selectFrom.total = res.total
this.tableData = res.records
this.tableLoading = false
})
},
reNetwork() { //
this.tableLoading = true
this.selectFrom.staNo = '';
this.network();
},
getName(row, column) {
return this.staNoMap[row.staNo];
},
getRun(row, column) {
if (row[column.property] == 1) {
return '是';
} else {
return '否';
}
},
deleteSelect(id) { //
let ids = [];
if (id == null || id == '') {
ids = this.multipleSelection.map(v => v.staNo)
} else {
ids[0] = id
}
if (ids.length == 0) {
ElMessage({
showClose: true,
message: '请选择要删除的数据!',
type: 'warning',
})
return;
}
ElMessageBox.confirm(
'是否批量删除' + ids.length + '条数据?',
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
).then(() => {
deleteByIds(ids).then((res) => {
if (res) {
ElMessage({
message: ids.length + '条删除成功!',
type: 'success',
})
this.network()
} else {
ElMessage.error('删除失败!')
}
})
}).catch(() => {
ElMessage({
type: 'info',
message: '已取消!',
})
})
},
editThis(row) { //
this.inputForm = row
this.inputForm.isAdd = false;
this.dialogFormVisible = true
},
addItem() { //
this.inputForm = {}
this.inputForm.isAdd = true;
this.dialogFormVisible = true
},
saveData(resetForm) { //
this.$refs[resetForm].validate((valid) => {
if (valid) {
saveData(this.inputForm).then((res) => {
if (res) {
ElMessage({
message: '操作成功!',
type: 'success',
})
this.dialogFormVisible = false
this.network()
this.inputForm = {}
} else {
ElMessage.error('操作失败!请重新操作!')
}
})
}
})
},
},
mounted() {
this.myHeight = (document.documentElement.clientHeight) * 0.85;
this.network()
}
}
</script>
<style scoped>
.intemShow {
margin-left: 15px;
}
@media print {
.no-print {
display: none;
}
}
</style>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/NMGJTManager.iml" filepath="$PROJECT_DIR$/.idea/NMGJTManager.iml" />
</modules>
</component>
</project>

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SqlDialectMappings">
<file url="file://$PROJECT_DIR$/../TRKFTraffic/src/main/java/com/trkftraffic/GisManager/mapper/GisManagerMapper.xml" dialect="GenericSQL" />
<file url="PROJECT" dialect="Oracle" />
</component>
</project>

@ -88,6 +88,7 @@ public class GtUserController{
@RequestMapping(value = "/saveUser", method = RequestMethod.POST)
@ResponseBody
public Object saveUser(@RequestBody GTUser gTUser) {
gTUser.setLoginPwd(PassWordUtils.encrypt(gTUser.getLoginPwd()));
if (gTUser.getIsAdd()) {
return gTUserMapper.insert(gTUser) > 0;
} else {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -5,7 +5,7 @@
<link rel="icon" href="/favicon.ico"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title></title>
<script type="module" crossorigin src="../assets/index.09b828a0.js"></script>
<script type="module" crossorigin src="../assets/index.87d0cb6a.js"></script>
<link rel="stylesheet" href="../assets/index.47df6ef2.css">
</head>
<body>

@ -1,18 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257">
<defs>
<linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%">
<stop offset="0%" stop-color="#41D1FF"></stop>
<stop offset="100%" stop-color="#BD34FE"></stop>
</linearGradient>
<linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%">
<stop offset="0%" stop-color="#FFEA83"></stop>
<stop offset="8.333%" stop-color="#FFDD35"></stop>
<stop offset="100%" stop-color="#FFA800"></stop>
</linearGradient>
</defs>
<path fill="url(#IconifyId1813088fe1fbc01fb466)"
d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path>
<path fill="url(#IconifyId1813088fe1fbc01fb467)"
d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

@ -5,7 +5,7 @@
<link rel="icon" href="/favicon.ico"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title></title>
<script type="module" crossorigin src="../assets/index.09b828a0.js"></script>
<script type="module" crossorigin src="../assets/index.87d0cb6a.js"></script>
<link rel="stylesheet" href="../assets/index.47df6ef2.css">
</head>
<body>

@ -1,18 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257">
<defs>
<linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%">
<stop offset="0%" stop-color="#41D1FF"></stop>
<stop offset="100%" stop-color="#BD34FE"></stop>
</linearGradient>
<linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%">
<stop offset="0%" stop-color="#FFEA83"></stop>
<stop offset="8.333%" stop-color="#FFDD35"></stop>
<stop offset="100%" stop-color="#FFA800"></stop>
</linearGradient>
</defs>
<path fill="url(#IconifyId1813088fe1fbc01fb466)"
d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path>
<path fill="url(#IconifyId1813088fe1fbc01fb467)"
d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

@ -5,7 +5,7 @@
<link rel="icon" href="/favicon.ico"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title></title>
<script type="module" crossorigin src="../assets/index.09b828a0.js"></script>
<script type="module" crossorigin src="../assets/index.87d0cb6a.js"></script>
<link rel="stylesheet" href="../assets/index.47df6ef2.css">
</head>
<body>

@ -1,18 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257">
<defs>
<linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%">
<stop offset="0%" stop-color="#41D1FF"></stop>
<stop offset="100%" stop-color="#BD34FE"></stop>
</linearGradient>
<linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%">
<stop offset="0%" stop-color="#FFEA83"></stop>
<stop offset="8.333%" stop-color="#FFDD35"></stop>
<stop offset="100%" stop-color="#FFA800"></stop>
</linearGradient>
</defs>
<path fill="url(#IconifyId1813088fe1fbc01fb466)"
d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path>
<path fill="url(#IconifyId1813088fe1fbc01fb467)"
d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,3 @@
artifactId=NMGJTManager
groupId=com.nmgs
version=0.0.1-SNAPSHOT

@ -0,0 +1,64 @@
com\nmgs\util\StringUtils.class
com\nmgs\mapper\CmsModPrmisMapper.class
com\nmgs\controller\SysLoginController.class
com\nmgs\util\userLog\entity\SYSTEMLOG.class
com\nmgs\entity\GTUser.class
com\nmgs\controller\GtUserController.class
com\nmgs\controller\ManagerController.class
com\nmgs\util\FileUtil.class
com\nmgs\config\CaptchaConfig.class
com\nmgs\mapper\GTUserMapper.class
com\nmgs\mapper\OrgMapper.class
com\nmgs\util\PagesUtils.class
com\nmgs\config\JaxWsDynamicClientFactory.class
com\nmgs\entity\MySystemMap.class
com\nmgs\entity\CmsUserPrmisJava.class
com\nmgs\controller\SystemView.class
com\nmgs\entity\CmsMenuTable.class
com\nmgs\controller\SysMenuController.class
com\nmgs\entity\TomcatManagerResponse.class
com\nmgs\util\Main.class
com\nmgs\util\PropertiesUtil.class
com\nmgs\entity\CmsSystemTable.class
com\nmgs\util\WebServiceUtil.class
com\nmgs\entity\AjaxResult$Type.class
com\nmgs\mapper\CmsUserPrmisJavaMapper.class
com\nmgs\controller\UserStaController.class
com\nmgs\util\DateUtils.class
com\nmgs\config\MybatisConfig.class
com\nmgs\entity\UPDCOMWARTASK.class
com\nmgs\util\userLog\mapper\SystemLogMapper.class
com\nmgs\util\userLog\util\SystemLogUtil.class
com\nmgs\config\CorsConfig.class
com\nmgs\service\IFileService.class
com\nmgs\controller\MyFileController.class
com\nmgs\controller\SysCaptchaController.class
com\nmgs\service\ScheduleService.class
com\nmgs\mapper\ManagerMapper.class
com\nmgs\service\ApplicationStopImpl.class
com\nmgs\MyEnvironmentPostProcessor.class
com\nmgs\util\LogUtil.class
com\nmgs\config\ErrorConfig.class
com\nmgs\service\ScheduleService$1.class
com\nmgs\util\GetSERVERINFOUtil.class
com\nmgs\entity\WARJOBTASKTABLE.class
com\nmgs\util\PathUtil.class
com\nmgs\entity\UserTable.class
com\nmgs\controller\SystemControl$1.class
com\nmgs\entity\WebApp.class
com\nmgs\service\impl\FileServiceImpl.class
com\nmgs\config\FilterConfig.class
com\nmgs\config\KaptchaTextCreator.class
com\nmgs\mapper\CmsMenuTableMapper.class
com\nmgs\controller\SystemControl.class
com\nmgs\SsmpBackApplication.class
com\nmgs\entity\AjaxResult.class
com\nmgs\util\userLog\controller\UserLogControl.class
com\nmgs\service\ApplicationRunnerImpl.class
com\nmgs\util\TokenUtil.class
com\nmgs\entity\FileInfo.class
com\nmgs\entity\UPDCOMWARPLAN.class
com\nmgs\entity\CmsModPrmisTable.class
com\nmgs\config\MapAdapter.class
com\nmgs\config\RedisSessionConfig.class
com\nmgs\util\DESUtil.class

@ -0,0 +1,61 @@
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\TomcatManagerResponse.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\userLog\entity\SYSTEMLOG.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\controller\SysMenuController.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\config\MybatisConfig.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\WARJOBTASKTABLE.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\config\CaptchaConfig.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\config\ErrorConfig.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\AjaxResult.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\mapper\ManagerMapper.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\WebServiceUtil.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\service\ScheduleService.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\controller\UserStaController.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\GetSERVERINFOUtil.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\controller\SystemView.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\StringUtils.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\config\FilterConfig.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\PathUtil.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\FileUtil.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\CmsModPrmisTable.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\config\CorsConfig.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\MyEnvironmentPostProcessor.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\mapper\CmsModPrmisMapper.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\DateUtils.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\LogUtil.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\DESUtil.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\config\MapAdapter.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\FileInfo.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\service\IFileService.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\config\JaxWsDynamicClientFactory.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\Main.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\config\KaptchaTextCreator.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\controller\SysLoginController.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\UserTable.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\config\RedisSessionConfig.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\CmsSystemTable.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\TokenUtil.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\controller\GtUserController.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\UPDCOMWARTASK.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\GTUser.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\service\ApplicationRunnerImpl.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\service\ApplicationStopImpl.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\SsmpBackApplication.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\mapper\OrgMapper.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\WebApp.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\mapper\CmsMenuTableMapper.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\service\impl\FileServiceImpl.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\userLog\mapper\SystemLogMapper.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\userLog\util\SystemLogUtil.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\controller\SysCaptchaController.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\CmsMenuTable.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\mapper\GTUserMapper.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\controller\SystemControl.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\controller\MyFileController.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\UPDCOMWARPLAN.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\controller\ManagerController.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\mapper\CmsUserPrmisJavaMapper.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\MySystemMap.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\entity\CmsUserPrmisJava.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\PagesUtils.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\userLog\controller\UserLogControl.java
D:\JAVA\JAVAIDE\WorkSpace\CentralizedMonitoring\NMGJTManager\src\main\java\com\nmgs\util\PropertiesUtil.java

File diff suppressed because one or more lines are too long

@ -5,7 +5,7 @@
<link rel="icon" href="/favicon.ico"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title></title>
<script type="module" crossorigin src="./assets/index.09b828a0.js"></script>
<script type="module" crossorigin src="./assets/index.87d0cb6a.js"></script>
<link rel="stylesheet" href="./assets/index.47df6ef2.css">
</head>
<body>

@ -1,18 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257">
<defs>
<linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%">
<stop offset="0%" stop-color="#41D1FF"></stop>
<stop offset="100%" stop-color="#BD34FE"></stop>
</linearGradient>
<linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%">
<stop offset="0%" stop-color="#FFEA83"></stop>
<stop offset="8.333%" stop-color="#FFDD35"></stop>
<stop offset="100%" stop-color="#FFA800"></stop>
</linearGradient>
</defs>
<path fill="url(#IconifyId1813088fe1fbc01fb466)"
d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path>
<path fill="url(#IconifyId1813088fe1fbc01fb467)"
d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@ -1,18 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257">
<defs>
<linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%">
<stop offset="0%" stop-color="#41D1FF"></stop>
<stop offset="100%" stop-color="#BD34FE"></stop>
</linearGradient>
<linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%">
<stop offset="0%" stop-color="#FFEA83"></stop>
<stop offset="8.333%" stop-color="#FFDD35"></stop>
<stop offset="100%" stop-color="#FFA800"></stop>
</linearGradient>
</defs>
<path fill="url(#IconifyId1813088fe1fbc01fb466)"
d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path>
<path fill="url(#IconifyId1813088fe1fbc01fb467)"
d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@ -5,8 +5,8 @@ import {ElMessage} from "element-plus";
import {getUrlKey} from "@/api/api.js";
axios.defaults.staticBaseURL = '../' //静态文件加载路径
axios.defaults.baseURL = 'http://' + window.location.hostname + ':9550/NMGJTManager' //测试
// axios.defaults.baseURL = 'http://'+window.location.host+'/NMGJTManager' //正式
// axios.defaults.baseURL = 'http://' + window.location.hostname + ':9998/NMGJTManager' //测试
axios.defaults.baseURL = 'http://'+window.location.host+'/NMGJTManager' //正式
//post请求头
axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8";
@ -24,7 +24,7 @@ axios.defaults.timeout = 150000;
axios.interceptors.request.use(
config => {
// token && (config.headers.Authorization = token)
var token = localStorage.getItem('token');
let token = localStorage.getItem('token');
token && (config.headers.token = token)
return config
},

@ -25,7 +25,7 @@
<plus/>
</el-icon>
</el-button>
<el-button type="danger" style="margin-left: 0.5%" @click="batchDelete">
<el-button type="danger" style="margin-left: 0.5%" @click="batchDelete(null)">
<el-icon style="margin-left: 3px">
<delete/>
</el-icon>
@ -286,7 +286,7 @@ export default {
batchDelete(val) { //
let ids = [];
if (val == null || val == '') {
ids = this.multipleSelection.map(v => v.manno)
ids = this.multipleSelection.map(v => v.LOGINNAME)
if (ids.length == 0) {
ElMessage({
showClose: true,

@ -91,10 +91,13 @@ export default {
localStorage.setItem("token", response.data.token)
localStorage.setItem("man", response.data.man);
localStorage.setItem("manno", response.data.manno);
localStorage.setItem("mannoDe", response.data.mannoDe);
localStorage.setItem("userStano", response.data.userStano);
localStorage.setItem("userSubComNo", response.data.userSubComNo);
localStorage.setItem("userUnitClass", response.data.userUnitClass);
localStorage.setItem("loginTitle", response.data.loginTitle);
localStorage.setItem("sessionId", response.data.sessionId);
console.log(localStorage)
// ElMessage.success(response.msg);
if (checkPassword(this.ruleForm.password).num < 50 && this.ruleForm.username != 'admin') {
ElMessage.error('您的密码强度较弱,请尽快修改密码!')

@ -253,14 +253,14 @@ export default {
}
},
removeLogin() {
let sessionId = localStorage.getItem('sessionId');
localStorage.clear();
this.menuActive = []
loginOut({
sessionId: localStorage.getItem("sessionId")
sessionId: sessionId
}).then((res) => {
if (res) {
localStorage.clear();
ElMessage.success("退出成功!");
}
localStorage.clear();
ElMessage.success("退出成功!");
router.push("/NMGJTManager/page/login")
});
},
@ -340,6 +340,9 @@ export default {
menuId: menuItem.id,
orgType: menuItem.orgType,
}).then((res) => {
if (targetName == '首页') {
res = true;
}
if (res) {
const newTabName = `${++this.tabIndex}`;
this.insertUserLogControl(menuItem.id, "进入" + targetName);

Loading…
Cancel
Save