add 取消指令清除phase值
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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指令为空,";
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
/**
|
||||
* 申请扫码器任务
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user