优化
This commit is contained in:
@@ -281,7 +281,14 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
agvQueue.setPositionCode1(code1);
|
agvQueue.setPositionCode1(code1);
|
||||||
agvQueue.setPositionCode2(code2);
|
agvQueue.setPositionCode2(code2);
|
||||||
agvQueue.setTaskType("A22");
|
agvQueue.setTaskType("A22");
|
||||||
agvQueue.setCtnrType("1");
|
// agvQueue.setCtnrType("1");
|
||||||
|
//rcslite开启托盘自动调整位置后 - 测试一巷道放货区分托盘类型
|
||||||
|
if (traySize == "2" || traySize == "3") {
|
||||||
|
agvQueue.setCtnrType("3");
|
||||||
|
}else{
|
||||||
|
agvQueue.setCtnrType("1");
|
||||||
|
}
|
||||||
|
|
||||||
agvQueue.setCtnrCode(traySize);
|
agvQueue.setCtnrCode(traySize);
|
||||||
agvQueue.setCtnrNum("0");
|
agvQueue.setCtnrNum("0");
|
||||||
agvQueue.setTaskMode("0");
|
agvQueue.setTaskMode("0");
|
||||||
@@ -321,7 +328,7 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
continueTaskRequest.setReqCode(IdUtil.fastSimpleUUID());
|
continueTaskRequest.setReqCode(IdUtil.fastSimpleUUID());
|
||||||
continueTaskRequest.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
|
continueTaskRequest.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
continueTaskRequest.setTaskCode(agvQueue.getTaskCode());
|
continueTaskRequest.setTaskCode(agvQueue.getTaskCode());
|
||||||
RequestLog requestLog = requestLogService.getRequestLog(CONTINUE_TASK_URL, "继续执行任务", JSONUtil.toJsonStr(continueTaskRequest));
|
RequestLog requestLog = requestLogService.getRequestLog2(CONTINUE_TASK_URL, "继续执行任务", JSONUtil.toJsonStr(continueTaskRequest));
|
||||||
if ("1".equals(requestLog.getIsSuccessful())) {
|
if ("1".equals(requestLog.getIsSuccessful())) {
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
} else {
|
} else {
|
||||||
@@ -420,7 +427,7 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
// paramMap.put("binName", agvQueue.getPositionCode2());
|
// paramMap.put("binName", agvQueue.getPositionCode2());
|
||||||
paramMap.put("indBind", "0");
|
paramMap.put("indBind", "0");
|
||||||
|
|
||||||
RequestLog requestLog = requestLogService.getRequestLog(DELETE_BIN_URL, "AGV解绑容器", JSONUtil.toJsonStr(paramMap));
|
RequestLog requestLog = requestLogService.getRequestLog2(DELETE_BIN_URL, "AGV解绑容器", JSONUtil.toJsonStr(paramMap));
|
||||||
if ("1".equals(requestLog.getIsSuccessful())) {
|
if ("1".equals(requestLog.getIsSuccessful())) {
|
||||||
log.info("站点:"+agvQueue.getPositionCode2()+"{}AGV容器解绑成功!");
|
log.info("站点:"+agvQueue.getPositionCode2()+"{}AGV容器解绑成功!");
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
|
|||||||
@@ -14,16 +14,13 @@ import com.ruoyi.job.service.IMydoJobService;
|
|||||||
import com.ruoyi.queue.agv.domain.AgvQueue;
|
import com.ruoyi.queue.agv.domain.AgvQueue;
|
||||||
import com.ruoyi.queue.agv.service.IAgvQueueService;
|
import com.ruoyi.queue.agv.service.IAgvQueueService;
|
||||||
import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead;
|
import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead;
|
||||||
import io.swagger.models.auth.In;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
import java.util.regex.Matcher;
|
||||||
import java.util.HashMap;
|
import java.util.regex.Pattern;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static com.ruoyi.common.TaskStatusCode.*;
|
import static com.ruoyi.common.TaskStatusCode.*;
|
||||||
import static com.ruoyi.common.utils.Threads.sleep;
|
|
||||||
import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsj;
|
import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsj;
|
||||||
import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsjQH;
|
import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsjQH;
|
||||||
|
|
||||||
@@ -129,7 +126,7 @@ public class Floor2InOutSsjThread implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//入库下发输送线
|
//入库下发输送线
|
||||||
if (inSsjDevice.getKx() == 0 && inSsjDevice.getTaskNo() == 0) {
|
if (inSsjDevice.getKx() == 0 && inSsjDevice.getTaskNo2() == 0) {
|
||||||
AgvQueue agvQueue = new AgvQueue();
|
AgvQueue agvQueue = new AgvQueue();
|
||||||
agvQueue.setStatus("7"); //end
|
agvQueue.setStatus("7"); //end
|
||||||
//todo 与agv对点
|
//todo 与agv对点
|
||||||
@@ -138,7 +135,11 @@ public class Floor2InOutSsjThread implements Runnable {
|
|||||||
if (!agvQueues.isEmpty()) {
|
if (!agvQueues.isEmpty()) {
|
||||||
//解绑AGV容器
|
//解绑AGV容器
|
||||||
apiService.deleteAgvTray(agvQueues.get(0));
|
apiService.deleteAgvTray(agvQueues.get(0));
|
||||||
sleep(10000);
|
try {
|
||||||
|
Thread.sleep(5000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
if("L1001".equals(inSsjDevice.getDeviceCode())) {
|
if("L1001".equals(inSsjDevice.getDeviceCode())) {
|
||||||
int i = writeToSsj("DB802.100", agvQueues.get(0).getWmsTaskNo(), 2,Integer.parseInt(agvQueues.get(0).getCtnrCode()));
|
int i = writeToSsj("DB802.100", agvQueues.get(0).getWmsTaskNo(), 2,Integer.parseInt(agvQueues.get(0).getCtnrCode()));
|
||||||
if (i == 1) {
|
if (i == 1) {
|
||||||
@@ -211,8 +212,9 @@ public class Floor2InOutSsjThread implements Runnable {
|
|||||||
MydoJob mydoJob = new MydoJob();
|
MydoJob mydoJob = new MydoJob();
|
||||||
mydoJob.setInOrOut("1");
|
mydoJob.setInOrOut("1");
|
||||||
// mydoJob.setStatus("1");
|
// mydoJob.setStatus("1");
|
||||||
String[] split = ssjDevice.getTrayCode().split(" ");
|
String trayCode = ssjDevice.getTrayCode();
|
||||||
String serial = split[2].substring(7);
|
//String[] split = trayCode.split("\\s+");
|
||||||
|
String serial = findFirst(PATTERNS.get("SERIAL"), trayCode);
|
||||||
mydoJob.setTrayCode(serial);
|
mydoJob.setTrayCode(serial);
|
||||||
mydoJob.setEntranceId(ssjDevice.getDeviceCode());
|
mydoJob.setEntranceId(ssjDevice.getDeviceCode());
|
||||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
|
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
|
||||||
@@ -300,4 +302,25 @@ public class Floor2InOutSsjThread implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final Map<String, Pattern> PATTERNS = createPatterns();
|
||||||
|
private static Map<String, Pattern> createPatterns() {
|
||||||
|
Map<String, Pattern> map = new LinkedHashMap<>();
|
||||||
|
map.put("MODEL", Pattern.compile("MODEL:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("COLOR", Pattern.compile("COLOR:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("SERIAL", Pattern.compile("SERIAL:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("V", Pattern.compile("V:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("Hz", Pattern.compile("Hz:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("PH", Pattern.compile("PH:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("NW", Pattern.compile("N\\.W\\.:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("GW", Pattern.compile("G\\.W\\.:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("ITEM_CODE", Pattern.compile("ITEM_CODE:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("@", Pattern.compile("@:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
private static String findFirst(Pattern pattern, String input) {
|
||||||
|
if (pattern == null || input == null) return null;
|
||||||
|
Matcher m = pattern.matcher(input);
|
||||||
|
return m.find() ? m.group(1) : null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,9 @@ import com.ruoyi.schedule.plcRead.util.Tools;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
import java.util.regex.Matcher;
|
||||||
import java.util.HashMap;
|
import java.util.regex.Pattern;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static com.ruoyi.common.TaskStatusCode.*;
|
import static com.ruoyi.common.TaskStatusCode.*;
|
||||||
import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.*;
|
import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.*;
|
||||||
@@ -99,8 +98,10 @@ public class LineSsjThread implements Runnable {
|
|||||||
//查作业,入如果已经有了,直接下发输送线
|
//查作业,入如果已经有了,直接下发输送线
|
||||||
MydoJob mydoJob = new MydoJob();
|
MydoJob mydoJob = new MydoJob();
|
||||||
mydoJob.setInOrOut("1");
|
mydoJob.setInOrOut("1");
|
||||||
String[] split = SsjDevice.getTrayCode().split(" ");
|
String trayCode = SsjDevice.getTrayCode();
|
||||||
String serial = split[2].substring(7);
|
//String[] split = trayCode.split("\\s+");
|
||||||
|
String serial = findFirst(PATTERNS.get("SERIAL"), trayCode);
|
||||||
|
|
||||||
mydoJob.setTrayCode(serial);
|
mydoJob.setTrayCode(serial);
|
||||||
mydoJob.setEntranceId("G1005");
|
mydoJob.setEntranceId("G1005");
|
||||||
mydoJob.setFlag("0");
|
mydoJob.setFlag("0");
|
||||||
@@ -184,7 +185,6 @@ public class LineSsjThread implements Runnable {
|
|||||||
List<MydoJob> mydoJobs = mydoJobService.selectInOrOutMydoJobList(mydoJob);
|
List<MydoJob> mydoJobs = mydoJobService.selectInOrOutMydoJobList(mydoJob);
|
||||||
if (!mydoJobs.isEmpty()) {
|
if (!mydoJobs.isEmpty()) {
|
||||||
mydoJob = mydoJobs.get(0);
|
mydoJob = mydoJobs.get(0);
|
||||||
|
|
||||||
int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), mydoJob.getTaskNo(), 1, 1);
|
int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), mydoJob.getTaskNo(), 1, 1);
|
||||||
if (i == 1) {
|
if (i == 1) {
|
||||||
mydoJob.setExecutionPhase(TASK_EP_LINE_SSJ);
|
mydoJob.setExecutionPhase(TASK_EP_LINE_SSJ);
|
||||||
@@ -270,14 +270,14 @@ public class LineSsjThread implements Runnable {
|
|||||||
agvQueueService.updateAgvQueue(agvQueue);
|
agvQueueService.updateAgvQueue(agvQueue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if("0".equals(agvQueue.getStatus())){
|
if ("0".equals(agvQueue.getStatus())) {
|
||||||
apiService.requestAgvQueue(agvQueue);
|
apiService.requestAgvQueue(agvQueue);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ("1".equals(mydoJob.getStatus())) {
|
if ("1".equals(mydoJob.getStatus())) {
|
||||||
HashMap<String, String> paramMap = new HashMap<>();
|
HashMap<String, String> paramMap = new HashMap<>();
|
||||||
paramMap.put("trayCode", mydoJob.getTrayCode());
|
paramMap.put("trayCode", mydoJob.getTrayCode());
|
||||||
paramMap.put("taskCode",mydoJob.getJobId());
|
paramMap.put("taskCode", mydoJob.getJobId());
|
||||||
//todo 与agv对点
|
//todo 与agv对点
|
||||||
paramMap.put("startPoint", "G1005");
|
paramMap.put("startPoint", "G1005");
|
||||||
paramMap.put("endPoint", deviceCode);
|
paramMap.put("endPoint", deviceCode);
|
||||||
@@ -305,17 +305,18 @@ public class LineSsjThread implements Runnable {
|
|||||||
agvQueueService.updateAgvQueue(agvQueue);
|
agvQueueService.updateAgvQueue(agvQueue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if("0".equals(agvQueue.getStatus())){
|
if ("0".equals(agvQueue.getStatus())) {
|
||||||
apiService.requestAgvQueue(agvQueue);
|
apiService.requestAgvQueue(agvQueue);
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
HashMap<String, String> paramMap = new HashMap<>();
|
HashMap<String, String> paramMap = new HashMap<>();
|
||||||
String[] split = SsjDevice.getTrayCode().split(" ");
|
String trayCode = SsjDevice.getTrayCode();
|
||||||
String serial = split[2].substring(7);
|
//String[] split = trayCode.split("\\s+");
|
||||||
|
String serial = findFirst(PATTERNS.get("SERIAL"), trayCode);
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
||||||
String taskCode = "BY" + sdf.format(new Date());
|
String taskCode = "BY" + sdf.format(new Date());
|
||||||
paramMap.put("trayCode", serial);
|
paramMap.put("trayCode", serial);
|
||||||
paramMap.put("taskCode",taskCode);
|
paramMap.put("taskCode", taskCode);
|
||||||
//todo 与agv对点
|
//todo 与agv对点
|
||||||
paramMap.put("startPoint", "G1005");
|
paramMap.put("startPoint", "G1005");
|
||||||
paramMap.put("endPoint", "");
|
paramMap.put("endPoint", "");
|
||||||
@@ -373,4 +374,27 @@ public class LineSsjThread implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final Map<String, Pattern> PATTERNS = createPatterns();
|
||||||
|
|
||||||
|
private static Map<String, Pattern> createPatterns() {
|
||||||
|
Map<String, Pattern> map = new LinkedHashMap<>();
|
||||||
|
map.put("MODEL", Pattern.compile("MODEL:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("COLOR", Pattern.compile("COLOR:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("SERIAL", Pattern.compile("SERIAL:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("V", Pattern.compile("V:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("Hz", Pattern.compile("Hz:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("PH", Pattern.compile("PH:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("NW", Pattern.compile("N\\.W\\.:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("GW", Pattern.compile("G\\.W\\.:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("ITEM_CODE", Pattern.compile("ITEM_CODE:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
map.put("@", Pattern.compile("@:([^\\s]+)", Pattern.CASE_INSENSITIVE));
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String findFirst(Pattern pattern, String input) {
|
||||||
|
if (pattern == null || input == null) return null;
|
||||||
|
Matcher m = pattern.matcher(input);
|
||||||
|
return m.find() ? m.group(1) : null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user