Browse Source

更新

master
汪菘 3 years ago
parent
commit
cd6a6508e7
  1. 5
      nladmin-system/pom.xml
  2. 108
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_coating/HaiLiangCoatingDeviceDriver.java
  3. 48
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java
  4. 13
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java
  5. 109
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_labeling/HaiLiangLabelingDeviceDriver.java
  6. 108
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java
  7. 2
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_risking/HaiLiangRiskingDefination.java
  8. 112
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_risking/HaiLiangRiskingDeviceDriver.java
  9. 108
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_strapping/HaiLiangStrappingDeviceDriver.java
  10. 24
      nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderdetailDto.java
  11. 7
      nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java
  12. 2
      nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderdetailServiceImpl.java
  13. BIN
      nladmin-system/src/main/java/org/nl/acs/order/service/wql/order.xls
  14. 33
      nladmin-system/src/main/java/org/nl/modules/log/LogMarkerTypeEnum.java
  15. 9
      nladmin-system/src/main/java/org/nl/modules/log/LogMarkerUtil.java
  16. 52
      nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppender.java
  17. 109
      nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java
  18. 42
      nladmin-system/src/main/java/org/nl/modules/log/rest/RootLogController.java
  19. 18
      nladmin-system/src/main/java/org/nl/modules/log/service/RootLogService.java
  20. 48
      nladmin-system/src/main/java/org/nl/modules/log/service/impl/RootLogServiceImpl.java
  21. 10
      nladmin-system/src/main/resources/config/application-dev.yml
  22. 10
      nladmin-system/src/main/resources/config/application-prod.yml
  23. 31
      nladmin-system/src/main/resources/log/AcsToErp.xml
  24. 31
      nladmin-system/src/main/resources/log/AcsToWms.xml
  25. 16
      nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml
  26. 18
      nladmin-system/src/main/resources/log/AgvLeaveServlet.xml
  27. 32
      nladmin-system/src/main/resources/log/AgvServiceImpl.xml
  28. 32
      nladmin-system/src/main/resources/log/AgvackServlet.xml
  29. 33
      nladmin-system/src/main/resources/log/AutoCreateInst.xml
  30. 31
      nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml
  31. 33
      nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml
  32. 35
      nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml
  33. 32
      nladmin-system/src/main/resources/log/ScannerBarcode.xml
  34. 35
      nladmin-system/src/main/resources/log/WmsToAcs.xml
  35. 60
      nladmin-system/src/main/resources/logback-spring.xml

5
nladmin-system/pom.xml

@ -26,6 +26,11 @@
<version>6.6</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.4.2</version>
</dependency>
<!--
<dependency>
<groupId>ch.qos.logback</groupId>

108
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_coating/HaiLiangCoatingDeviceDriver.java

@ -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);
}
}

48
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java

@ -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);
}
}

13
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java

@ -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));
//上料合格数量

109
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_labeling/HaiLiangLabelingDeviceDriver.java

@ -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);
}
}

108
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java

@ -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);
}
}

2
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_risking/HaiLiangRiskingDefination.java

@ -12,7 +12,7 @@ import java.util.LinkedList;
import java.util.List;
/**
* 海亮裹膜机
* 海亮套冒线体
*/
@Service
public class HaiLiangRiskingDefination implements OpcDeviceDriverDefination {

112
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_risking/HaiLiangRiskingDeviceDriver.java

@ -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);
}
}

108
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_strapping/HaiLiangStrappingDeviceDriver.java

@ -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);
}
}

24
nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderdetailDto.java

@ -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;

7
nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java

@ -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");

2
nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderdetailServiceImpl.java

@ -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());

BIN
nladmin-system/src/main/java/org/nl/acs/order/service/wql/order.xls

Binary file not shown.

33
nladmin-system/src/main/java/org/nl/modules/log/LogMarkerTypeEnum.java

@ -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);
}
}

9
nladmin-system/src/main/java/org/nl/modules/log/LogMarkerUtil.java

@ -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");
}

52
nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppender.java

@ -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;
}
}

109
nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java

@ -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();
}
}

42
nladmin-system/src/main/java/org/nl/modules/log/rest/RootLogController.java

@ -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);
}
}

18
nladmin-system/src/main/java/org/nl/modules/log/service/RootLogService.java

@ -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);
}

48
nladmin-system/src/main/java/org/nl/modules/log/service/impl/RootLogServiceImpl.java

@ -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;
}
}

10
nladmin-system/src/main/resources/config/application-dev.yml

@ -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}

10
nladmin-system/src/main/resources/config/application-prod.yml

@ -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}

31
nladmin-system/src/main/resources/log/AcsToErp.xml

@ -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>

31
nladmin-system/src/main/resources/log/AcsToWms.xml

@ -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>

16
nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml

@ -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

@ -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>

32
nladmin-system/src/main/resources/log/AgvServiceImpl.xml

@ -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>

32
nladmin-system/src/main/resources/log/AgvackServlet.xml

@ -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>

33
nladmin-system/src/main/resources/log/AutoCreateInst.xml

@ -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>

31
nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml

@ -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>

33
nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml

@ -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>

35
nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml

@ -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>

32
nladmin-system/src/main/resources/log/ScannerBarcode.xml

@ -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>

35
nladmin-system/src/main/resources/log/WmsToAcs.xml

@ -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>

60
nladmin-system/src/main/resources/logback-spring.xml

@ -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>

Loading…
Cancel
Save