更新
This commit is contained in:
@@ -3,10 +3,21 @@ package org.nl.acs.device_driver.hailiang.hailiang_coating;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||
import org.nl.acs.opc.Device;
|
||||
import org.nl.acs.order.service.ProduceshiftorderService;
|
||||
import org.nl.acs.order.service.ProduceshiftorderdetailService;
|
||||
import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto;
|
||||
import org.nl.utils.SpringContextHolder;
|
||||
import org.openscada.opc.lib.da.Server;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 海亮-裹膜机线体
|
||||
@@ -23,9 +34,106 @@ public class HaiLiangCoatingDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
}
|
||||
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class);
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderdetailService produceshiftorderdetailService = SpringContextHolder.getBean(ProduceshiftorderdetailService.class);
|
||||
|
||||
String device_code;
|
||||
int mode = 0;
|
||||
int last_mode = 0;
|
||||
int error = 0;
|
||||
int move = 0;
|
||||
int order = 0;
|
||||
int order_detail = 0;
|
||||
int detail_qty = 0;
|
||||
int detail_qualified_qty = 0;
|
||||
|
||||
boolean requireSucess = false;
|
||||
|
||||
private Date detail_time = new Date();
|
||||
private int detail_time_out = 3000;
|
||||
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
String message = null;
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
mode = this.itemProtocol.getMode();
|
||||
error = this.itemProtocol.getError();
|
||||
order = this.itemProtocol.getOrder();
|
||||
order_detail = this.itemProtocol.getOrder_detail();
|
||||
//当前工单明细号上料数量
|
||||
detail_qty = this.itemProtocol.getDetail_qty();
|
||||
//当前工单明细号上料合格数量
|
||||
detail_qualified_qty = this.itemProtocol.getDetail_qualified_qty();
|
||||
if (mode != last_mode) {
|
||||
this.setRequireSucess(false);
|
||||
}
|
||||
} catch (Exception var17) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (mode == 0) {
|
||||
|
||||
message = "未联机";
|
||||
//有报警
|
||||
} else if (error != 0) {
|
||||
|
||||
message = "有报警";
|
||||
//无报警
|
||||
} else {
|
||||
message = "";
|
||||
|
||||
switch (mode) {
|
||||
case 1:
|
||||
log.debug("设备运转模式:等待工作");
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 4:
|
||||
//上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0){
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"01");
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
//强制上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0 ) {
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"02");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
last_mode = mode;
|
||||
}
|
||||
|
||||
public synchronized boolean update_detail(String order, String order_detail,String status) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.detail_time_out < (long) this.detail_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.detail_time_out);
|
||||
return false;
|
||||
} else {
|
||||
this.detail_time = date;
|
||||
ProduceshiftorderdetailDto dto = produceshiftorderdetailService.findOrderDetailFromCache(String.valueOf(order), String.valueOf(order_detail));
|
||||
dto.setWraping_finished(status);
|
||||
dto.setWraping_finish_time(date.toString());
|
||||
produceshiftorderdetailService.update(dto);
|
||||
writing(itemProtocol.item_to_command,String.valueOf(mode));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void writing(String param, String value) {
|
||||
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + param;
|
||||
String opcservcerid = this.getDevice().getOpc_server_id();
|
||||
Server server = ReadUtil.getServer(opcservcerid);
|
||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||
itemMap.put(to_param, Double.parseDouble(value));
|
||||
ReadUtil.write(itemMap, server);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,11 +3,22 @@ package org.nl.acs.device_driver.hailiang.hailiang_feeding;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||
import org.nl.acs.opc.Device;
|
||||
import org.nl.acs.order.service.ProduceshiftorderService;
|
||||
import org.nl.acs.order.service.ProduceshiftorderdetailService;
|
||||
import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto;
|
||||
import org.nl.utils.SpringContextHolder;
|
||||
import org.openscada.opc.lib.da.Server;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 海亮-上料线体
|
||||
@@ -23,6 +34,11 @@ public class HaiLiangFeedingDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
return this.device;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class);
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderdetailService produceshiftorderdetailService = SpringContextHolder.getBean(ProduceshiftorderdetailService.class);
|
||||
|
||||
String device_code;
|
||||
int mode = 0;
|
||||
@@ -36,6 +52,9 @@ public class HaiLiangFeedingDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
|
||||
boolean requireSucess = false;
|
||||
|
||||
private Date detail_time = new Date();
|
||||
private int detail_time_out = 3000;
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
String message = null;
|
||||
@@ -77,13 +96,13 @@ public class HaiLiangFeedingDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
case 4:
|
||||
//上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0){
|
||||
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"01");
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
//强制上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0 ) {
|
||||
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"02");
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -92,4 +111,29 @@ public class HaiLiangFeedingDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
}
|
||||
|
||||
|
||||
public synchronized boolean update_detail(String order, String order_detail,String status) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.detail_time_out < (long) this.detail_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.detail_time_out);
|
||||
return false;
|
||||
} else {
|
||||
this.detail_time = date;
|
||||
ProduceshiftorderdetailDto dto = produceshiftorderdetailService.findOrderDetailFromCache(String.valueOf(order), String.valueOf(order_detail));
|
||||
dto.setFeeding_finished(status);
|
||||
dto.setFeeding_finish_time(date.toString());
|
||||
produceshiftorderdetailService.update(dto);
|
||||
writing(itemProtocol.item_to_command,String.valueOf(mode));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void writing(String param, String value) {
|
||||
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + param;
|
||||
String opcservcerid = this.getDevice().getOpc_server_id();
|
||||
Server server = ReadUtil.getServer(opcservcerid);
|
||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||
itemMap.put(to_param, Double.parseDouble(value));
|
||||
ReadUtil.write(itemMap, server);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,10 +119,14 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im
|
||||
this.setRequireSucess(false);
|
||||
}
|
||||
|
||||
if(order >0 && order_detail>0){
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail));
|
||||
try{
|
||||
if(order >0 && order_detail>0){
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail));
|
||||
}
|
||||
}
|
||||
catch (Exception e){
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception var17) {
|
||||
return;
|
||||
@@ -147,7 +151,7 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im
|
||||
break;
|
||||
case 3:
|
||||
//申请工单
|
||||
if(!requireSucess && ready == 1 ){
|
||||
if(!requireSucess && ready == 1 && order ==0 && order_detail ==0 ){
|
||||
apply_order();
|
||||
}
|
||||
break;
|
||||
@@ -171,6 +175,9 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im
|
||||
} else {
|
||||
this.detail_time= date;
|
||||
ProduceshiftorderdetailDto dto = produceshiftorderdetailService.findOrderDetailFromCache(String.valueOf(order),String.valueOf(order_detail));
|
||||
if(ObjectUtil.isEmpty(dto)){
|
||||
return false;
|
||||
}
|
||||
//上料数量
|
||||
dto.setPresent_feeding_number(String.valueOf(detail_feeding_qty));
|
||||
//上料合格数量
|
||||
|
||||
@@ -3,10 +3,21 @@ package org.nl.acs.device_driver.hailiang.hailiang_labeling;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||
import org.nl.acs.opc.Device;
|
||||
import org.nl.acs.order.service.ProduceshiftorderService;
|
||||
import org.nl.acs.order.service.ProduceshiftorderdetailService;
|
||||
import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto;
|
||||
import org.nl.utils.SpringContextHolder;
|
||||
import org.openscada.opc.lib.da.Server;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 海亮贴标线体
|
||||
@@ -22,9 +33,107 @@ public class HaiLiangLabelingDeviceDriver extends AbstractOpcDeviceDriver implem
|
||||
return this.device;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class);
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderdetailService produceshiftorderdetailService = SpringContextHolder.getBean(ProduceshiftorderdetailService.class);
|
||||
|
||||
String device_code;
|
||||
int mode = 0;
|
||||
int last_mode = 0;
|
||||
int error = 0;
|
||||
int move = 0;
|
||||
int order = 0;
|
||||
int order_detail = 0;
|
||||
int detail_qty = 0;
|
||||
int detail_qualified_qty = 0;
|
||||
|
||||
boolean requireSucess = false;
|
||||
|
||||
private Date detail_time = new Date();
|
||||
private int detail_time_out = 3000;
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
String message = null;
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
mode = this.itemProtocol.getMode();
|
||||
error = this.itemProtocol.getError();
|
||||
order = this.itemProtocol.getOrder();
|
||||
order_detail = this.itemProtocol.getOrder_detail();
|
||||
//当前工单明细号上料数量
|
||||
detail_qty = this.itemProtocol.getDetail_qty();
|
||||
//当前工单明细号上料合格数量
|
||||
detail_qualified_qty = this.itemProtocol.getDetail_qualified_qty();
|
||||
if (mode != last_mode) {
|
||||
this.setRequireSucess(false);
|
||||
}
|
||||
} catch (Exception var17) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (mode == 0) {
|
||||
|
||||
message = "未联机";
|
||||
//有报警
|
||||
} else if (error != 0) {
|
||||
|
||||
message = "有报警";
|
||||
//无报警
|
||||
} else {
|
||||
message = "";
|
||||
|
||||
switch (mode) {
|
||||
case 1:
|
||||
log.debug("设备运转模式:等待工作");
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 4:
|
||||
//上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0){
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"01");
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
//强制上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0 ) {
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"02");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
last_mode = mode;
|
||||
}
|
||||
|
||||
|
||||
public synchronized boolean update_detail(String order, String order_detail,String status) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.detail_time_out < (long) this.detail_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.detail_time_out);
|
||||
return false;
|
||||
} else {
|
||||
this.detail_time = date;
|
||||
ProduceshiftorderdetailDto dto = produceshiftorderdetailService.findOrderDetailFromCache(String.valueOf(order), String.valueOf(order_detail));
|
||||
dto.setLabeling_finished(status);
|
||||
dto.setLabeling_finish_time(date.toString());
|
||||
produceshiftorderdetailService.update(dto);
|
||||
writing(itemProtocol.item_to_command,String.valueOf(mode));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void writing(String param, String value) {
|
||||
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + param;
|
||||
String opcservcerid = this.getDevice().getOpc_server_id();
|
||||
Server server = ReadUtil.getServer(opcservcerid);
|
||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||
itemMap.put(to_param, Double.parseDouble(value));
|
||||
ReadUtil.write(itemMap, server);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,10 +3,21 @@ package org.nl.acs.device_driver.hailiang.hailiang_lettering;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||
import org.nl.acs.opc.Device;
|
||||
import org.nl.acs.order.service.ProduceshiftorderService;
|
||||
import org.nl.acs.order.service.ProduceshiftorderdetailService;
|
||||
import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto;
|
||||
import org.nl.utils.SpringContextHolder;
|
||||
import org.openscada.opc.lib.da.Server;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 海亮贴标线体
|
||||
@@ -17,6 +28,27 @@ import org.nl.acs.opc.Device;
|
||||
public class HaiLiangLetteringDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver {
|
||||
protected ItemProtocol itemProtocol = new ItemProtocol(this);
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class);
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderdetailService produceshiftorderdetailService = SpringContextHolder.getBean(ProduceshiftorderdetailService.class);
|
||||
|
||||
String device_code;
|
||||
int mode = 0;
|
||||
int last_mode = 0;
|
||||
int error = 0;
|
||||
int move = 0;
|
||||
int order = 0;
|
||||
int order_detail = 0;
|
||||
int detail_qty = 0;
|
||||
int detail_qualified_qty = 0;
|
||||
|
||||
boolean requireSucess = false;
|
||||
|
||||
private Date detail_time = new Date();
|
||||
private int detail_time_out = 3000;
|
||||
|
||||
@Override
|
||||
public Device getDevice() {
|
||||
return this.device;
|
||||
@@ -24,7 +56,83 @@ public class HaiLiangLetteringDeviceDriver extends AbstractOpcDeviceDriver imple
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
String message = null;
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
mode = this.itemProtocol.getMode();
|
||||
error = this.itemProtocol.getError();
|
||||
order = this.itemProtocol.getOrder();
|
||||
order_detail = this.itemProtocol.getOrder_detail();
|
||||
//当前工单明细号上料数量
|
||||
detail_qty = this.itemProtocol.getDetail_qty();
|
||||
//当前工单明细号上料合格数量
|
||||
detail_qualified_qty = this.itemProtocol.getDetail_qualified_qty();
|
||||
if (mode != last_mode) {
|
||||
this.setRequireSucess(false);
|
||||
}
|
||||
} catch (Exception var17) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (mode == 0) {
|
||||
|
||||
message = "未联机";
|
||||
//有报警
|
||||
} else if (error != 0) {
|
||||
|
||||
message = "有报警";
|
||||
//无报警
|
||||
} else {
|
||||
message = "";
|
||||
|
||||
switch (mode) {
|
||||
case 1:
|
||||
log.debug("设备运转模式:等待工作");
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 4:
|
||||
//上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0){
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"01");
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
//强制上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0 ) {
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"02");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
last_mode = mode;
|
||||
}
|
||||
|
||||
|
||||
public synchronized boolean update_detail(String order, String order_detail,String status) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.detail_time_out < (long) this.detail_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.detail_time_out);
|
||||
return false;
|
||||
} else {
|
||||
this.detail_time = date;
|
||||
ProduceshiftorderdetailDto dto = produceshiftorderdetailService.findOrderDetailFromCache(String.valueOf(order), String.valueOf(order_detail));
|
||||
dto.setLabeling_finished(status);
|
||||
dto.setLabeling_finish_time(date.toString());
|
||||
produceshiftorderdetailService.update(dto);
|
||||
writing(itemProtocol.item_to_command,String.valueOf(mode));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void writing(String param, String value) {
|
||||
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + param;
|
||||
String opcservcerid = this.getDevice().getOpc_server_id();
|
||||
Server server = ReadUtil.getServer(opcservcerid);
|
||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||
itemMap.put(to_param, Double.parseDouble(value));
|
||||
ReadUtil.write(itemMap, server);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 海亮裹膜机
|
||||
* 海亮套冒线体
|
||||
*/
|
||||
@Service
|
||||
public class HaiLiangRiskingDefination implements OpcDeviceDriverDefination {
|
||||
|
||||
@@ -3,13 +3,24 @@ package org.nl.acs.device_driver.hailiang.hailiang_risking;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||
import org.nl.acs.opc.Device;
|
||||
import org.nl.acs.order.service.ProduceshiftorderService;
|
||||
import org.nl.acs.order.service.ProduceshiftorderdetailService;
|
||||
import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto;
|
||||
import org.nl.utils.SpringContextHolder;
|
||||
import org.openscada.opc.lib.da.Server;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 海亮-裹膜线体
|
||||
* 海亮-套冒线体
|
||||
*/
|
||||
@Slf4j
|
||||
@Data
|
||||
@@ -17,6 +28,28 @@ import org.nl.acs.opc.Device;
|
||||
public class HaiLiangRiskingDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver {
|
||||
protected ItemProtocol itemProtocol = new ItemProtocol(this);
|
||||
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class);
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderdetailService produceshiftorderdetailService = SpringContextHolder.getBean(ProduceshiftorderdetailService.class);
|
||||
|
||||
String device_code;
|
||||
int mode = 0;
|
||||
int last_mode = 0;
|
||||
int error = 0;
|
||||
int move = 0;
|
||||
int order = 0;
|
||||
int order_detail = 0;
|
||||
int detail_qty = 0;
|
||||
int detail_qualified_qty = 0;
|
||||
|
||||
boolean requireSucess = false;
|
||||
|
||||
private Date detail_time = new Date();
|
||||
private int detail_time_out = 3000;
|
||||
|
||||
@Override
|
||||
public Device getDevice() {
|
||||
return this.device;
|
||||
@@ -25,7 +58,84 @@ public class HaiLiangRiskingDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
String message = null;
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
mode = this.itemProtocol.getMode();
|
||||
error = this.itemProtocol.getError();
|
||||
order = this.itemProtocol.getOrder();
|
||||
order_detail = this.itemProtocol.getOrder_detail();
|
||||
//当前工单明细号上料数量
|
||||
detail_qty = this.itemProtocol.getDetail_qty();
|
||||
//当前工单明细号上料合格数量
|
||||
detail_qualified_qty = this.itemProtocol.getDetail_qualified_qty();
|
||||
if (mode != last_mode) {
|
||||
this.setRequireSucess(false);
|
||||
}
|
||||
} catch (Exception var17) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (mode == 0) {
|
||||
|
||||
message = "未联机";
|
||||
//有报警
|
||||
} else if (error != 0) {
|
||||
|
||||
message = "有报警";
|
||||
//无报警
|
||||
} else {
|
||||
message = "";
|
||||
|
||||
switch (mode) {
|
||||
case 1:
|
||||
log.debug("设备运转模式:等待工作");
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 4:
|
||||
//上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0){
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"01");
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
//强制上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0 ) {
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"02");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
last_mode = mode;
|
||||
}
|
||||
|
||||
|
||||
public synchronized boolean update_detail(String order, String order_detail,String status) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.detail_time_out < (long) this.detail_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.detail_time_out);
|
||||
return false;
|
||||
} else {
|
||||
this.detail_time = date;
|
||||
ProduceshiftorderdetailDto dto = produceshiftorderdetailService.findOrderDetailFromCache(String.valueOf(order), String.valueOf(order_detail));
|
||||
dto.setSleeveing_finished(status);
|
||||
dto.setSleeveing_finish_time(date.toString());
|
||||
produceshiftorderdetailService.update(dto);
|
||||
writing(itemProtocol.item_to_command,String.valueOf(mode));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void writing(String param, String value) {
|
||||
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + param;
|
||||
String opcservcerid = this.getDevice().getOpc_server_id();
|
||||
Server server = ReadUtil.getServer(opcservcerid);
|
||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||
itemMap.put(to_param, Double.parseDouble(value));
|
||||
ReadUtil.write(itemMap, server);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,10 +3,21 @@ package org.nl.acs.device_driver.hailiang.hailiang_strapping;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||
import org.nl.acs.opc.Device;
|
||||
import org.nl.acs.order.service.ProduceshiftorderService;
|
||||
import org.nl.acs.order.service.ProduceshiftorderdetailService;
|
||||
import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto;
|
||||
import org.nl.utils.SpringContextHolder;
|
||||
import org.openscada.opc.lib.da.Server;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 海亮-捆扎线体
|
||||
@@ -22,10 +33,107 @@ public class HaiLiangStrappingDeviceDriver extends AbstractOpcDeviceDriver imple
|
||||
return this.device;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class);
|
||||
|
||||
@Autowired
|
||||
ProduceshiftorderdetailService produceshiftorderdetailService = SpringContextHolder.getBean(ProduceshiftorderdetailService.class);
|
||||
|
||||
String device_code;
|
||||
int mode = 0;
|
||||
int last_mode = 0;
|
||||
int error = 0;
|
||||
int move = 0;
|
||||
int order = 0;
|
||||
int order_detail = 0;
|
||||
int detail_qty = 0;
|
||||
int detail_qualified_qty = 0;
|
||||
|
||||
boolean requireSucess = false;
|
||||
|
||||
private Date detail_time = new Date();
|
||||
private int detail_time_out = 3000;
|
||||
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
String message = null;
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
mode = this.itemProtocol.getMode();
|
||||
error = this.itemProtocol.getError();
|
||||
order = this.itemProtocol.getOrder();
|
||||
order_detail = this.itemProtocol.getOrder_detail();
|
||||
//当前工单明细号上料数量
|
||||
detail_qty = this.itemProtocol.getDetail_qty();
|
||||
//当前工单明细号上料合格数量
|
||||
detail_qualified_qty = this.itemProtocol.getDetail_qualified_qty();
|
||||
if (mode != last_mode) {
|
||||
this.setRequireSucess(false);
|
||||
}
|
||||
} catch (Exception var17) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (mode == 0) {
|
||||
|
||||
message = "未联机";
|
||||
//有报警
|
||||
} else if (error != 0) {
|
||||
|
||||
message = "有报警";
|
||||
//无报警
|
||||
} else {
|
||||
message = "";
|
||||
|
||||
switch (mode) {
|
||||
case 1:
|
||||
log.debug("设备运转模式:等待工作");
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 4:
|
||||
//上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0){
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"01");
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
//强制上料完成
|
||||
if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0 ) {
|
||||
update_detail(String.valueOf(order),String.valueOf(order_detail),"02");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
last_mode = mode;
|
||||
}
|
||||
|
||||
public synchronized boolean update_detail(String order, String order_detail,String status) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.detail_time_out < (long) this.detail_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.detail_time_out);
|
||||
return false;
|
||||
} else {
|
||||
this.detail_time = date;
|
||||
ProduceshiftorderdetailDto dto = produceshiftorderdetailService.findOrderDetailFromCache(String.valueOf(order), String.valueOf(order_detail));
|
||||
dto.setStrap_finished(status);
|
||||
dto.setStrap_finish_time(date.toString());
|
||||
produceshiftorderdetailService.update(dto);
|
||||
writing(itemProtocol.item_to_command,String.valueOf(mode));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void writing(String param, String value) {
|
||||
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + param;
|
||||
String opcservcerid = this.getDevice().getOpc_server_id();
|
||||
Server server = ReadUtil.getServer(opcservcerid);
|
||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||
itemMap.put(to_param, Double.parseDouble(value));
|
||||
ReadUtil.write(itemMap, server);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -141,7 +141,10 @@ public class ProduceshiftorderdetailDto implements Serializable {
|
||||
private String feeding_start_time;
|
||||
|
||||
/** 上料完成时间 */
|
||||
private String feeding_end_time;
|
||||
private String feeding_finish_time;
|
||||
|
||||
/** 上料完成 */
|
||||
private String feeding_finished;
|
||||
|
||||
/** 刻字合格数量 */
|
||||
private String qualified_lettering_number;
|
||||
@@ -152,12 +155,18 @@ public class ProduceshiftorderdetailDto implements Serializable {
|
||||
/** 刻字完成时间 */
|
||||
private String lettering_finish_time;
|
||||
|
||||
/** 刻字完成 */
|
||||
private String lettering_finished;
|
||||
|
||||
/** 当前套冒数量 */
|
||||
private String present_sleeveing_number;
|
||||
|
||||
/** 套冒合格数量 */
|
||||
private String qualified_sleeveing_number;
|
||||
|
||||
/** 套冒完成 */
|
||||
private String sleeveing_finished;
|
||||
|
||||
/** 套冒开始时间 */
|
||||
private String sleeveing_start_time;
|
||||
|
||||
@@ -165,10 +174,13 @@ public class ProduceshiftorderdetailDto implements Serializable {
|
||||
private String sleeveing_finish_time;
|
||||
|
||||
/** 捆扎开始时间 */
|
||||
private String starp_start_time;
|
||||
private String strap_start_time;
|
||||
|
||||
/** 捆扎完成时间 */
|
||||
private String starp_finish_time;
|
||||
private String strap_finish_time;
|
||||
|
||||
/** 捆扎完成 */
|
||||
private String strap_finished;
|
||||
|
||||
/** 裹膜数量 */
|
||||
private String wraping_number;
|
||||
@@ -185,12 +197,18 @@ public class ProduceshiftorderdetailDto implements Serializable {
|
||||
/** 裹膜完成时间 */
|
||||
private String wraping_finish_time;
|
||||
|
||||
/** 裹膜完成 */
|
||||
private String wraping_finished;
|
||||
|
||||
/** 贴标开始时间 */
|
||||
private String labeling_start_time;
|
||||
|
||||
/** 贴标完成时间 */
|
||||
private String labeling_finish_time;
|
||||
|
||||
/** 贴标完成 */
|
||||
private String labeling_finished;
|
||||
|
||||
/** 开始时间 */
|
||||
private String start_time;
|
||||
|
||||
|
||||
@@ -255,6 +255,9 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A
|
||||
String detail_qty = detaildto.getOrder_detail_qty();
|
||||
//刻字信息
|
||||
String lettering_message = detaildto.getLettering_message();
|
||||
String lettering_message2 = detaildto.getLettering_message2();
|
||||
//贴标模板
|
||||
String labeling_template = detaildto.getLabeling_template();
|
||||
//捆扎每包数量
|
||||
String strap_number = detaildto.getStrap_number();
|
||||
//尾料数量
|
||||
@@ -275,7 +278,9 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A
|
||||
detaildto.setLength(length);
|
||||
detaildto.setWall_thickness(wall_thickness);
|
||||
detaildto.setOuter_diameter(outer_diameter);
|
||||
detaildto.setLabeling_message(lettering_message);
|
||||
detaildto.setLettering_message(lettering_message);
|
||||
detaildto.setLettering_message2(lettering_message2);
|
||||
detaildto.setLabeling_template(labeling_template);
|
||||
detaildto.setStrap_number(strap_number);
|
||||
detaildto.setStrap_tailint_number(strap_tailint_number);
|
||||
WQLObject wo = WQLObject.getWQLObject("acs_produceshiftorderdetail");
|
||||
|
||||
@@ -175,7 +175,7 @@ public class ProduceshiftorderdetailServiceImpl implements Produceshiftorderdeta
|
||||
map.put("上料数量", produceshiftorderdetail.getFeeding_qty());
|
||||
map.put("上料合格数量", produceshiftorderdetail.getFeeding_qualified_qty());
|
||||
map.put("上料开始时间", produceshiftorderdetail.getFeeding_start_time());
|
||||
map.put("上料完成时间", produceshiftorderdetail.getFeeding_end_time());
|
||||
map.put("上料完成时间", produceshiftorderdetail.getFeeding_finish_time());
|
||||
map.put("刻字合格数量", produceshiftorderdetail.getQualified_lettering_number());
|
||||
map.put("刻字开始时间", produceshiftorderdetail.getLettering_start_time());
|
||||
map.put("刻字完成时间", produceshiftorderdetail.getLettering_finish_time());
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
package org.nl.modules.log;
|
||||
|
||||
import org.slf4j.Marker;
|
||||
import org.slf4j.MarkerFactory;
|
||||
|
||||
public enum LogMarkerTypeEnum {
|
||||
DEFAULT("default", "默认日志"),
|
||||
REQUEST("request", "请求日志"),
|
||||
QUARTZ("quartz", "定时器日志"),
|
||||
DEVICE_EXECUTE("device_execute", "设备执行日志"),
|
||||
AGV_TASK_STATUS("agv_task_status", "agv任务状态日志"),
|
||||
AGV_FEEDBACK_SERVLET("agv_feedback_servlet", "反馈AGV请求"),
|
||||
AGV_LEAVE_SERVLET("agv_leave_servlet", "AGV请求离开"),
|
||||
ACS_TO_ERP("acs_to_erp", "ACS请求ERP"),
|
||||
ACS_TO_WMS("acs_to_wms", "ACS请求WMS"),
|
||||
AUTO_CREATE_INST("auto_create_inst", "自动创建指令"),
|
||||
NDC_SOCKET_CONNECTION_AUTORUN("ndc_socket_connection_autorun", "NDC自动连接"),
|
||||
XZ_AGV_TASK_STATUS("xz_agv_task_status", "仙知AGV指令状态"),
|
||||
WMS_TO_ACS("wms_to_acs", "WMS下发ACS");
|
||||
// 成员变量
|
||||
private String name;
|
||||
private String code;
|
||||
|
||||
// 构造方法
|
||||
private LogMarkerTypeEnum(String code, String name) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public static Marker getMarker(LogMarkerTypeEnum logType) {
|
||||
return MarkerFactory.getMarker(logType.code);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package org.nl.modules.log;
|
||||
|
||||
import org.slf4j.Marker;
|
||||
import org.slf4j.MarkerFactory;
|
||||
|
||||
public class LogMarkerUtil {
|
||||
private static final Marker MARKER = MarkerFactory.getMarker("test_marker");
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package org.nl.modules.log;
|
||||
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import org.bson.Document;
|
||||
import org.slf4j.Marker;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
/**
|
||||
* https://www.cnblogs.com/lzghyh/p/14913230.html
|
||||
* https://juejin.cn/post/6844903488896385037
|
||||
* https://cloud.tencent.com/developer/article/1384035
|
||||
* https://www.freesion.com/article/229560377/
|
||||
*/
|
||||
public class MongoDBAppender extends MongoDBAppenderBase<ILoggingEvent> {
|
||||
public MongoDBAppender() {
|
||||
super("loggingEvents");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Document toMongoDocument(ILoggingEvent eventObject) {
|
||||
|
||||
final Document doc = new Document();
|
||||
doc.append("date", DateUtil.now());
|
||||
doc.append("source", source);
|
||||
try {
|
||||
doc.append("ip", InetAddress.getLocalHost().getHostAddress());
|
||||
} catch (UnknownHostException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Marker marker = eventObject.getMarker();
|
||||
if (!ObjectUtil.isEmpty(marker)) {
|
||||
doc.append("marker", marker.getName());
|
||||
}else {
|
||||
doc.append("marker", "default");
|
||||
}
|
||||
|
||||
doc.append("level", eventObject.getLevel().toString());
|
||||
doc.append("logger", eventObject.getLoggerName());
|
||||
doc.append("thread", eventObject.getThreadName());
|
||||
doc.append("message", eventObject.getFormattedMessage());
|
||||
if (eventObject.getMDCPropertyMap() != null && !eventObject.getMDCPropertyMap().isEmpty())
|
||||
doc.append("mdc", eventObject.getMDCPropertyMap());
|
||||
// ...
|
||||
return doc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package org.nl.modules.log;
|
||||
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import ch.qos.logback.core.UnsynchronizedAppenderBase;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoClientOptions;
|
||||
import com.mongodb.MongoCredential;
|
||||
import com.mongodb.ServerAddress;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import lombok.Data;
|
||||
import org.bson.Document;
|
||||
import org.slf4j.Marker;
|
||||
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* MongoDBAppender适配类
|
||||
*/
|
||||
@Data
|
||||
public abstract class MongoDBAppenderBase<E> extends UnsynchronizedAppenderBase<E> {
|
||||
private MongoClient mongo;
|
||||
MongoDatabase db;
|
||||
private MongoCollection<Document> eventsCollection;
|
||||
|
||||
private String host = "127.0.0.1"; // 地址
|
||||
private int port = 27017; // 端口号
|
||||
private String dbName = "db"; // 库名
|
||||
private String collectionName; // 集合名
|
||||
private String username; // 用户名
|
||||
private String password; // 密码
|
||||
protected String source;
|
||||
|
||||
private int connectionsPerHost = 10; // 空闲线程池中最大链接数
|
||||
private int threadsAllowedToBlockForConnectionMultiplier = 5; //一个线程等待链接可用的最大等待毫秒数
|
||||
private int maxWaitTime = 1000 * 60 * 2; // 最长等待时间
|
||||
private int connectTimeout;
|
||||
private int socketTimeout;
|
||||
private int wtimeout;
|
||||
|
||||
MongoDBAppenderBase(String collectionName) {
|
||||
this.collectionName = collectionName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
try {
|
||||
connectToMongoDB();
|
||||
super.start();
|
||||
} catch (UnknownHostException e) {
|
||||
addError("Error connecting to MongoDB server: " + host + ":" + port,
|
||||
e);
|
||||
}
|
||||
}
|
||||
|
||||
private void connectToMongoDB() throws UnknownHostException {
|
||||
// 用户名 数据库 密码
|
||||
if (username != null && password != null) {
|
||||
|
||||
MongoCredential credential = MongoCredential.createCredential(
|
||||
username, dbName, password.toCharArray());
|
||||
ServerAddress serverAddress = new ServerAddress(host, port);
|
||||
mongo = new MongoClient(serverAddress, Collections.singletonList(credential), buildOptions());
|
||||
} else {
|
||||
mongo = new MongoClient(new ServerAddress(host, port), buildOptions());
|
||||
}
|
||||
|
||||
db = mongo.getDatabase(dbName);
|
||||
eventsCollection = db.getCollection(collectionName);
|
||||
|
||||
}
|
||||
|
||||
private MongoClientOptions buildOptions() {
|
||||
final MongoClientOptions.Builder options = new MongoClientOptions.Builder();
|
||||
options.connectionsPerHost(connectionsPerHost);
|
||||
options.threadsAllowedToBlockForConnectionMultiplier(threadsAllowedToBlockForConnectionMultiplier);
|
||||
options.maxWaitTime(maxWaitTime);
|
||||
options.connectTimeout(connectTimeout);
|
||||
options.socketTimeout(socketTimeout);
|
||||
options.maxWaitTime(wtimeout);
|
||||
return options.build();
|
||||
}
|
||||
|
||||
protected abstract Document toMongoDocument(E event);
|
||||
|
||||
@Override
|
||||
protected void append(E eventObject) {
|
||||
if (eventObject instanceof ILoggingEvent) {
|
||||
ILoggingEvent evt = (ILoggingEvent) eventObject;
|
||||
Marker marker = evt.getMarker();
|
||||
if (ObjectUtil.isEmpty(marker))
|
||||
marker = LogMarkerTypeEnum.getMarker(LogMarkerTypeEnum.DEFAULT);
|
||||
eventsCollection = db.getCollection(marker.getName());
|
||||
|
||||
}
|
||||
|
||||
eventsCollection.insertOne(toMongoDocument(eventObject));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
if (mongo != null)
|
||||
mongo.close();
|
||||
super.stop();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
package org.nl.modules.log.rest;
|
||||
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.annotation.Log;
|
||||
import org.nl.modules.log.service.RootLogService;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ldjun
|
||||
* @date 2021-08-19
|
||||
**/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "系统日志")
|
||||
@RequestMapping("/api/rootLog")
|
||||
@Slf4j
|
||||
public class RootLogController {
|
||||
|
||||
private final RootLogService rootLogService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询系统日志")
|
||||
@ApiOperation("查询系统日志")
|
||||
//@PreAuthorize("@el.check('point:list')")
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(rootLogService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package org.nl.modules.log.service;
|
||||
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统日志查询
|
||||
*/
|
||||
public interface RootLogService {
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param whereJson 条件
|
||||
* @param page 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String,Object> queryAll(Map whereJson, Pageable page);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package org.nl.modules.log.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.log.service.RootLogService;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ldjun
|
||||
* @description 服务实现
|
||||
* @date 2021-08-19
|
||||
**/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class RootLogServiceImpl implements RootLogService {
|
||||
|
||||
private final MongoTemplate mongoTemplate;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
||||
//查询条件
|
||||
Query query = Query.query(Criteria.where("level").is("INFO"));
|
||||
|
||||
//根据条件得到的总条数
|
||||
long totalSize = mongoTemplate.count(query, Map.class, "log_root");
|
||||
|
||||
//处理分页
|
||||
query.skip(page.getPageNumber()).limit(page.getPageSize());
|
||||
List<Map> list = mongoTemplate.find(query, Map.class, "log_root");
|
||||
|
||||
//封装前端分页查询结果
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("content", list);
|
||||
result.put("totalElements", totalSize);
|
||||
|
||||
mongoTemplate.findById("",null,null);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -55,11 +55,11 @@ spring:
|
||||
wall:
|
||||
config:
|
||||
multi-statement-alagvslow: true
|
||||
# data:
|
||||
# mongodb:
|
||||
# host: 192.168.81.251
|
||||
# port: 27017
|
||||
# database: nlacs
|
||||
data:
|
||||
mongodb:
|
||||
host: 127.0.0.1
|
||||
port: 27017
|
||||
database: nlacs
|
||||
redis:
|
||||
#数据库索引
|
||||
database: ${REDIS_DB:0}
|
||||
|
||||
@@ -53,11 +53,11 @@ spring:
|
||||
wall:
|
||||
config:
|
||||
multi-statement-allow: true
|
||||
# data:
|
||||
# mongodb:
|
||||
# host: 127.0.0.1
|
||||
# port: 27017
|
||||
# database: logdb
|
||||
data:
|
||||
mongodb:
|
||||
host: 127.0.0.1
|
||||
port: 27017
|
||||
database: logdb
|
||||
redis:
|
||||
#数据库索引
|
||||
database: ${REDIS_DB:0}
|
||||
|
||||
@@ -1,32 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE7" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/ACS请求ERP/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
|
||||
<appender name="acs_to_erp" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>acs_to_erp</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name=" org.nl.acs.ext.erp.service.impl.AcsToErpServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="FILE7"/>
|
||||
<appender-ref ref="acs_to_erp"/>
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -1,32 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE8" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/ACS请求WMS/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
|
||||
<appender name="acs_to_wms" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>acs_to_wms</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="FILE8"/>
|
||||
<appender-ref ref="acs_to_wms"/>
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<appender name="agv_feedback_servlet" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>agv_feedback_servlet</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.agv.server.impl.AgvServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="agv_feedback_servlet"/>
|
||||
</logger>
|
||||
</included>
|
||||
18
nladmin-system/src/main/resources/log/AgvLeaveServlet.xml
Normal file
18
nladmin-system/src/main/resources/log/AgvLeaveServlet.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<appender name="agv_leave_servlet" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>agv_leave_servlet</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.device_driver.electric_fence.ItemProtocol" level="info" additivity="false">
|
||||
<appender-ref ref="agv_leave_servlet"/>
|
||||
</logger>
|
||||
|
||||
</included>
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE5" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/反馈AGV请求/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.agv.server.impl.AgvServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="FILE5"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE6" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/AGV请求离开/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.device_driver.magic_agv.AgvackServlet" level="info" additivity="false">
|
||||
<appender-ref ref="FILE6"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,31 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE3" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/自动创建指令/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
<appender name="auto_create_inst" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>auto_create_inst</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.modules.quartz.task.AutoCreateInst" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
<logger name="org.nl.modules.quartz.task1.AutoCreateInst" level="info" additivity="false">
|
||||
<appender-ref ref="auto_create_inst"/>
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -1,32 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE10" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/NDC/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
|
||||
<appender name="ndc_socket_connection_autorun" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>ndc_socket_connection_autorun</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.start.auto.run.NDCSocketConnectionAutoRun" level="info" additivity="false">
|
||||
<appender-ref ref="FILE10"/>
|
||||
<appender-ref ref="ndc_socket_connection_autorun"/>
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -1,32 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE4" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/查询AGV指令状态/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
|
||||
<appender name="agv_task_status" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>agv_task_status</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.modules.quartz.task.QueryMagicAgvTaskStatus" level="info" additivity="false">
|
||||
<appender-ref ref="FILE4"/>
|
||||
<appender-ref ref="agv_task_status"/>
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -1,32 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE10" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/查询仙知AGV指令状态/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
|
||||
<appender name="xz_agv_task_status" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>xz_agv_task_status</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.modules.quartz.task.QueryXZAgvTaskStatus" level="info" additivity="false">
|
||||
<appender-ref ref="FILE10"/>
|
||||
<logger name="org.nl.modules.quartz.task1.QueryXZAgvTaskStatus" level="info" additivity="false">
|
||||
<appender-ref ref="xz_agv_task_status"/>
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE11" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/扫码记录/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.device_driver.standard_scanner.StandardScannerDeviceDriver" level="info" additivity="false">
|
||||
<appender-ref ref="FILE11"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,32 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE9" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/WMS下发ACS/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
|
||||
<appender name="wms_to_acs" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>wms_to_acs</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.ext.wms.service.impl.WmsToAcsServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="FILE9"/>
|
||||
<appender-ref ref="wms_to_acs"/>
|
||||
</logger>
|
||||
<!--<logger name="org.nl.acs.device_driver.electric_fence.ItemProtocol" level="info" additivity="false">
|
||||
<appender-ref ref="wms_to_acs"/>
|
||||
</logger>-->
|
||||
</included>
|
||||
|
||||
@@ -35,26 +35,39 @@ https://juejin.cn/post/6844903775631572999
|
||||
</encoder>
|
||||
|
||||
<!-- 转为JSON https://www.zoleet.com/details/328.html-->
|
||||
<!-- <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
|
||||
<providers>
|
||||
<pattern>
|
||||
<pattern>
|
||||
{
|
||||
"appName": "logistics-core",
|
||||
"time": "%date{yyyy-MM-dd HH:mm:ss.SSS}",
|
||||
"level": "%level",
|
||||
"pid": "${PID:-}",
|
||||
"thread": "%thread",
|
||||
"class": "%logger",
|
||||
"method": "%method",
|
||||
"line": "%line",
|
||||
"message": "%message",
|
||||
"statck_trace": "%xEx"
|
||||
}
|
||||
</pattern>
|
||||
</pattern>
|
||||
</providers>
|
||||
</encoder>-->
|
||||
<!-- <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
|
||||
<providers>
|
||||
<pattern>
|
||||
<pattern>
|
||||
{
|
||||
"appName": "logistics-core",
|
||||
"time": "%date{yyyy-MM-dd HH:mm:ss.SSS}",
|
||||
"level": "%level",
|
||||
"pid": "${PID:-}",
|
||||
"thread": "%thread",
|
||||
"class": "%logger",
|
||||
"method": "%method",
|
||||
"line": "%line",
|
||||
"message": "%message",
|
||||
"statck_trace": "%xEx"
|
||||
}
|
||||
</pattern>
|
||||
</pattern>
|
||||
</providers>
|
||||
</encoder>-->
|
||||
</appender>
|
||||
|
||||
<appender name="MONGO" class="org.nl.modules.log.MongoDBAppender">
|
||||
<host>127.0.0.1</host>
|
||||
<port>27017</port>
|
||||
<!-- <username>admin</username>
|
||||
<password>123456</password>-->
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>default</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
|
||||
@@ -91,6 +104,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
<springProfile name="dev">
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="MONGO"/>
|
||||
</root>
|
||||
|
||||
<logger name="jdbc.audit" level="ERROR" additivity="false">
|
||||
@@ -102,9 +116,9 @@ https://juejin.cn/post/6844903775631572999
|
||||
<logger name="springfox.documentation" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<!-- <logger name="jdbc.resultsettable" level="ERROR" additivity="false">-->
|
||||
<!-- <appender-ref ref="CONSOLE"/>-->
|
||||
<!-- </logger>-->
|
||||
<logger name="jdbc.resultsettable" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="jdbc.sqlonly" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
|
||||
Reference in New Issue
Block a user