add 取消指令清除phase值

This commit is contained in:
2023-06-09 19:33:51 +08:00
parent 32fd5187ad
commit 594eede6ce
17 changed files with 146 additions and 54 deletions

View File

@@ -0,0 +1,11 @@
package org.nl.acs.device_driver.basedriver.hailiang_one;
import org.nl.acs.instruction.service.dto.Instruction;
/**
* @author: geng by
* @createDate: 2023/6/9
*/
public interface RemoveDevicePhase {
public void set(int agvphase, int index, Instruction inst);
}

View File

@@ -15,6 +15,7 @@ import org.nl.acs.agv.server.impl.NDCAgvServiceImpl;
import org.nl.acs.auto.run.NDCSocketConnectionAutoRun;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
@@ -41,7 +42,7 @@ import java.util.*;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class);

View File

@@ -12,8 +12,11 @@ import org.nl.acs.auto.run.NDCSocketConnectionAutoRun;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
import org.nl.acs.history.ErrorUtil;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
@@ -39,7 +42,7 @@ import java.util.Map;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class);
@@ -51,6 +54,8 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
@Autowired
TaskService taskserver = SpringContextHolder.getBean(TaskService.class);
@Autowired
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class);
int mode = 0;
//储料仓运行中
@@ -140,10 +145,14 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO
logServer.deviceExecuteLog(this.device_code, "", "", "信号is_open" + last_is_open + "->" + is_open);
}
if (silo_weight != last_silo_weight) {
Map<String, Integer> feedNumMap = new HashMap<>();
feedNumMap.put("qty", this.getFull_number());
feedNumMap.put("weight", this.getSilo_weight());
MonitoringLargeScreenData.deviceNumData.put(this.device_code, feedNumMap);
if (is_open == 1) {
Map<String, Integer> feedNumMap = new HashMap<>();
feedNumMap.put("qty", this.getFull_number());
feedNumMap.put("weight", this.getSilo_weight());
Map<String, Map<String, Integer>> fm = new HashMap<>();
fm.put(this.device_code, feedNumMap);
acsToWmsService.feedDeviceNum2(fm);
}
logServer.deviceExecuteLog(this.device_code, "", "", "信号silo_weight" + last_silo_weight + "->" + silo_weight);
}
if (full_number != last_full_number) {
@@ -162,16 +171,16 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO
//this.setIserror(true);
message = "信号量同步异常";
//未联机
} /*else if (mode == 0) {
} else if (mode == 0) {
message = "未联机";
} */ else {
this.setIsonline(true);
this.setIserror(false);
} else {
//this.setIsonline(true);
//this.setIserror(false);
message = null;
//agv到达倒料点
if (agvphase == 0x0B || agvphase == 0x0F) {
//判断储料仓联机、无故障、agv执行执行物料编号和上次倒料编号一致或者上次物料清空才允许倒料
if (ObjectUtil.isNotEmpty(inst)) {
if (mode == 1 && ObjectUtil.isNotEmpty(inst)) {
inst.setExecute_status(InstActionEnum.EXECUTE_TO_PUT_FALL_SEND_FULL.getCode());
instructionService.update(inst);
byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0);
@@ -182,6 +191,9 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO
logServer.deviceExecuteLog(device_code, "", "", this.messageInfo(agvphase));
} else {
String notFeedAgvMessage = "";
if (mode != 1) {
notFeedAgvMessage += "设备未联机,";
}
if (inst == null) {
notFeedAgvMessage += "AGV指令为空,";
}
@@ -191,7 +203,7 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO
//agv倒料完成
if (agvphase == 0x0D || agvphase == 0x11) {
if (ObjectUtil.isNotEmpty(inst)) {
if (mode == 1 && ObjectUtil.isNotEmpty(inst)) {
//下发储料仓倒料数量及开始称重
Map<String, Object> map = new LinkedHashMap<>();
map.put("to_dumping_num", inst.getQuantity());
@@ -215,6 +227,9 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO
logServer.deviceExecuteLog(device_code, "", "", this.messageInfo(agvphase));
} else {
String notFeedAgvMessage = "";
if (mode != 1) {
notFeedAgvMessage += "设备未联机,";
}
if (inst == null) {
notFeedAgvMessage += "AGV指令为空,";
}

View File

@@ -17,6 +17,7 @@ import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime;
import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo;
import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
@@ -52,7 +53,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, IssuedDeviceOrderInfo {
public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, IssuedDeviceOrderInfo, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl");

View File

@@ -140,8 +140,10 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl
logServer.deviceExecuteLog(this.device_code, "", "", "信号order" + last_order + "->" + order);
}
if (now_order_prod_num != last_now_order_prod_num) {
if (mode == 1 && order > 0) {
MonitoringLargeScreenData.orderData.put(String.valueOf(order), now_order_prod_num);
if (mode == 1 && order > 0 && order_prod_allnum > 0) {
if (produceshiftorderService.findByCodeFromCache(String.valueOf(order)) != null) {
MonitoringLargeScreenData.orderData.put(String.valueOf(order), now_order_prod_num);
}
}
logServer.deviceExecuteLog(this.device_code, "", "", "信号now_order_prod_num" + last_now_order_prod_num + "->" + now_order_prod_num);
}
@@ -329,8 +331,8 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl
} else {
map.put("to_confirm_finished", "1");
}
//map.put("to_order", "0");
//map.put("to_clear", "1");
map.put("to_order", "0");
map.put("to_clear", "1");
this.writing(map);
}

View File

@@ -11,6 +11,7 @@ import org.nl.acs.agv.server.impl.NDCAgvServiceImpl;
import org.nl.acs.auto.run.NDCSocketConnectionAutoRun;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.history.ErrorUtil;
@@ -36,7 +37,7 @@ import java.util.HashMap;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl");

View File

@@ -14,6 +14,7 @@ import org.nl.acs.auto.run.NDCSocketConnectionAutoRun;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
@@ -47,7 +48,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class);
@@ -287,9 +288,9 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice
redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS);
//判断是否需要AGV搬运 需要就申请任务 不需要不申请
ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(this.getOrder()));
if (produceshiftorderDto == null) {
produceshiftorderDto = produceshiftorderService.findByCode(String.valueOf(this.getOrder()));
}
// if (produceshiftorderDto == null) {
// produceshiftorderDto = produceshiftorderService.findByCode(String.valueOf(this.getOrder()));
// }
if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) {
JSONObject reqParam = new JSONObject();
reqParam.put("device_code", this.getDevice_code());

View File

@@ -15,6 +15,7 @@ import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime;
import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
@@ -49,7 +50,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl");

View File

@@ -18,6 +18,7 @@ import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime;
import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo;
import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
@@ -53,7 +54,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, IssuedDeviceOrderInfo {
public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, IssuedDeviceOrderInfo, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl");

View File

@@ -53,6 +53,8 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
@Autowired
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean("luceneExecuteLogServiceImpl");
int heartbeat = 0;
int mode = 0;
int error = 0;
int now_one_box_num = 0;
@@ -63,6 +65,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
int order = 0;
int order_prod_allnum = 0;
int last_heartbeat = 0;
int last_mode = 0;
int last_error = 0;
int last_finish = 0;
@@ -97,6 +100,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
public synchronized void execute() {
try {
device_code = this.getDeviceCode();
heartbeat = this.itemProtocol.getHeartbeat();
error = this.itemProtocol.getError();
order = this.itemProtocol.getOrder();
mode = this.itemProtocol.getItem_mode();
@@ -137,6 +141,13 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
}
if (order_compel_finish != last_order_compel_finish) {
if (order_compel_finish == 1) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("to_confirm_finished", "1");
map.put("to_clear", "1");
map.put("to_order", "0");
this.writing(map);
}
luceneExecuteLogService.deviceExecuteLog(new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.item_order_compel_finish, String.valueOf(this.last_order_compel_finish), String.valueOf(this.order_compel_finish)));
logServer.deviceExecuteLog(this.device_code, "", "", "信号order_compel_finish" + last_order_compel_finish + "->" + order_compel_finish);
}
@@ -145,8 +156,10 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
logServer.deviceExecuteLog(this.device_code, "", "", "信号order" + last_order + "->" + order);
}
if (now_order_prod_num != last_now_order_prod_num) {
if (mode == 1 && order > 0) {
MonitoringLargeScreenData.orderData.put(String.valueOf(order), now_order_prod_num);
if (mode == 1 && order > 0 && order_prod_allnum > 0) {
if (produceshiftorderService.findByCodeFromCache(String.valueOf(order)) != null) {
MonitoringLargeScreenData.orderData.put(String.valueOf(order), now_order_prod_num);
}
}
luceneExecuteLogService.deviceExecuteLog(new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.item_now_order_prod_num, String.valueOf(this.last_now_order_prod_num), String.valueOf(this.now_order_prod_num)));
logServer.deviceExecuteLog(this.device_code, "", "", "信号now_order_prod_num" + last_now_order_prod_num + "->" + now_order_prod_num);
@@ -171,6 +184,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
feedDeviceStatusFlag = false;
logServer.deviceExecuteLog(this.device_code, "", "", "信号isonline" + last_isonline + "->" + isonline);
}
if (!this.itemProtocol.getIsonline() && !feedDeviceStatusFlag) {
JSONObject chm = new JSONObject();
chm.put("device_code", this.getDevice_code());
@@ -189,7 +203,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
chm.put("error_code", String.valueOf(error));
acsToWmsService.feedDeviceStatusType(chm);
feedDeviceStatusFlag = true;
} else if (this.itemProtocol.getIsonline() && mode == 1 && order > 0 && !feedDeviceStatusFlag) {
} else if (this.itemProtocol.getIsonline() && mode == 1 && order > 0 && order_prod_allnum > 0 && !feedDeviceStatusFlag) {
JSONObject chm = new JSONObject();
chm.put("device_code", this.getDevice_code());
//设备生产中
@@ -198,7 +212,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
chm.put("error_code", "0");
acsToWmsService.feedDeviceStatusType(chm);
feedDeviceStatusFlag = true;
} else if (this.itemProtocol.getIsonline() && mode == 0 && order > 0 && !feedDeviceStatusFlag) {
} else if (this.itemProtocol.getIsonline() && mode == 0 && order > 0 && order_prod_allnum > 0 && !feedDeviceStatusFlag) {
JSONObject chm = new JSONObject();
chm.put("device_code", this.getDevice_code());
//设备待生产
@@ -230,7 +244,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
}
//修改工单状态为自动完成
if (mode == 1 && finish != last_finish && finish == 1 && order > 0 && now_order_prod_num == order_prod_allnum) {
if (mode == 1 && finish != last_finish && finish == 1 && order_compel_finish != 1 && order > 0 && now_order_prod_num == order_prod_allnum) {
ProduceshiftorderDto pdto = produceshiftorderService.findByCodeFromCache(String.valueOf(order));
if (pdto != null) {
if (pdto.getOrder_status().equals(WorkerOrderEnum.PRODUCTING.getCode())) {
@@ -269,6 +283,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
last_line_stock_num = line_stock_num;
last_order_prod_allnum = order_prod_allnum;
last_isonline = isonline;
last_heartbeat = heartbeat;
}
@@ -299,12 +314,12 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme
Map<String, Object> map = new LinkedHashMap<>();
if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) {
map.put("to_order_compel_finished", "1");
map.put("to_confirm_finished", "1");
//map.put("to_confirm_finished", "1");
} else {
map.put("to_confirm_finished", "1");
map.put("to_order", "0");
map.put("to_clear", "1");
}
//map.put("to_order", "0");
//map.put("to_clear", "1");
this.writing(map);
}

View File

@@ -11,6 +11,7 @@ import org.nl.acs.agv.server.impl.NDCAgvServiceImpl;
import org.nl.acs.auto.run.NDCSocketConnectionAutoRun;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.history.ErrorUtil;
@@ -35,7 +36,7 @@ import java.util.HashMap;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl");

View File

@@ -14,6 +14,7 @@ import org.nl.acs.auto.run.NDCSocketConnectionAutoRun;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
@@ -47,7 +48,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class);
@@ -291,9 +292,9 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri
//判断是否需要AGV搬运 需要就申请任务 不需要不申请
JSONObject reqParam = new JSONObject();
ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(this.getOrder()));
if (produceshiftorderDto == null) {
produceshiftorderDto = produceshiftorderService.findByCode(String.valueOf(this.getOrder()));
}
// if (produceshiftorderDto == null) {
// produceshiftorderDto = produceshiftorderService.findByCode(String.valueOf(this.getOrder()));
// }
if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) {
reqParam.put("type", StatusEnum.FULL_REQ.getCode());
reqParam.put("device_code", this.getDevice_code());

View File

@@ -15,6 +15,7 @@ import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime;
import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
@@ -49,7 +50,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j
@Data
@RequiredArgsConstructor
public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, RemoveDevicePhase {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl");

View File

@@ -54,6 +54,14 @@ public interface AcsToWmsService {
*/
HttpResponse feedDeviceNum(Map<String, Map<String,Integer>> map);
/**
* 反馈储料仓料口数量
*
* @param map
* @return
*/
HttpResponse feedDeviceNum2(Map<String, Map<String,Integer>> map);
/**
* 申请扫码器任务

View File

@@ -201,6 +201,33 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
}
@Override
public HttpResponse feedDeviceNum2(Map<String, Map<String, Integer>> map) {
try {
MDC.put(log_file_type, log_type);
if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) {
log.info("acs开始向mes反馈储料仓重量和数量,请求参数:{}", JSON.toJSONString(map));
String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue();
AddressDto addressDto = addressService.findByCode("feedDeviceNum2");
String methods_url = addressDto.getMethods_url();
String url = wmsUrl + methods_url;
HttpResponse result = null;
try {
result = HttpRequest.post(url)
.body(JSON.toJSONString(map))
.execute();
log.info("acs向mes反馈储料仓重量和数量成功,请求参数:{},请求路径:{},响应参数:{}", JSON.toJSONString(map), url, JSON.toJSONString(result));
} catch (Exception e) {
log.error("acs向mes反馈储料仓重量和数量失败,请求参数:{},请求路径:{},失败原因:{}", JSON.toJSONString(map), url, e.getMessage());
}
return result;
}
return null;
} finally {
MDC.remove(log_file_type);
}
}
@Override
public HttpResponse applyScannerTask(JSONObject map) {
try {

View File

@@ -18,6 +18,7 @@ import org.nl.acs.agv.server.XianGongAgvService;
import org.nl.acs.auto.initial.ApplicationAutoInitial;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device.service.impl.DeviceServiceImpl;
import org.nl.acs.device_driver.basedriver.hailiang_one.RemoveDevicePhase;
import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_auto_cache_line.HailiangAutoCacheLineDeviceDriver;
import org.nl.acs.device_driver.basedriver.standard_conveyor_control_with_scanner.StandardCoveyorControlWithScannerDeviceDriver;
import org.nl.acs.device_driver.basedriver.standard_inspect_site.StandardInspectSiteDeviceDriver;
@@ -1431,20 +1432,24 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
Device start_device = deviceAppService.findDeviceByCode(start_point_code);
Device next_device = deviceAppService.findDeviceByCode(next_point_code);
Device put_device = deviceAppService.findDeviceByCode(put_point_code);
HailiangAutoCacheLineDeviceDriver hailiangAutoCacheLineDeviceDriver;
if (put_device != null && put_device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) {
hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) put_device.getDeviceDriver();
hailiangAutoCacheLineDeviceDriver.set(0, 0, null);
if (hailiangAutoCacheLineDeviceDriver.getTask() != 0 && hailiangAutoCacheLineDeviceDriver.getTask() == Integer.parseInt(dto.getInstruction_code())) {
hailiangAutoCacheLineDeviceDriver.writing("to_task_finish", "1");
}
RemoveDevicePhase removeDevicePhase;
if (put_device != null && put_device.getDeviceDriver() instanceof RemoveDevicePhase) {
removeDevicePhase = (RemoveDevicePhase) put_device.getDeviceDriver();
removeDevicePhase.set(0, 0, null);
// if (hailiangAutoCacheLineDeviceDriver.getTask() != 0 && hailiangAutoCacheLineDeviceDriver.getTask() == Integer.parseInt(dto.getInstruction_code())) {
// hailiangAutoCacheLineDeviceDriver.writing("to_task_finish", "1");
// }
}
if (start_device != null && next_device != null && start_device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver && next_device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) {
hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) start_device.getDeviceDriver();
hailiangAutoCacheLineDeviceDriver.set(0, 0, null);
if (hailiangAutoCacheLineDeviceDriver.getTask() != 0 && hailiangAutoCacheLineDeviceDriver.getTask() == Integer.parseInt(dto.getInstruction_code())) {
hailiangAutoCacheLineDeviceDriver.writing("to_task_finish", "1");
}
if (start_device != null && start_device.getDeviceDriver() instanceof RemoveDevicePhase) {
removeDevicePhase = (RemoveDevicePhase) start_device.getDeviceDriver();
removeDevicePhase.set(0, 0, null);
// if (hailiangAutoCacheLineDeviceDriver.getTask() != 0 && hailiangAutoCacheLineDeviceDriver.getTask() == Integer.parseInt(dto.getInstruction_code())) {
// hailiangAutoCacheLineDeviceDriver.writing("to_task_finish", "1");
// }
}
if (next_device != null && next_device.getDeviceDriver() instanceof RemoveDevicePhase) {
removeDevicePhase = (RemoveDevicePhase) put_device.getDeviceDriver();
removeDevicePhase.set(0, 0, null);
}
}
}

View File

@@ -94,7 +94,7 @@ public class AutoCreateInst {
Device device = deviceAppService.findDeviceByCode(put_device_code);
if (device != null && device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) {
hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver();
if (hailiangAutoCacheLineDeviceDriver.getTask() != 0 || instructionService.findInstByDeviceCode(put_device_code) != null) {
if (hailiangAutoCacheLineDeviceDriver.getMode() != 1 || hailiangAutoCacheLineDeviceDriver.getTask() != 0 || instructionService.findInstByDeviceCode(put_device_code) != null) {
continue;
}
}
@@ -105,7 +105,7 @@ public class AutoCreateInst {
Device device = deviceAppService.findDeviceByCode(start_device_code);
if (device != null && device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) {
hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver();
if (hailiangAutoCacheLineDeviceDriver.getTask() != 0 || instructionService.findInstByDeviceCode(start_device_code) != null) {
if (hailiangAutoCacheLineDeviceDriver.getMode() != 1 || hailiangAutoCacheLineDeviceDriver.getTask() != 0 || instructionService.findInstByDeviceCode(start_device_code) != null) {
continue;
}
}
@@ -143,7 +143,7 @@ public class AutoCreateInst {
Device device = deviceAppService.findDeviceByCode(taskDto1.getPut_device_code());
if (device != null && device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) {
hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver();
if (hailiangAutoCacheLineDeviceDriver.getTask() != 0 || instructionService.findInstByDeviceCode(taskDto1.getPut_device_code()) != null) {
if (hailiangAutoCacheLineDeviceDriver.getMode() != 1 || hailiangAutoCacheLineDeviceDriver.getTask() != 0 || instructionService.findInstByDeviceCode(taskDto1.getPut_device_code()) != null) {
continue;
}
}