添加现场存活日志校验
This commit is contained in:
@@ -161,28 +161,37 @@ public class ScheduleThread {
|
||||
* 开始线程
|
||||
*/
|
||||
public void startAllThread() {
|
||||
plcSsjReadCustomThread.getThread().start();
|
||||
if (plcSsjReadCustomThread !=null){
|
||||
plcSsjReadCustomThread.getThread().setName("输送机读取线程");
|
||||
plcSsjReadCustomThread.getThread().start();
|
||||
}
|
||||
if (plcDdj1ReadCustomThread!=null){
|
||||
plcDdj1ReadCustomThread.getThread().setName("ddj1读取线程");
|
||||
plcDdj1ReadCustomThread.getThread().start();
|
||||
|
||||
}
|
||||
if (plcDdj2ReadCustomThread!=null){
|
||||
plcDdj2ReadCustomThread.getThread().setName("ddj2读取线程");
|
||||
plcDdj2ReadCustomThread.getThread().start();
|
||||
|
||||
}
|
||||
if (plcDdj3ReadCustomThread!=null){
|
||||
plcDdj3ReadCustomThread.getThread().setName("ddj3读取线程");
|
||||
plcDdj3ReadCustomThread.getThread().start();
|
||||
|
||||
}
|
||||
if (plcDdj4ReadCustomThread!=null){
|
||||
plcDdj4ReadCustomThread.getThread().setName("ddj4读取线程");
|
||||
plcDdj4ReadCustomThread.getThread().start();
|
||||
|
||||
}
|
||||
if (plcDdj5ReadCustomThread!=null){
|
||||
plcDdj5ReadCustomThread.getThread().setName("ddj5读取线程");
|
||||
plcDdj5ReadCustomThread.getThread().start();
|
||||
|
||||
}
|
||||
if (plcDdj6ReadCustomThread!=null){
|
||||
plcDdj6ReadCustomThread.getThread().setName("ddj6读取线程");
|
||||
plcDdj6ReadCustomThread.getThread().start();
|
||||
|
||||
}
|
||||
@@ -193,28 +202,37 @@ public class ScheduleThread {
|
||||
* 开启线程2
|
||||
*/
|
||||
public void startAllThread2() {
|
||||
monitoringCustomThread.thread.start();
|
||||
if (monitoringCustomThread!=null){
|
||||
monitoringCustomThread.thread.setName("监控线程");
|
||||
monitoringCustomThread.thread.start();
|
||||
}
|
||||
if (ddj1CustomThread!=null){
|
||||
ddj1CustomThread.thread.setName("ddj1调度线程");
|
||||
ddj1CustomThread.thread.start();
|
||||
|
||||
}
|
||||
if (ddj2CustomThread!=null){
|
||||
ddj2CustomThread.thread.setName("ddj5调度线程");
|
||||
ddj2CustomThread.thread.start();
|
||||
|
||||
}
|
||||
if (ddj3CustomThread!=null){
|
||||
ddj3CustomThread.thread.setName("ddj3调度线程");
|
||||
ddj3CustomThread.thread.start();
|
||||
|
||||
}
|
||||
if (ddj4CustomThread!=null){
|
||||
ddj4CustomThread.thread.setName("ddj4调度线程");
|
||||
ddj4CustomThread.thread.start();
|
||||
|
||||
}
|
||||
if (ddj5CustomThread!=null){
|
||||
ddj5CustomThread.thread.setName("ddj5调度线程");
|
||||
ddj5CustomThread.thread.start();
|
||||
|
||||
}
|
||||
if (ddj6CustomThread!=null){
|
||||
ddj6CustomThread.thread.setName("ddj6调度线程");
|
||||
ddj6CustomThread.thread.start();
|
||||
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ public class PlcDdjRead extends Thread {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
int i = 0;
|
||||
while (isRun) {
|
||||
try {
|
||||
if (IsConnect()) {
|
||||
@@ -45,9 +46,13 @@ public class PlcDdjRead extends Thread {
|
||||
} else {
|
||||
reConnect();
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
i++;
|
||||
if (i==100){
|
||||
log.info("读取线程执行正常");
|
||||
i=0;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(),e);
|
||||
log.info("********IP:" + this.ip + " port:" + this.port + "端口号 " + e.getMessage());
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ public class PlcSsjRead implements Runnable {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
int i = 0;
|
||||
while (isRun) {
|
||||
try {
|
||||
if (IsConnect()) {
|
||||
@@ -72,11 +73,13 @@ public class PlcSsjRead implements Runnable {
|
||||
} else {
|
||||
reConnect();
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
// 捕获中断异常,退出循环
|
||||
Thread.currentThread().interrupt(); // 重新设置中断标志
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
i++;
|
||||
if (i==100){
|
||||
log.info("读取线程执行正常");
|
||||
i=0;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(),e);
|
||||
log.info("********IP:" + this.ip + " port:" + this.port + "读取数据异常 " + e.getMessage());
|
||||
}
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface {
|
||||
@Override
|
||||
public void run() {
|
||||
init();
|
||||
int i = 0;
|
||||
while (isRun) {
|
||||
for (String type : ddjCodeList.keySet()) {
|
||||
|
||||
@@ -96,6 +97,7 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface {
|
||||
generateOutBoundQueue(msgDdj);
|
||||
setOutSsjStatus(msgDdj);
|
||||
ddjTask(msgDdj);
|
||||
|
||||
} else {
|
||||
log.error("堆垛机设备为空");
|
||||
}
|
||||
@@ -105,10 +107,15 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface {
|
||||
|
||||
}
|
||||
}
|
||||
i++;
|
||||
if (i==100){
|
||||
log.info("ddj{},循环完成",ddjCodeList);
|
||||
i=0;
|
||||
}
|
||||
try {
|
||||
Thread.sleep(1500);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
log.error(e.getMessage(),e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,153 +45,169 @@ public class MonitoringThread implements Runnable {
|
||||
@Override
|
||||
public void run() {
|
||||
init();
|
||||
int i =0;
|
||||
while (isRun){
|
||||
try {
|
||||
|
||||
for (String ssjCode : PlcSsjRead.deviceSsjMap.keySet()) {
|
||||
DeviceSsj deviceSsj = PlcSsjRead.deviceSsjMap.get(ssjCode);
|
||||
deviceSsjService.updateDeviceSsj(deviceSsj);
|
||||
int taskNo = deviceSsj.getTaskNo();
|
||||
try {
|
||||
DeviceSsj deviceSsj = PlcSsjRead.deviceSsjMap.get(ssjCode);
|
||||
deviceSsjService.updateDeviceSsj(deviceSsj);
|
||||
int taskNo = deviceSsj.getTaskNo();
|
||||
|
||||
//输送机外形异常 101-前超长 102-后超长 103-左超宽 104-右超宽 105-超高 106-超重
|
||||
if (deviceSsj.getException() >= 101 && deviceSsj.getException() <= 120 && deviceSsj.getTaskNo()>0) {
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setTaskNo(Convert.toStr(deviceSsj.getTaskNo()));
|
||||
param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isEmpty(basFaultRecords)) {
|
||||
BasFaultRecord record = new BasFaultRecord();
|
||||
record.setId(IdUtil.simpleUUID());
|
||||
record.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
|
||||
record.setDeviceName(deviceSsj.getName());
|
||||
record.setDeviceType("ssj");
|
||||
record.setTaskNo(Convert.toStr(deviceSsj.getTaskNo()));
|
||||
record.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
record.setFault(getSsjZt(deviceSsj.getException()));
|
||||
record.setJobId("0");
|
||||
basFaultRecordService.insertBasFaultRecord(record);
|
||||
//输送机外形异常 101-前超长 102-后超长 103-左超宽 104-右超宽 105-超高 106-超重
|
||||
if (deviceSsj.getException() >= 101 && deviceSsj.getException() <= 120 && deviceSsj.getTaskNo()>0) {
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setTaskNo(Convert.toStr(deviceSsj.getTaskNo()));
|
||||
param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isEmpty(basFaultRecords)) {
|
||||
BasFaultRecord record = new BasFaultRecord();
|
||||
record.setId(IdUtil.simpleUUID());
|
||||
record.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
|
||||
record.setDeviceName(deviceSsj.getName());
|
||||
record.setDeviceType("ssj");
|
||||
record.setTaskNo(Convert.toStr(deviceSsj.getTaskNo()));
|
||||
record.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
record.setFault(getSsjZt(deviceSsj.getException()));
|
||||
record.setJobId("0");
|
||||
basFaultRecordService.insertBasFaultRecord(record);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//人工处理 恢复异常
|
||||
if (deviceSsj.getException() == 0 && deviceSsj.getTaskNo() >= 200) {
|
||||
//查询记录 更新故障结束时间
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isNotEmpty(basFaultRecords)) {
|
||||
BasFaultRecord record = basFaultRecords.get(0);
|
||||
record.setJobId("1");
|
||||
record.setFinishTime(DateUtil.formatDateTime(new Date()));
|
||||
basFaultRecordService.updateBasFaultRecord(record);
|
||||
//人工处理 恢复异常
|
||||
if (deviceSsj.getException() == 0 && deviceSsj.getTaskNo() >= 200) {
|
||||
//查询记录 更新故障结束时间
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isNotEmpty(basFaultRecords)) {
|
||||
BasFaultRecord record = basFaultRecords.get(0);
|
||||
record.setJobId("1");
|
||||
record.setFinishTime(DateUtil.formatDateTime(new Date()));
|
||||
basFaultRecordService.updateBasFaultRecord(record);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (taskNo >= 50 && taskNo < 200) {
|
||||
//扫码失败+0 无任务+100 无货位+20 已存在当前托盘+40
|
||||
if (taskNo >= 50 && taskNo < 200) {
|
||||
//扫码失败+0 无任务+100 无货位+20 已存在当前托盘+40
|
||||
/*
|
||||
"L2001", 80 "L2002", 81 "L2007", 82 "L2008", 83 "L2003", 84 "L2004", 85
|
||||
"L2009", 86 "L2010", 87 "L2005", 88 "L2006", 89 "L2011", 90 "L2012", 91
|
||||
"L1001", 92 "L1002", 93 "L1003", 94 "L1004", 95 "L1005", 96 "L1006", 97
|
||||
*/
|
||||
String trayCode = null;
|
||||
if (taskNo>100){
|
||||
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(Convert.toLong(taskNo), Convert.toInt(deviceSsj.getId()));
|
||||
if (ObjUtil.isNotNull(ddjDeviceExecutionQueue)) {
|
||||
trayCode = ddjDeviceExecutionQueue.getSpare4();
|
||||
String trayCode = null;
|
||||
if (taskNo>100){
|
||||
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(Convert.toLong(taskNo), Convert.toInt(deviceSsj.getId()));
|
||||
if (ObjUtil.isNotNull(ddjDeviceExecutionQueue)) {
|
||||
trayCode = ddjDeviceExecutionQueue.getSpare4();
|
||||
}
|
||||
}
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setTaskNo(Convert.toStr(taskNo));
|
||||
param.setDeviceId(ssjCode);
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isEmpty(basFaultRecords)) {
|
||||
BasFaultRecord record = new BasFaultRecord();
|
||||
record.setId(IdUtil.simpleUUID());
|
||||
record.setDeviceId(ssjCode);
|
||||
record.setDeviceName(ssjCode);
|
||||
record.setDeviceType("ssj");
|
||||
record.setTaskNo(Convert.toStr(taskNo));
|
||||
record.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
if (taskNo >= 80 && taskNo <= 97) {
|
||||
//扫码失败
|
||||
record.setFault(getDdjZt(107, trayCode));
|
||||
} else if (taskNo >= 100 && taskNo < 120) {
|
||||
//无货位
|
||||
record.setFault(getDdjZt(108, trayCode));
|
||||
} else if (taskNo >= 120 && taskNo < 140) {
|
||||
//已存在当前托盘
|
||||
record.setFault(getDdjZt(109, trayCode));
|
||||
} else {
|
||||
//无任务
|
||||
record.setFault(getDdjZt(110, trayCode));
|
||||
}
|
||||
record.setJobId("0");
|
||||
basFaultRecordService.insertBasFaultRecord(record);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//取走托盘 恢复异常
|
||||
if (deviceSsj.getTaskNo() == 0 && deviceSsj.getKx() == 1) {
|
||||
//查询记录 更新故障结束时间
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isNotEmpty(basFaultRecords)) {
|
||||
BasFaultRecord record = basFaultRecords.get(0);
|
||||
record.setJobId("1");
|
||||
record.setFinishTime(DateUtil.formatDateTime(new Date()));
|
||||
basFaultRecordService.updateBasFaultRecord(record);
|
||||
}
|
||||
}
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setTaskNo(Convert.toStr(taskNo));
|
||||
param.setDeviceId(ssjCode);
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isEmpty(basFaultRecords)) {
|
||||
BasFaultRecord record = new BasFaultRecord();
|
||||
record.setId(IdUtil.simpleUUID());
|
||||
record.setDeviceId(ssjCode);
|
||||
record.setDeviceName(ssjCode);
|
||||
record.setDeviceType("ssj");
|
||||
record.setTaskNo(Convert.toStr(taskNo));
|
||||
record.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
if (taskNo >= 80 && taskNo <= 97) {
|
||||
//扫码失败
|
||||
record.setFault(getDdjZt(107, trayCode));
|
||||
} else if (taskNo >= 100 && taskNo < 120) {
|
||||
//无货位
|
||||
record.setFault(getDdjZt(108, trayCode));
|
||||
} else if (taskNo >= 120 && taskNo < 140) {
|
||||
//已存在当前托盘
|
||||
record.setFault(getDdjZt(109, trayCode));
|
||||
} else {
|
||||
//无任务
|
||||
record.setFault(getDdjZt(110, trayCode));
|
||||
}
|
||||
record.setJobId("0");
|
||||
basFaultRecordService.insertBasFaultRecord(record);
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(),e);
|
||||
}
|
||||
|
||||
//取走托盘 恢复异常
|
||||
if (deviceSsj.getTaskNo() == 0 && deviceSsj.getKx() == 1) {
|
||||
//查询记录 更新故障结束时间
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isNotEmpty(basFaultRecords)) {
|
||||
BasFaultRecord record = basFaultRecords.get(0);
|
||||
record.setJobId("1");
|
||||
record.setFinishTime(DateUtil.formatDateTime(new Date()));
|
||||
basFaultRecordService.updateBasFaultRecord(record);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (String ddjCode : PlcDdjRead.deviceDdjMap.keySet()) {
|
||||
MsgDdj msgDdj = PlcDdjRead.deviceDdjMap.get(ddjCode);
|
||||
msgDdjService.updateMsgDdj(msgDdj);
|
||||
//记录异常
|
||||
if (msgDdj.getSbzt() > 1000) {
|
||||
//查询记录,添加故障开始时间
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setTaskNo(Convert.toStr(msgDdj.getRwh()));
|
||||
param.setDeviceId(Convert.toStr(msgDdj.getId()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isEmpty(basFaultRecords)){
|
||||
BasFaultRecord record = new BasFaultRecord();
|
||||
record.setId(IdUtil.simpleUUID());
|
||||
record.setDeviceId(Convert.toStr(msgDdj.getId()));
|
||||
record.setDeviceName(msgDdj.getName());
|
||||
record.setDeviceType("ddj");
|
||||
record.setTaskNo(Convert.toStr(msgDdj.getRwh()));
|
||||
record.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
record.setFault(getDdjZt(msgDdj.getSbzt(), null));
|
||||
record.setJobId("0");
|
||||
basFaultRecordService.insertBasFaultRecord(record);
|
||||
try {
|
||||
MsgDdj msgDdj = PlcDdjRead.deviceDdjMap.get(ddjCode);
|
||||
msgDdjService.updateMsgDdj(msgDdj);
|
||||
//记录异常
|
||||
if (msgDdj.getSbzt() > 1000) {
|
||||
//查询记录,添加故障开始时间
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
param.setTaskNo(Convert.toStr(msgDdj.getRwh()));
|
||||
param.setDeviceId(Convert.toStr(msgDdj.getId()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isEmpty(basFaultRecords)){
|
||||
BasFaultRecord record = new BasFaultRecord();
|
||||
record.setId(IdUtil.simpleUUID());
|
||||
record.setDeviceId(Convert.toStr(msgDdj.getId()));
|
||||
record.setDeviceName(msgDdj.getName());
|
||||
record.setDeviceType("ddj");
|
||||
record.setTaskNo(Convert.toStr(msgDdj.getRwh()));
|
||||
record.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
record.setFault(getDdjZt(msgDdj.getSbzt(), null));
|
||||
record.setJobId("0");
|
||||
basFaultRecordService.insertBasFaultRecord(record);
|
||||
}
|
||||
}
|
||||
}
|
||||
//恢复异常
|
||||
if (msgDdj.getSbzt() < 1000 && msgDdj.getCzfs()==5){
|
||||
//查询记录 更新故障结束时间
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
//param.setTaskNo(Convert.toStr(msgDdj.getRwh()));
|
||||
param.setDeviceId(Convert.toStr(msgDdj.getId()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isNotEmpty(basFaultRecords)){
|
||||
BasFaultRecord record = basFaultRecords.get(0);
|
||||
record.setJobId("1");
|
||||
record.setFinishTime(DateUtil.formatDateTime(new Date()));
|
||||
basFaultRecordService.updateBasFaultRecord(record);
|
||||
//恢复异常
|
||||
if (msgDdj.getSbzt() < 1000 && msgDdj.getCzfs()==5){
|
||||
//查询记录 更新故障结束时间
|
||||
BasFaultRecord param = new BasFaultRecord();
|
||||
//param.setTaskNo(Convert.toStr(msgDdj.getRwh()));
|
||||
param.setDeviceId(Convert.toStr(msgDdj.getId()));
|
||||
param.setJobId("0");
|
||||
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
|
||||
if (CollUtil.isNotEmpty(basFaultRecords)){
|
||||
BasFaultRecord record = basFaultRecords.get(0);
|
||||
record.setJobId("1");
|
||||
record.setFinishTime(DateUtil.formatDateTime(new Date()));
|
||||
basFaultRecordService.updateBasFaultRecord(record);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(),e);
|
||||
}
|
||||
|
||||
}
|
||||
i++;
|
||||
if (i==100){
|
||||
log.info("监控线程循环完成");
|
||||
i=0;
|
||||
}
|
||||
Thread.sleep(1500);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
|
||||
@@ -6,8 +6,8 @@ spring:
|
||||
druid:
|
||||
#主数据信息
|
||||
master:
|
||||
# url: jdbc:sqlserver://172.19.1.119:1433;databaseName=FT541-wcs;
|
||||
url: jdbc:sqlserver://172.19.1.119:1433;databaseName=FT541-wcs-2;
|
||||
url: jdbc:sqlserver://172.19.1.119:1433;databaseName=FT541-wcs;
|
||||
# url: jdbc:sqlserver://172.19.1.119:1433;databaseName=FT541-wcs-2;
|
||||
username: sa
|
||||
password: Flrd0914.
|
||||
# 从库数据源
|
||||
|
||||
Reference in New Issue
Block a user