优化0127
This commit is contained in:
@@ -38,14 +38,15 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Mysql驱动包 -->
|
<!-- Mysql驱动包 -->
|
||||||
<dependency>
|
<!-- <dependency>-->
|
||||||
<groupId>mysql</groupId>
|
<!-- <groupId>mysql</groupId>-->
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<!-- <artifactId>mysql-connector-java</artifactId>-->
|
||||||
</dependency>
|
<!-- </dependency>-->
|
||||||
<!-- sql server驱动包 -->
|
<!-- sql server驱动包 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.microsoft.sqlserver</groupId>
|
<groupId>com.microsoft.sqlserver</groupId>
|
||||||
<artifactId>mssql-jdbc</artifactId>
|
<artifactId>mssql-jdbc</artifactId>
|
||||||
|
<version>12.10.1.jre11</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- 核心模块-->
|
<!-- 核心模块-->
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
package com.ruoyi.api.controller;
|
package com.ruoyi.api.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
import com.ruoyi.api.domain.agv.agvCallback.AgvCallbackRequest;
|
import com.ruoyi.api.domain.agv.agvCallback.AgvCallbackRequest;
|
||||||
import com.ruoyi.api.domain.agv.agvCallback.AgvCallbackResponse;
|
import com.ruoyi.api.domain.agv.agvCallback.AgvCallbackResponse;
|
||||||
|
import com.ruoyi.api.domain.agv.cancelTask.CancelTaskRequest;
|
||||||
|
import com.ruoyi.api.domain.agv.cancelTask.CancelTaskResponse;
|
||||||
import com.ruoyi.api.service.IApiService;
|
import com.ruoyi.api.service.IApiService;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
@@ -27,6 +31,7 @@ public class AgvController extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IAgvQueueService agvQueueService;
|
private IAgvQueueService agvQueueService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* agv执行状态返回接口
|
* agv执行状态返回接口
|
||||||
* @param request
|
* @param request
|
||||||
@@ -75,4 +80,33 @@ public class AgvController extends BaseController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前端手动操作完成/取消AGV作业时,请求rcs,取消当前AGV正执行的作业
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/cancelTask")
|
||||||
|
public AjaxResult cancelTask(@RequestBody Map<String, String> param) {
|
||||||
|
AgvQueue agvQueue = agvQueueService.selectAgvQueueByTaskCode(param.get("taskCode"));
|
||||||
|
|
||||||
|
if(agvQueue==null){
|
||||||
|
return AjaxResult.error("AGV任务队列不存在!");
|
||||||
|
}else{
|
||||||
|
CancelTaskRequest cancelTaskRequest = new CancelTaskRequest();
|
||||||
|
cancelTaskRequest.setReqCode(IdUtil.fastSimpleUUID());
|
||||||
|
cancelTaskRequest.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
|
cancelTaskRequest.setTaskCode(agvQueue.getTaskCode());
|
||||||
|
|
||||||
|
//取消rcs中指定的agv任务
|
||||||
|
CancelTaskResponse cancelTaskResponse = apiService.cancelTask(cancelTaskRequest);
|
||||||
|
|
||||||
|
if(cancelTaskResponse.getCode() == 0 && "成功".equals(cancelTaskResponse.getMessage()) && cancelTaskResponse.getReqCode() == cancelTaskRequest.getReqCode()){
|
||||||
|
return AjaxResult.success("AGV任务队列取消成功!", cancelTaskResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
return AjaxResult.error("取消RCS-AGV任务队列失败!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,4 +75,5 @@ public class Wcs2WmsController {
|
|||||||
return apiService.updateWcsPort(wcsPort);
|
return apiService.updateWcsPort(wcsPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,4 +136,8 @@ public interface IApiService
|
|||||||
AjaxResult selectMydoJobByTrayCodeAndEntranceId(HashMap<String, Object> paramMap);
|
AjaxResult selectMydoJobByTrayCodeAndEntranceId(HashMap<String, Object> paramMap);
|
||||||
|
|
||||||
AjaxResult deleteAgvTray(AgvQueue agvQueue);
|
AjaxResult deleteAgvTray(AgvQueue agvQueue);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -478,4 +478,6 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
return AjaxResult.error();
|
return AjaxResult.error();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,4 +19,6 @@ public class Constant {
|
|||||||
public static final String REQUEST_ENTER_URL = WMS_BASE_URL+"requestEnterByTrayCodeAndEntranceId";
|
public static final String REQUEST_ENTER_URL = WMS_BASE_URL+"requestEnterByTrayCodeAndEntranceId";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ public class Floor1BothWayOutSsjThread implements Runnable {
|
|||||||
MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1(exitList, roadwayId);
|
MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1(exitList, roadwayId);
|
||||||
MydoJob inJob = mydoJobService.selectMydoJobByEntranceList1(entrance_id);
|
MydoJob inJob = mydoJobService.selectMydoJobByEntranceList1(entrance_id);
|
||||||
if (ObjUtil.isNotNull(mydoJob) && deviceSsj.getKx() == 1 && ssj.getKx() == 0
|
if (ObjUtil.isNotNull(mydoJob) && deviceSsj.getKx() == 1 && ssj.getKx() == 0
|
||||||
&& ObjUtil.isNull(inJob) && inOutSsj.getInOrOut() == 1 ) {
|
&& ObjUtil.isNull(inJob) && inOutSsj.getInOrOut() == 1 && deviceSsj.getTaskNo() == 0) {
|
||||||
//所有线体为空闲 并且存在出库作业 并且不存在入库作业
|
//所有线体为空闲 并且存在出库作业 并且不存在入库作业
|
||||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||||
if (ObjUtil.isNull(basCargoSpace)) {
|
if (ObjUtil.isNull(basCargoSpace)) {
|
||||||
@@ -203,6 +203,7 @@ public class Floor1BothWayOutSsjThread implements Runnable {
|
|||||||
mydoJob.setStatus(TASK_STATUS_RUNNING);
|
mydoJob.setStatus(TASK_STATUS_RUNNING);
|
||||||
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
||||||
mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
|
mydoJob.setExitId(entrance_id);
|
||||||
mydoJobService.updateMydoJob(mydoJob);
|
mydoJobService.updateMydoJob(mydoJob);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,36 +73,67 @@ public class Floor1SingleSsjThread implements Runnable {
|
|||||||
public void run() {
|
public void run() {
|
||||||
init();
|
init();
|
||||||
while (isRun) {
|
while (isRun) {
|
||||||
for (String type : ssjCodeList.keySet()) {
|
|
||||||
//一楼单向巷道口
|
|
||||||
if ("outRoadwaySsj".equals(type)) {
|
|
||||||
for (String ssjCode : ssjCodeList.get(type)) {
|
|
||||||
try {
|
try {
|
||||||
if (PlcSsjRead.deviceSsjMap.containsKey(ssjCode)) {
|
if (PlcSsjRead.deviceSsjMap.containsKey("L2001")) {
|
||||||
dispatch(PlcSsjRead.deviceSsjMap.get(ssjCode));
|
dispatch(PlcSsjRead.deviceSsjMap.get("L2001"));
|
||||||
} else {
|
} else {
|
||||||
log.error("设备不存在 ssjCode{}", ssjCode);
|
log.error("设备不存在 ssjCode{}", "L2001");
|
||||||
}
|
}
|
||||||
|
if (PlcSsjRead.deviceSsjMap.containsKey("L2007")) {
|
||||||
|
dispatch(PlcSsjRead.deviceSsjMap.get("L2007"));
|
||||||
|
} else {
|
||||||
|
log.error("设备不存在 ssjCode{}", "L2007");
|
||||||
|
}
|
||||||
|
if (PlcSsjRead.deviceSsjMap.containsKey("L2002")) {
|
||||||
|
dispatch2(PlcSsjRead.deviceSsjMap.get("L2002"));
|
||||||
|
} else {
|
||||||
|
log.error("设备不存在 ssjCode{}", "L2002");
|
||||||
|
}
|
||||||
|
if (PlcSsjRead.deviceSsjMap.containsKey("L2008")) {
|
||||||
|
dispatch2(PlcSsjRead.deviceSsjMap.get("L2008"));
|
||||||
|
} else {
|
||||||
|
log.error("设备不存在 ssjCode{}", "L2008");
|
||||||
|
}
|
||||||
|
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ("outSsj".equals(type)) {
|
|
||||||
for (String ssjCode : ssjCodeList.get(type)) {
|
|
||||||
try {
|
|
||||||
if (PlcSsjRead.deviceSsjMap.containsKey(ssjCode)) {
|
// for (String type : ssjCodeList.keySet()) {
|
||||||
dispatch2(PlcSsjRead.deviceSsjMap.get(ssjCode));
|
// //一楼单向巷道口
|
||||||
} else {
|
// if ("outRoadwaySsj".equals(type)) {
|
||||||
log.error("设备不存在 ssjCode{}", ssjCode);
|
// for (String ssjCode : ssjCodeList.get(type)) {
|
||||||
}
|
// try {
|
||||||
} catch (RuntimeException e) {
|
// if (PlcSsjRead.deviceSsjMap.containsKey(ssjCode)) {
|
||||||
log.error(e.getMessage(), e);
|
// dispatch(PlcSsjRead.deviceSsjMap.get(ssjCode));
|
||||||
}
|
// } else {
|
||||||
}
|
// log.error("设备不存在 ssjCode{}", ssjCode);
|
||||||
}
|
// }
|
||||||
}
|
// } catch (RuntimeException e) {
|
||||||
|
// log.error(e.getMessage(), e);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if ("outSsj".equals(type)) {
|
||||||
|
// for (String ssjCode : ssjCodeList.get(type)) {
|
||||||
|
// try {
|
||||||
|
// if (PlcSsjRead.deviceSsjMap.containsKey(ssjCode)) {
|
||||||
|
// dispatch2(PlcSsjRead.deviceSsjMap.get(ssjCode));
|
||||||
|
// } else {
|
||||||
|
// log.error("设备不存在 ssjCode{}", ssjCode);
|
||||||
|
// }
|
||||||
|
// } catch (RuntimeException e) {
|
||||||
|
// log.error(e.getMessage(), e);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
try {
|
try {
|
||||||
Thread.sleep(1500);
|
Thread.sleep(1500);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
@@ -149,15 +180,19 @@ public class Floor1SingleSsjThread implements Runnable {
|
|||||||
*/
|
*/
|
||||||
public void dispatch(DeviceSsj ssj) {
|
public void dispatch(DeviceSsj ssj) {
|
||||||
//如果入库请求1 并且 托盘码不为空
|
//如果入库请求1 并且 托盘码不为空
|
||||||
if (ssj.getKx() == 1) {
|
if (ssj.getKx() == 1 && ssj.getTaskNo() == 0) {
|
||||||
List<String> exitList = new ArrayList<>();
|
List<String> exitList = new ArrayList<>();
|
||||||
exitList.add("1");
|
exitList.add("1");
|
||||||
String roadwayId = "";
|
String roadwayId = "";
|
||||||
|
String entrance_id = "";
|
||||||
if("L2001".equals(ssj.getDeviceCode())){
|
if("L2001".equals(ssj.getDeviceCode())){
|
||||||
roadwayId = "1";
|
roadwayId = "1";
|
||||||
|
entrance_id = "L2002";
|
||||||
|
|
||||||
}
|
}
|
||||||
if("L2007".equals(ssj.getDeviceCode())){
|
if("L2007".equals(ssj.getDeviceCode())){
|
||||||
roadwayId = "2";
|
roadwayId = "2";
|
||||||
|
entrance_id = "L2008";
|
||||||
}
|
}
|
||||||
MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1(exitList,roadwayId);
|
MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1(exitList,roadwayId);
|
||||||
if (ObjUtil.isNotNull(mydoJob)) {
|
if (ObjUtil.isNotNull(mydoJob)) {
|
||||||
@@ -192,6 +227,7 @@ public class Floor1SingleSsjThread implements Runnable {
|
|||||||
mydoJob.setStatus(TASK_STATUS_RUNNING);
|
mydoJob.setStatus(TASK_STATUS_RUNNING);
|
||||||
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
||||||
mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
|
mydoJob.setExitId(entrance_id);
|
||||||
mydoJobService.updateMydoJob(mydoJob);
|
mydoJobService.updateMydoJob(mydoJob);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ spring:
|
|||||||
# url: jdbc:sqlserver://172.16.2.170:1433;databaseName=FT517-WCS;
|
# url: jdbc:sqlserver://172.16.2.170:1433;databaseName=FT517-WCS;
|
||||||
# username: sa
|
# username: sa
|
||||||
# password: Flrd0914.
|
# password: Flrd0914.
|
||||||
url: jdbc:sqlserver://192.168.58.10:1433;databaseName=FT517-wcs;
|
url: jdbc:sqlserver://192.168.58.10:1433;databaseName=FT517-wcs;;encrypt=true;trustServerCertificate=true;
|
||||||
username: sa
|
username: sa
|
||||||
password: www.123.com
|
password: www.123.com
|
||||||
|
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ token:
|
|||||||
# 令牌密钥
|
# 令牌密钥
|
||||||
secret: abcdefghijklmnopqrstuvwxyz
|
secret: abcdefghijklmnopqrstuvwxyz
|
||||||
# 令牌有效期(默认30分钟)
|
# 令牌有效期(默认30分钟)
|
||||||
expireTime: 30
|
expireTime: 10080
|
||||||
|
|
||||||
# MyBatis配置
|
# MyBatis配置
|
||||||
mybatis:
|
mybatis:
|
||||||
|
|||||||
@@ -98,6 +98,13 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['agv:queue:edit']"
|
||||||
|
>修改</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
@@ -117,8 +124,20 @@
|
|||||||
:limit.sync="queryParams.pageSize"
|
:limit.sync="queryParams.pageSize"
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="请求编号" prop="reqCode">
|
||||||
|
<el-input v-model="form.reqCode" placeholder="请输入请求编号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="状态" prop="status">
|
||||||
|
<el-input v-model="form.status" placeholder="请修改状态" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user