add 数字孪生

This commit is contained in:
周俊杰
2024-09-05 08:32:02 +08:00
parent 078554d16e
commit 7404c6499f
22 changed files with 708 additions and 377 deletions

View File

@@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.acs.AcsConfig;
import org.nl.acs.agv.server.NDCAgvService;
import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun;
import org.nl.acs.common.StandardOrdinarySiteDevice;
import org.nl.acs.device.domain.Device;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device_driver.DeviceDriver;
@@ -115,17 +116,18 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
String emptyNum = null;
String device_code = null;
if (phase == 0x67) {
//故障信息
if (arr[18] * 256 + arr[19] == 0) {
}
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
request.setDevice_code(this.device_code);
request.setState("故障");
acsToWmsService.notify(request);
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
}
// if (phase == 0x67) {
// //故障信息
// if (arr[18] * 256 + arr[19] == 0) {
//
// }
// FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
// request.setDevice_code(this.device_code);
// request.setType("3");
// request.setState("故障");
// acsToWmsService.notify(request);
// data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
// }
TaskDto task = new TaskDto();
if(ObjectUtil.isNotEmpty(inst)){
@@ -187,6 +189,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
//取货完毕
//(需要WCS反馈)
} else if (phase == 0x05) {
if (agvaddr == 0) {
agvaddr = agvaddr_copy;
}
@@ -207,8 +210,12 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
device_code = old_device_code;
}
}
device_code = deviceService.queryDeviceCodeByAddress(agvaddr);
device = deviceAppService.findDeviceByCode(device_code);
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
log.info("起点设备名称是{}",device_code);
// acsToWmsService.ghsmlqhfinish(task);
}
if (ObjectUtil.isEmpty(device_code)) {
log.info(agvaddr + "对应设备号为空!");
logServer.deviceExecuteLog(this.device_code, "", "", "对应设备号为空" + device_code);

View File

@@ -164,10 +164,11 @@ public class SiteDeviceDriver extends AbstractOpcDeviceDriver implements DeviceD
acsToWmsService.notify(request);
}
}
if (error != last_error &&error!=0) {
if (error != last_error ) {
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
request.setDevice_code(this.device_code);
request.setState("故障");
request.setType("3");
request.setState(String.valueOf(error));
acsToWmsService.notify(request);
}
} catch (Exception var17) {

View File

@@ -4,6 +4,7 @@ import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.acs.ext.wms.data.*;
import org.nl.acs.task.service.dto.TaskDto;
public interface AcsToWmsService {
@@ -135,4 +136,9 @@ public interface AcsToWmsService {
* 任务阶段反馈最新点位
*/
String feedbackState(BaseRequest request);
/**
* 根据指令号找到任务号后将start_point_code为固化室出口的任务id反馈给lms
*/
public String ghsmlqhfinish(TaskDto task);
}

View File

@@ -607,4 +607,31 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
MDC.remove(log_file_type);
}
}
@Override
public String ghsmlqhfinish(TaskDto task) {
String wmsurl = paramService.findByCode(AcsConfig.WMSURL).getValue();
JSONObject jo = new JSONObject();
jo.put("task_id", task.getExt_task_id());
String result2 = null;
AddressDto addressDto = addressService.findByCode("ghsmlqhfinish");
String methods_url = addressDto.getMethods_url();
String url = wmsurl + methods_url;
log.info("ghsmlqhfinish----请求参数{}", jo);
try {
result2 = HttpRequest.post(url)
.body(String.valueOf(jo))
.execute().body();
//System.out.println(result2);
log.info("ghsmlqhfinish----返回参数{}", result2);
} catch (Exception e) {
String msg = e.getMessage();
//网络不通
//System.out.println(msg);
}
return result2;
}
}

View File

@@ -312,6 +312,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
wrapper.lt(Task::getTask_status,2);
}
}
wrapper.orderByDesc(Task::getCreate_time);
IPage<Task> taskPage = taskMapper.selectPage(queryPage,wrapper);
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(taskPage, TaskDto.class));
return json;
@@ -419,6 +420,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
if (!StrUtil.isEmpty(create_time) && !StrUtil.isEmpty(end_time)) {
wrapper.between(Task::getCreate_time,create_time,end_time);
}
wrapper.orderByDesc(Task::getCreate_time);
IPage<Task> taskPage = taskMapper.selectPage(queryPage,wrapper);
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(taskPage, TaskDto.class));
JSONArray array = json.getJSONArray("content");

View File

@@ -253,6 +253,7 @@ public class HandServiceImpl implements HandService {
inst.put("priority",list.get(i).getPriority());
inst.put("create_time",list.get(i).getCreate_time());
inst.put("carno",list.get(i).getCarno()==null?"":list.get(i).getCarno());
inst.put("send_status",list.get(i).getSend_status());
data.add(inst);
}
JSONObject resultJson = new JSONObject();

View File

@@ -71,21 +71,33 @@ public class SyncDeviceStatus {
for (Device device : deviceList) {
if (device.getDeviceDriver() instanceof BaoshijianSiteDeviceDriver) {
BaoshijianSiteDeviceDriver baoshijianSiteDeviceDriver=(BaoshijianSiteDeviceDriver)device.getDeviceDriver();
JSONObject json2 = new JSONObject();
json2.put("device_code", baoshijianSiteDeviceDriver.getDeviceCode());
json2.put("mode",baoshijianSiteDeviceDriver.getX0());
baoshijian.add(json2);
JSONObject json = new JSONObject();
json.put("device_code", baoshijianSiteDeviceDriver.getDeviceCode()+"DJW01");
json.put("move",baoshijianSiteDeviceDriver.getX1());
json.put("mode",baoshijianSiteDeviceDriver.getX0());
baoshijian.add(json);
json.put("device_code", baoshijianSiteDeviceDriver.getDeviceCode()+"DJW02");
json.put("move",baoshijianSiteDeviceDriver.getX2()==1?0:1);
baoshijian.add(json);
JSONObject json1 = new JSONObject();
json1.put("device_code", baoshijianSiteDeviceDriver.getDeviceCode()+"DJW02");
json1.put("move",baoshijianSiteDeviceDriver.getX2()==1?0:1);
json.put("mode",baoshijianSiteDeviceDriver.getX0());
baoshijian.add(json1);
} else if (device.getDeviceDriver() instanceof GuhuashiSiteDeviceDriver) {
GuhuashiSiteDeviceDriver guhuashiSiteDeviceDriver=(GuhuashiSiteDeviceDriver)device.getDeviceDriver();
JSONObject json = new JSONObject();
json.put("device_code", guhuashiSiteDeviceDriver.getDeviceCode());
//温度设定
json.put("temperature_setting", guhuashiSiteDeviceDriver.getVW7010());
//温度显示
json.put("temperature", guhuashiSiteDeviceDriver.getVW7012());
//湿度设定
json.put("humidity_setting", guhuashiSiteDeviceDriver.getVW7014());
//湿度显示
json.put("humidity", guhuashiSiteDeviceDriver.getVW7016());
//阶段累加时间
json.put("total_running_time", guhuashiSiteDeviceDriver.getVW7038());
json.put("current_stage", guhuashiSiteDeviceDriver.getVW7042());
json.put("executing_stage_num", guhuashiSiteDeviceDriver.getVW7044());
@@ -93,6 +105,8 @@ public class SyncDeviceStatus {
json.put("front_door", guhuashiSiteDeviceDriver.getVW70004()==0?1:0);
json.put("back_door", guhuashiSiteDeviceDriver.getVW7010());
json.put("error", guhuashiSiteDeviceDriver.getVD7046());
//正在执行的阶段数 0-固化1-干燥;
json.put("current_stage",guhuashiSiteDeviceDriver.getVW7036());
guhuashi.add(json);
} else if (device.getDeviceDriver() instanceof SiteStatusDeviceDriver) {
SiteStatusDeviceDriver siteStatusDeviceDriver=(SiteStatusDeviceDriver)device.getDeviceDriver();

View File

@@ -44,7 +44,7 @@ https://juejin.cn/post/6844903775631572999
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
<!--单个日志最大容量 至少10MB才能看得出来-->
<maxFileSize>50MB</maxFileSize>
<maxFileSize>100MB</maxFileSize>
<!--所有日志最多占多大容量-->
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>