优化0120

This commit is contained in:
zj
2026-01-20 16:45:46 +08:00
parent 6c2d8fcb0f
commit d2d871baf1
26 changed files with 335 additions and 226 deletions

View File

@@ -38,7 +38,6 @@ public class AgvController extends BaseController {
} }
/** /**
* agv搬运作业 * agv搬运作业
* @param param{ * @param param{

View File

@@ -279,16 +279,21 @@ public class ApiServiceImpl implements IApiService {
agvQueue.setReqTime(DateUtil.formatDateTime(DateUtil.date())); agvQueue.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
agvQueue.setAgvType("AGV"); agvQueue.setAgvType("AGV");
agvQueue.setPositionCode1(code1); agvQueue.setPositionCode1(code1);
agvQueue.setPositionCode2(code2); if("4".equals(traySize) && "L1001".equals(code2)){
agvQueue.setTaskType("A22"); agvQueue.setPositionCode2("L1001-1");
// agvQueue.setCtnrType("1");
//rcslite开启托盘自动调整位置后 - 测试一巷道放货区分托盘类型
if (traySize == "2" || traySize == "3") {
agvQueue.setCtnrType("3");
}else{ }else{
agvQueue.setCtnrType("1"); agvQueue.setPositionCode2(code2);
} }
agvQueue.setTaskType("A22");
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");
@@ -379,9 +384,11 @@ public class ApiServiceImpl implements IApiService {
mydoJob.setTaskNo(receiveOutJob.getTaskNo()); mydoJob.setTaskNo(receiveOutJob.getTaskNo());
mydoJob.setCargoSpaceId(receiveOutJob.getCargoSpaceId()); mydoJob.setCargoSpaceId(receiveOutJob.getCargoSpaceId());
if("L2002".equals(receiveOutJob.getExitId()) || "L2008".equals(receiveOutJob.getCargoSpaceId()) if("L2002".equals(receiveOutJob.getExitId()) || "L2008".equals(receiveOutJob.getExitId())
|| "L2004".equals(receiveOutJob.getCargoSpaceId()) || "L2006".equals(receiveOutJob.getExitId())) { || "L2004".equals(receiveOutJob.getExitId()) || "L2006".equals(receiveOutJob.getExitId())) {
mydoJob.setExitId("1"); mydoJob.setExitId("1");
}else{
mydoJob.setExitId(receiveOutJob.getExitId());
} }
mydoJob.setInOrOut(receiveOutJob.getInOrOut()); mydoJob.setInOrOut(receiveOutJob.getInOrOut());
mydoJob.setStatus("1"); mydoJob.setStatus("1");
@@ -414,7 +421,7 @@ public class ApiServiceImpl implements IApiService {
return AjaxResult.error(); return AjaxResult.error();
} }
} }
//todo 新增agv站点
@Override @Override
public AjaxResult deleteAgvTray(AgvQueue agvQueue) { public AjaxResult deleteAgvTray(AgvQueue agvQueue) {
Map<String, String> paramMap = new HashMap<>(); Map<String, String> paramMap = new HashMap<>();
@@ -428,6 +435,9 @@ public class ApiServiceImpl implements IApiService {
if("L1003".equals(agvQueue.getPositionCode2())){ if("L1003".equals(agvQueue.getPositionCode2())){
paramMap.put("stgBinCode", "JT000206001013"); paramMap.put("stgBinCode", "JT000206001013");
} }
if("L1001-1".equals(agvQueue.getPositionCode2())){
paramMap.put("stgBinCode", "JT000407001013");
}
// paramMap.put("binName", agvQueue.getPositionCode2()); // paramMap.put("binName", agvQueue.getPositionCode2());
paramMap.put("indBind", "0"); paramMap.put("indBind", "0");

View File

@@ -4,14 +4,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
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;
@@ -113,4 +106,12 @@ public class MydoJobController extends BaseController
{ {
return toAjax(mydoJobService.deleteMydoJobByJobIds(jobIds)); return toAjax(mydoJobService.deleteMydoJobByJobIds(jobIds));
} }
@PreAuthorize("@ss.hasAnyPermi('job:mydoJob:OuthandFinish')")
@Log(title = "出库手动完成", businessType = BusinessType.OTHER)
@RequestMapping("/OuthandFinish")
public AjaxResult manualCompleted(@RequestParam("jobIds")String[] jobIds)
{
return mydoJobService.OuthandFinish(jobIds);
}
} }

View File

@@ -1,6 +1,8 @@
package com.ruoyi.job.service; package com.ruoyi.job.service;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.job.domain.MydoJob; import com.ruoyi.job.domain.MydoJob;
/** /**
@@ -83,4 +85,6 @@ public interface IMydoJobService
MydoJob selectJobByTaskNo(String taskNo); MydoJob selectJobByTaskNo(String taskNo);
MydoJob selectMydoJobByEntranceList1(String entranceId); MydoJob selectMydoJobByEntranceList1(String entranceId);
AjaxResult OuthandFinish(String[] jobIds);
} }

View File

@@ -1,11 +1,15 @@
package com.ruoyi.job.service.impl; package com.ruoyi.job.service.impl;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.job.domain.JobCallBack;
import com.ruoyi.job.service.IJobCallBackService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.job.mapper.MydoJobMapper; import com.ruoyi.job.mapper.MydoJobMapper;
@@ -23,6 +27,8 @@ public class MydoJobServiceImpl implements IMydoJobService
{ {
@Autowired @Autowired
private MydoJobMapper mydoJobMapper; private MydoJobMapper mydoJobMapper;
@Autowired
private IJobCallBackService jobCallBackService;
/** /**
* 查询作业信息 * 查询作业信息
@@ -82,6 +88,9 @@ public class MydoJobServiceImpl implements IMydoJobService
@Override @Override
public int deleteMydoJobByJobIds(String[] jobIds) public int deleteMydoJobByJobIds(String[] jobIds)
{ {
for (String jobId : jobIds) {
mydoJobMapper.insertHistory(jobId);
}
return mydoJobMapper.deleteMydoJobByJobIds(jobIds); return mydoJobMapper.deleteMydoJobByJobIds(jobIds);
} }
@@ -159,6 +168,28 @@ public class MydoJobServiceImpl implements IMydoJobService
return mydoJobMapper.selectMydoJobByEntranceList1(entranceId); return mydoJobMapper.selectMydoJobByEntranceList1(entranceId);
} }
@Override
public AjaxResult OuthandFinish(String[] jobIds) {
for (String jobId : jobIds) {
mydoJobMapper.insertHistory(jobId);
MydoJob mydoJob = mydoJobMapper.selectMydoJobByJobId(jobId);
JobCallBack jobCallBack = new JobCallBack();
long jobIdNum = Long.parseLong(mydoJob.getInOrOut());
if (jobIdNum > 20){
jobCallBack.setType("2");
}else{jobCallBack.setType("1");}
jobCallBack.setMydojobId(mydoJob.getJobId());
jobCallBack.setStatus("0");
jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo()));
jobCallBack.setCreateTime(new Date());
jobCallBack.setSpare1("0");
jobCallBackService.insertJobCallBack(jobCallBack);
mydoJobMapper.deleteMydoJobByJobId(jobId);
}
return AjaxResult.success("操作成功");
}
@Override @Override
public List<MydoJob> selectMydoJobFinishList(MydoJob mydoJob) { public List<MydoJob> selectMydoJobFinishList(MydoJob mydoJob) {
return mydoJobMapper.selectMydoJobFinishList(mydoJob); return mydoJobMapper.selectMydoJobFinishList(mydoJob);

View File

@@ -70,4 +70,6 @@ public interface AgvQueueMapper
void insertHistory(String reqCode); void insertHistory(String reqCode);
AgvQueue selectAgvQueueByWmsTask(@Param("wmsTaskNo") int wmsTaskNo); AgvQueue selectAgvQueueByWmsTask(@Param("wmsTaskNo") int wmsTaskNo);
List<AgvQueue> selectAgvQueueList1(AgvQueue agvQueue);
} }

View File

@@ -73,4 +73,6 @@ public interface IAgvQueueService
void insertHistory(String reqCode); void insertHistory(String reqCode);
AgvQueue selectAgvQueueByWmsTask(int taskNo); AgvQueue selectAgvQueueByWmsTask(int taskNo);
List<AgvQueue> selectAgvQueueList1(AgvQueue agvQueue);
} }

View File

@@ -43,6 +43,12 @@ public class AgvQueueServiceImpl implements IAgvQueueService
return agvQueueMapper.selectAgvQueueList(agvQueue); return agvQueueMapper.selectAgvQueueList(agvQueue);
} }
@Override
public List<AgvQueue> selectAgvQueueList1(AgvQueue agvQueue)
{
return agvQueueMapper.selectAgvQueueList1(agvQueue);
}
/** /**
* 新增AGV任务队列 * 新增AGV任务队列
* *

View File

@@ -91,6 +91,7 @@ public class DdjDeviceExecutionQueueController extends BaseController
return toAjax(ddjDeviceExecutionQueueService.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue)); return toAjax(ddjDeviceExecutionQueueService.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue));
} }
/** /**
* 删除堆垛机执行队列 * 删除堆垛机执行队列
*/ */

View File

@@ -43,6 +43,7 @@ public interface DdjDeviceExecutionQueueMapper
* @return 结果 * @return 结果
*/ */
public int updateDdjDeviceExecutionQueue(DdjDeviceExecutionQueue ddjDeviceExecutionQueue); public int updateDdjDeviceExecutionQueue(DdjDeviceExecutionQueue ddjDeviceExecutionQueue);
public int updateDdjDeviceExecutionQueue1(DdjDeviceExecutionQueue ddjDeviceExecutionQueue);
/** /**
* 删除堆垛机执行队列 * 删除堆垛机执行队列

View File

@@ -64,9 +64,12 @@ public class DdjDeviceExecutionQueueServiceImpl implements IDdjDeviceExecutionQu
@Override @Override
public int updateDdjDeviceExecutionQueue(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) public int updateDdjDeviceExecutionQueue(DdjDeviceExecutionQueue ddjDeviceExecutionQueue)
{ {
ddjDeviceExecutionQueue.setDdjxf("0");
return ddjDeviceExecutionQueueMapper.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); return ddjDeviceExecutionQueueMapper.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
} }
/** /**
* 批量删除堆垛机执行队列 * 批量删除堆垛机执行队列
* *

View File

@@ -197,7 +197,7 @@ public class PlcSsjRead implements Runnable {
// } // }
} }
} }
OperateResultExOne<byte[]> agvSsjTask = readWriteNet.Read("DB501.280", Short.parseShort("8")); OperateResultExOne<byte[]> agvSsjTask = readWriteNet.Read("DB501.280", Short.parseShort("16"));
String ddsx2 = "0"; String ddsx2 = "0";
if (agvSsjTask.IsSuccess) { if (agvSsjTask.IsSuccess) {
ddsx2 = SoftBasic.ByteToHexString(agvSsjTask.Content); ddsx2 = SoftBasic.ByteToHexString(agvSsjTask.Content);
@@ -207,6 +207,12 @@ public class PlcSsjRead implements Runnable {
if("L1003".equals(ssjDevice.getDeviceCode())){ if("L1003".equals(ssjDevice.getDeviceCode())){
ssjDevice.setTaskNo2(ParseUtil.optDInt(4, ddsx2)); ssjDevice.setTaskNo2(ParseUtil.optDInt(4, ddsx2));
} }
if("L2004".equals(ssjDevice.getDeviceCode())){
ssjDevice.setTaskNo2(ParseUtil.optDInt(8, ddsx2));
}
if("L2006".equals(ssjDevice.getDeviceCode())){
ssjDevice.setTaskNo2(ParseUtil.optDInt(12, ddsx2));
}
} }
} }
} }

View File

@@ -53,9 +53,9 @@ public class Floor1BothWayOutSsjThread implements Runnable {
roadway2.add(PlcSsjRead.deviceSsjMap.get("L2005")); roadway2.add(PlcSsjRead.deviceSsjMap.get("L2005"));
ssjCodeList.put("roadway2", roadway2); ssjCodeList.put("roadway2", roadway2);
ArrayList<DeviceSsj> ou1 = new ArrayList<>(); ArrayList<DeviceSsj> out1 = new ArrayList<>();
ou1.add(PlcSsjRead.deviceSsjMap.get("L2004")); out1.add(PlcSsjRead.deviceSsjMap.get("L2004"));
ssjCodeList.put("ou1", ou1); ssjCodeList.put("out1", out1);
ArrayList<DeviceSsj> out2 = new ArrayList<>(); ArrayList<DeviceSsj> out2 = new ArrayList<>();
out2.add(PlcSsjRead.deviceSsjMap.get("L2006")); out2.add(PlcSsjRead.deviceSsjMap.get("L2006"));
ssjCodeList.put("out2", out2); ssjCodeList.put("out2", out2);
@@ -87,10 +87,14 @@ public class Floor1BothWayOutSsjThread implements Runnable {
switch (type) { switch (type) {
case "roadway1": case "roadway1":
dispatch(ssjCodeList.get(type));
break;
case "roadway2": case "roadway2":
dispatch(ssjCodeList.get(type)); dispatch(ssjCodeList.get(type));
break; break;
case "out1": case "out1":
dispatch1(ssjCodeList.get(type));
break;
case "out2": case "out2":
dispatch1(ssjCodeList.get(type)); dispatch1(ssjCodeList.get(type));
break; break;
@@ -109,9 +113,9 @@ public class Floor1BothWayOutSsjThread implements Runnable {
private void dispatch1(List<DeviceSsj> ssjList) { private void dispatch1(List<DeviceSsj> ssjList) {
for (DeviceSsj ssj : ssjList) { for (DeviceSsj ssj : ssjList) {
if (ssj.getTaskNo() > 0) { if (ssj.getTaskNo2() > 0) {
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(ssj.getTaskNo())); MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(ssj.getTaskNo2()));
if(Convert.toInt(mydoJob.getInOrOut()) > 20){ if(mydoJob != null && Convert.toInt(mydoJob.getInOrOut()) > 20){
if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) { if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) {
mydoJob.setExecutionPhase(TASK_EP_SSJ); mydoJob.setExecutionPhase(TASK_EP_SSJ);
mydoJobService.updateMydoJob(mydoJob); mydoJobService.updateMydoJob(mydoJob);
@@ -145,18 +149,21 @@ public class Floor1BothWayOutSsjThread implements Runnable {
public void dispatch(List<DeviceSsj> ssjList) { public void dispatch(List<DeviceSsj> ssjList) {
DeviceSsj deviceSsj = ssjList.get(0); DeviceSsj deviceSsj = ssjList.get(0);
DeviceSsj ssj = new DeviceSsj(); DeviceSsj ssj = new DeviceSsj();
DeviceSsj inOutSsj = new DeviceSsj();
String roadwayId = ""; String roadwayId = "";
String entrance_id = ""; String entrance_id = "";
if ("L2003".equals(deviceSsj.getDeviceCode())) { if ("L2003".equals(deviceSsj.getDeviceCode())) {
roadwayId = "1"; roadwayId = "1";
ssj = ssjCodeList.get("roadway1Both").get(0); ssj = ssjCodeList.get("roadway1Both").get(0);
entrance_id = "L2004"; entrance_id = "L2004";
inOutSsj = PlcSsjRead.deviceSsjMap.get("L2004");
} }
if("L2005".equals(deviceSsj.getDeviceCode())) { if("L2005".equals(deviceSsj.getDeviceCode())) {
roadwayId = "2"; roadwayId = "2";
ssj = ssjCodeList.get("roadway2Both").get(0); ssj = ssjCodeList.get("roadway2Both").get(0);
entrance_id = "L2006"; entrance_id = "L2006";
inOutSsj = PlcSsjRead.deviceSsjMap.get("L2006");
} }
List<String> exitList = new ArrayList<>(); List<String> exitList = new ArrayList<>();
@@ -164,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) && ssj.getInOrOut() == 1) { && ObjUtil.isNull(inJob) && inOutSsj.getInOrOut() == 1 ) {
//所有线体为空闲 并且存在出库作业 并且不存在入库作业 //所有线体为空闲 并且存在出库作业 并且不存在入库作业
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
if (ObjUtil.isNull(basCargoSpace)) { if (ObjUtil.isNull(basCargoSpace)) {

View File

@@ -120,7 +120,7 @@ public class Floor1SingleSsjThread implements Runnable {
private void dispatch2(DeviceSsj ssj) { private void dispatch2(DeviceSsj ssj) {
if (ssj.getTaskNo() > 0) { if (ssj.getTaskNo() > 0) {
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(ssj.getTaskNo())); MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(ssj.getTaskNo()));
if (ObjUtil.isNotNull(mydoJob)) { if (ObjUtil.isNotNull(mydoJob) && Convert.toInt(mydoJob.getInOrOut()) > 20) {
mydoJob.setExecutionPhase(TASK_EP_SSJ); mydoJob.setExecutionPhase(TASK_EP_SSJ);
mydoJobService.updateMydoJob(mydoJob); mydoJobService.updateMydoJob(mydoJob);
JobCallBack jobCallBack = new JobCallBack(); JobCallBack jobCallBack = new JobCallBack();

View File

@@ -97,7 +97,7 @@ public class Floor2InOutSsjThread implements Runnable {
//agvQueue.setStatus("4"); //agvQueue.setStatus("4");
//todo 与agv对点 //todo 与agv对点
agvQueue.setPositionCode2(inSsjDevice.getDeviceCode()); agvQueue.setPositionCode2(inSsjDevice.getDeviceCode());
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(agvQueue); List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList1(agvQueue);
//不允许放货 等着 //不允许放货 等着
if (!agvQueues.isEmpty() && inSsjDevice.getAllowPut() == 0 && "L1001".equals(inSsjDevice.getDeviceCode())) { if (!agvQueues.isEmpty() && inSsjDevice.getAllowPut() == 0 && "L1001".equals(inSsjDevice.getDeviceCode())) {
//下发输送线切换导向 DB未知 //下发输送线切换导向 DB未知
@@ -131,7 +131,7 @@ public class Floor2InOutSsjThread implements Runnable {
agvQueue.setStatus("7"); //end agvQueue.setStatus("7"); //end
//todo 与agv对点 //todo 与agv对点
agvQueue.setPositionCode2(inSsjDevice.getDeviceCode()); agvQueue.setPositionCode2(inSsjDevice.getDeviceCode());
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(agvQueue); List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList1(agvQueue);
if (!agvQueues.isEmpty()) { if (!agvQueues.isEmpty()) {
//解绑AGV容器 //解绑AGV容器
apiService.deleteAgvTray(agvQueues.get(0)); apiService.deleteAgvTray(agvQueues.get(0));
@@ -162,7 +162,7 @@ public class Floor2InOutSsjThread implements Runnable {
agvQueue.setStatus("7"); //end agvQueue.setStatus("7"); //end
//todo 与agv对点 //todo 与agv对点
agvQueue.setPositionCode2(inSsjDevice.getDeviceCode()); agvQueue.setPositionCode2(inSsjDevice.getDeviceCode());
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(agvQueue); List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList1(agvQueue);
if(agvQueues.size() > 0){ if(agvQueues.size() > 0){
MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(agvQueues.get(0).getTaskCode()); MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(agvQueues.get(0).getTaskCode());
mydoJob.setExecutionPhase(TASK_EP_SSJ); mydoJob.setExecutionPhase(TASK_EP_SSJ);

View File

@@ -133,10 +133,10 @@ public class Floor2RoadWaySsjThread implements Runnable {
if(roadSsjDevice.getKx()==1 && roadSsjDevice.getTaskNo() == 0){ if(roadSsjDevice.getKx()==1 && roadSsjDevice.getTaskNo() == 0){
List<String> exitList = new ArrayList<>(); List<String> exitList = new ArrayList<>();
if("L1002".equals(roadSsjDevice.getDeviceCode())){ if("L1002".equals(roadSsjDevice.getDeviceCode())){
exitList.add("l1001"); exitList.add("L1001");
} }
if("L1004".equals(roadSsjDevice.getDeviceCode())){ if("L1004".equals(roadSsjDevice.getDeviceCode())){
exitList.add("l1003"); exitList.add("L1003");
} }
List<MydoJob> inList = mydoJobService.getInJobByEntrance(exitList); List<MydoJob> inList = mydoJobService.getInJobByEntrance(exitList);
if(inList.size() == 0){ if(inList.size() == 0){

View File

@@ -241,10 +241,10 @@ public class LineSsjThread implements Runnable {
//log.info("设备:{} 位置:{} 条码:{} 托盘大小:{}", SsjDevice.getDeviceCode(), "产线收到wcs任务号", SsjDevice.getTrayCode(), SsjDevice.getTraySize()); //log.info("设备:{} 位置:{} 条码:{} 托盘大小:{}", SsjDevice.getDeviceCode(), "产线收到wcs任务号", SsjDevice.getTrayCode(), SsjDevice.getTraySize());
//任务号查wcs作业,查巷道,看目标输送线是否空闲,查是否有出库作业,生成agv队列 //任务号查wcs作业,查巷道,看目标输送线是否空闲,查是否有出库作业,生成agv队列
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(SsjDevice.getTaskNo())); MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(SsjDevice.getTaskNo()));
String deviceCode = ""; String deviceCode = "";
if (mydoJob != null) { if (mydoJob != null) {
if ("1".equals(mydoJob.getRoadwayId())) { if ("1".equals(mydoJob.getRoadwayId())) {
deviceCode = "L1001"; deviceCode = "L1001";
} else { } else {

View File

@@ -26,7 +26,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectAgvQueueVo"> <sql id="selectAgvQueueVo">
select req_code, req_time, position_code_1, position_code_2, task_type, ctnr_type, ctnr_code, ctnr_num, task_mode, priority, agv_type, request, finish_time, wms_traycode, wms_task_no,status,task_code,wms_task_type from agv_queue select req_code, req_time, position_code_1, position_code_2, task_type, ctnr_type, ctnr_code,
ctnr_num, task_mode, priority, agv_type, request, finish_time, wms_traycode, wms_task_no,
status,task_code,wms_task_type from agv_queue
</sql> </sql>
<select id="selectAgvQueueList" parameterType="AgvQueue" resultMap="AgvQueueResult"> <select id="selectAgvQueueList" parameterType="AgvQueue" resultMap="AgvQueueResult">
@@ -53,6 +55,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by req_time desc order by req_time desc
</select> </select>
<select id="selectAgvQueueList1" parameterType="AgvQueue" resultMap="AgvQueueResult">
select * from agv_queue where status=#{status} and position_code_2 like concat('%',#{positionCode2},'%')
</select>
<select id="selectAgvQueueByReqCode" parameterType="String" resultMap="AgvQueueResult"> <select id="selectAgvQueueByReqCode" parameterType="String" resultMap="AgvQueueResult">
<include refid="selectAgvQueueVo"/> <include refid="selectAgvQueueVo"/>
where req_code = #{reqCode} where req_code = #{reqCode}

View File

@@ -255,6 +255,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectMydoJobByEntranceList1" resultMap="MydoJobResult"> <select id="selectMydoJobByEntranceList1" resultMap="MydoJobResult">
select TOP 1 job_id, status, task_no, roadway_id, cargo_space_id, target_roadway_id, target_cargo_space_id, priority, execution_phase, in_or_out, create_time, start_time, finish_time, entrance_id, exit_id, warehouse_id, fault_flag,flag, tray_code from mydo_job_wcs select TOP 1 job_id, status, task_no, roadway_id, cargo_space_id, target_roadway_id, target_cargo_space_id, priority, execution_phase, in_or_out, create_time, start_time, finish_time, entrance_id, exit_id, warehouse_id, fault_flag,flag, tray_code from mydo_job_wcs
where entrance_id = #{entranceId} where entrance_id = #{entranceId}
and in_or_out &lt;= 20 and status = 3 and in_or_out &lt;= 20 and status = 3
order by priority desc,create_time desc order by priority desc,create_time desc
</select> </select>

View File

@@ -148,6 +148,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where uuid = #{uuid} where uuid = #{uuid}
</update> </update>
<delete id="deleteDdjDeviceExecutionQueueByUuid" parameterType="String"> <delete id="deleteDdjDeviceExecutionQueueByUuid" parameterType="String">
delete from ddj_device_execution_queue where uuid = #{uuid} delete from ddj_device_execution_queue where uuid = #{uuid}
</delete> </delete>

View File

@@ -51,3 +51,13 @@ export function delMydoJob(jobId) {
method: 'delete' method: 'delete'
}) })
} }
export function handFinish(jobIds) {
return request({
url: '/job/mydoJob/OuthandFinish',
method: 'get',
params: { jobIds: jobIds }
})
}

View File

@@ -49,4 +49,5 @@ export function delDdj(uuid) {
url: '/queue/ddj/' + uuid, url: '/queue/ddj/' + uuid,
method: 'delete' method: 'delete'
}) })
} }

View File

@@ -54,6 +54,20 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['agv:queue:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="queueList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="queueList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="请求编号" align="center" prop="reqCode" /> <el-table-column label="请求编号" align="center" prop="reqCode" />
@@ -82,6 +96,18 @@
<dict-tag :options="dict.type.wms_task_type" :value="scope.row.wmsTaskType"/> <dict-tag :options="dict.type.wms_task_type" :value="scope.row.wmsTaskType"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['agv:queue:remove']"
>删除
</el-button>
</template>
</el-table-column>
</el-table> </el-table>
<pagination <pagination

View File

@@ -158,25 +158,25 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20" class="table-container"> <!-- <el-row :gutter="20" class="table-container">-->
<el-col :span="24" class="table-col"> <!-- <el-col :span="24" class="table-col">-->
<div class="table-card"> <!-- <div class="table-card">-->
<div class="table-header"> <!-- <div class="table-header">-->
<span class="table-title">AGV</span> <!-- <span class="table-title">AGV</span>-->
<el-tag type="success" size="mini">{{ agvData.length }}台</el-tag> <!-- <el-tag type="success" size="mini">{{ agvData.length }}台</el-tag>-->
</div> <!-- </div>-->
<el-table :data="agvData" size="mini" style="width: 100%"> <!-- <el-table :data="agvData" size="mini" style="width: 100%">-->
<el-table-column label="设备编码" align="center" prop="deviceCode" /> <!-- <el-table-column label="设备编码" align="center" prop="deviceCode" />-->
<el-table-column label="设备名称" align="center" prop="name" /> <!-- <el-table-column label="设备名称" align="center" prop="name" />-->
<el-table-column label="状态" align="center" prop="status" /> <!-- <el-table-column label="状态" align="center" prop="status" />-->
<el-table-column label="起点" align="center" prop="spare1" /> <!-- <el-table-column label="起点" align="center" prop="spare1" />-->
<el-table-column label="终点" align="center" prop="spare2" /> <!-- <el-table-column label="终点" align="center" prop="spare2" />-->
<el-table-column label="任务号" align="center" prop="taskNo" /> <!-- <el-table-column label="任务号" align="center" prop="taskNo" />-->
<el-table-column label="执行阶段" align="center" prop="zxjd" /> <!-- <el-table-column label="执行阶段" align="center" prop="zxjd" />-->
</el-table> <!-- </el-table>-->
</div> <!-- </div>-->
</el-col> <!-- </el-col>-->
</el-row> <!-- </el-row>-->
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="floor-title">一层</div> <div class="floor-title">一层</div>

View File

@@ -129,51 +129,20 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- <el-row :gutter="10" class="mb8">--> <el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">--> <el-col :span="1.5">
<!-- <el-button--> <el-button
<!-- type="primary"--> type="danger"
<!-- plain--> plain
<!-- icon="el-icon-plus"--> icon="el-icon-delete"
<!-- size="mini"--> size="mini"
<!-- @click="handleAdd"--> :disabled="multiple"
<!-- v-hasPermi="['job:mydoJob:add']"--> @click="OuthandFinish"
<!-- >新增</el-button>--> v-hasPermi="['job:mydoJob:OuthandFinish']"
<!-- </el-col>--> >手动完成</el-button>
<!-- <el-col :span="1.5">--> </el-col>
<!-- <el-button--> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<!-- type="success"--> </el-row>
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['job:mydoJob:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['job:mydoJob:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['job:mydoJob:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
<!-- </el-row>-->
<el-table v-loading="loading" :data="mydoJobList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="mydoJobList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
@@ -234,45 +203,45 @@
<el-form-item label="任务号" prop="taskNo"> <el-form-item label="任务号" prop="taskNo">
<el-input v-model="form.taskNo" placeholder="请输入任务号" /> <el-input v-model="form.taskNo" placeholder="请输入任务号" />
</el-form-item> </el-form-item>
<el-form-item label="巷道ID" prop="roadwayId"> <!-- <el-form-item label="巷道ID" prop="roadwayId">-->
<el-input v-model="form.roadwayId" placeholder="请输入巷道ID" /> <!-- <el-input v-model="form.roadwayId" placeholder="请输入巷道ID" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="货位ID" prop="cargoSpaceId"> <!-- <el-form-item label="货位ID" prop="cargoSpaceId">-->
<el-input v-model="form.cargoSpaceId" placeholder="请输入货位ID" /> <!-- <el-input v-model="form.cargoSpaceId" placeholder="请输入货位ID" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="去向" prop="targetRoadwayId"> <!-- <el-form-item label="去向" prop="targetRoadwayId">-->
<el-input v-model="form.targetRoadwayId" placeholder="请输入去向" /> <!-- <el-input v-model="form.targetRoadwayId" placeholder="请输入去向" />-->
</el-form-item> <!-- </el-form-item>-->
<!-- <el-form-item label="目标货位ID" prop="targetCargoSpaceId"> <!-- <el-form-item label="目标货位ID" prop="targetCargoSpaceId">
<el-input v-model="form.targetCargoSpaceId" placeholder="请输入目标货位ID" /> <el-input v-model="form.targetCargoSpaceId" placeholder="请输入目标货位ID" />
</el-form-item>--> </el-form-item>-->
<el-form-item label="优先级" prop="priority"> <el-form-item label="状态" prop="status">
<el-input v-model="form.priority" placeholder="请输入优先级" /> <el-input v-model="form.priority" placeholder="请修改状态" />
</el-form-item> </el-form-item>
<el-form-item label="执行阶段" prop="executionPhase"> <el-form-item label="执行阶段" prop="executionPhase">
<el-input v-model="form.executionPhase" placeholder="请输入执行阶段" /> <el-input v-model="form.executionPhase" placeholder="请修改执行阶段" />
</el-form-item>
<el-form-item label="任务类型" prop="inOrOut">
<el-input v-model="form.inOrOut" placeholder="请输入任务类型" />
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-input v-model="form.startTime" placeholder="请输入开始时间" />
</el-form-item>
<el-form-item label="结束时间" prop="finishTime">
<el-input v-model="form.finishTime" placeholder="请输入结束时间" />
</el-form-item>
<el-form-item label="入口ID" prop="entranceId">
<el-input v-model="form.entranceId" placeholder="请输入入口ID" />
</el-form-item>
<el-form-item label="出口ID" prop="exitId">
<el-input v-model="form.exitId" placeholder="请输入出口ID" />
</el-form-item>
<el-form-item label="仓库ID" prop="warehouseId">
<el-input v-model="form.warehouseId" placeholder="请输入仓库ID" />
</el-form-item>
<el-form-item label="重分标志" prop="faultFlag">
<el-input v-model="form.faultFlag" placeholder="请输入重分标志" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="任务类型" prop="inOrOut">-->
<!-- <el-input v-model="form.inOrOut" placeholder="请输入任务类型" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="开始时间" prop="startTime">-->
<!-- <el-input v-model="form.startTime" placeholder="请输入开始时间" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="结束时间" prop="finishTime">-->
<!-- <el-input v-model="form.finishTime" placeholder="请输入结束时间" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="入口ID" prop="entranceId">-->
<!-- <el-input v-model="form.entranceId" placeholder="请输入入口ID" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="出口ID" prop="exitId">-->
<!-- <el-input v-model="form.exitId" placeholder="请输入出口ID" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="仓库ID" prop="warehouseId">-->
<!-- <el-input v-model="form.warehouseId" placeholder="请输入仓库ID" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="重分标志" prop="faultFlag">-->
<!-- <el-input v-model="form.faultFlag" placeholder="请输入重分标志" />-->
<!-- </el-form-item>-->
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -283,7 +252,7 @@
</template> </template>
<script> <script>
import {listMydoJob, getMydoJob, delMydoJob, addMydoJob, updateMydoJob, listMydoJobFinish} from "@/api/job/mydoJob" import {listMydoJob, getMydoJob, delMydoJob, addMydoJob, updateMydoJob, listMydoJobFinish,handFinish} from "@/api/job/mydoJob"
export default { export default {
name: "MydoJob", name: "MydoJob",
@@ -450,9 +419,25 @@ export default {
return delMydoJob(jobIds) return delMydoJob(jobIds)
}).then(() => { }).then(() => {
this.getList() this.getList()
this.$modal.msgSuccess("删除成功") this.$modal.msgSuccess("操作成功")
}).catch(() => {}) }).catch(() => {})
}, },
OuthandFinish() {
if (this.ids.length === 0) {
this.$modal.msgError("请选择需要手动完成的任务");
return;
}
console.log(this.ids.join(','))
this.$modal.confirm('是否确认手动完成选中的任务?').then(() => {
return handFinish(this.ids.join(','));
}).then(() => {
this.$modal.msgSuccess("手动完成成功");
this.getList();
}).catch(() => {});
},
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('job/mydoJob/export', { this.download('job/mydoJob/export', {

View File

@@ -159,16 +159,6 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['queue:ddj:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
@@ -178,7 +168,7 @@
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['queue:ddj:edit']" v-hasPermi="['queue:ddj:edit']"
>修改</el-button> >重新下发</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@@ -191,16 +181,6 @@
v-hasPermi="['queue:ddj:remove']" v-hasPermi="['queue:ddj:remove']"
>删除</el-button> >删除</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['queue:ddj:export']"
>导出</el-button>
</el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
@@ -259,70 +239,70 @@
@pagination="getList" @pagination="getList"
/> />
<!-- 添加或修改堆垛机执行队列对话框 --> <!-- 添加或修改堆垛机执行队列对话框-->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <!-- <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 ref="form" :model="form" :rules="rules" label-width="80px">-->
<el-form-item label="任务号" prop="rwh"> <!-- <el-form-item label="任务号" prop="rwh">-->
<el-input v-model="form.rwh" placeholder="请输入任务号" /> <!-- <el-input v-model="form.rwh" placeholder="请输入任务号" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="设备id" prop="devId"> <!-- <el-form-item label="设备id" prop="devId">-->
<el-input v-model="form.devId" placeholder="请输入设备id" /> <!-- <el-input v-model="form.devId" placeholder="请输入设备id" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="任务状态" prop="rwzt"> <!-- <el-form-item label="任务状态" prop="rwzt">-->
<el-input v-model="form.rwzt" placeholder="请输入任务状态" /> <!-- <el-input v-model="form.rwzt" placeholder="请输入任务状态" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="原排" prop="yph"> <!-- <el-form-item label="原排" prop="yph">-->
<el-input v-model="form.yph" placeholder="请输入原排" /> <!-- <el-input v-model="form.yph" placeholder="请输入原排" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="原列" prop="ylh"> <!-- <el-form-item label="原列" prop="ylh">-->
<el-input v-model="form.ylh" placeholder="请输入原列" /> <!-- <el-input v-model="form.ylh" placeholder="请输入原列" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="原层" prop="ych"> <!-- <el-form-item label="原层" prop="ych">-->
<el-input v-model="form.ych" placeholder="请输入原层" /> <!-- <el-input v-model="form.ych" placeholder="请输入原层" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="目标排" prop="mbph"> <!-- <el-form-item label="目标排" prop="mbph">-->
<el-input v-model="form.mbph" placeholder="请输入目标排" /> <!-- <el-input v-model="form.mbph" placeholder="请输入目标排" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="目标列" prop="mblh"> <!-- <el-form-item label="目标列" prop="mblh">-->
<el-input v-model="form.mblh" placeholder="请输入目标列" /> <!-- <el-input v-model="form.mblh" placeholder="请输入目标列" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="目标层" prop="mbch"> <!-- <el-form-item label="目标层" prop="mbch">-->
<el-input v-model="form.mbch" placeholder="请输入目标层" /> <!-- <el-input v-model="form.mbch" placeholder="请输入目标层" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="堆垛机下发" prop="ddjxf"> <!-- <el-form-item label="堆垛机下发" prop="ddjxf">-->
<el-input v-model="form.ddjxf" placeholder="请输入堆垛机下发" /> <!-- <el-input v-model="form.ddjxf" placeholder="请输入堆垛机下发" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="任务类型" prop="rwlx"> <!-- <el-form-item label="任务类型" prop="rwlx">-->
<el-input v-model="form.rwlx" placeholder="请输入任务类型" /> <!-- <el-input v-model="form.rwlx" placeholder="请输入任务类型" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="生成时间" prop="scsj"> <!-- <el-form-item label="生成时间" prop="scsj">-->
<el-input v-model="form.scsj" placeholder="请输入生成时间" /> <!-- <el-input v-model="form.scsj" placeholder="请输入生成时间" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="下发时间" prop="xfsj"> <!-- <el-form-item label="下发时间" prop="xfsj">-->
<el-input v-model="form.xfsj" placeholder="请输入下发时间" /> <!-- <el-input v-model="form.xfsj" placeholder="请输入下发时间" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="结束时间" prop="jssj"> <!-- <el-form-item label="结束时间" prop="jssj">-->
<el-input v-model="form.jssj" placeholder="请输入结束时间" /> <!-- <el-input v-model="form.jssj" placeholder="请输入结束时间" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="命令方式" prop="mlfs"> <!-- <el-form-item label="命令方式" prop="mlfs">-->
<el-input v-model="form.mlfs" placeholder="请输入命令方式" /> <!-- <el-input v-model="form.mlfs" placeholder="请输入命令方式" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="${comment}" prop="spare1"> <!-- <el-form-item label="${comment}" prop="spare1">-->
<el-input v-model="form.spare1" placeholder="请输入${comment}" /> <!-- <el-input v-model="form.spare1" placeholder="请输入${comment}" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="${comment}" prop="spare2"> <!-- <el-form-item label="${comment}" prop="spare2">-->
<el-input v-model="form.spare2" placeholder="请输入${comment}" /> <!-- <el-input v-model="form.spare2" placeholder="请输入${comment}" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="${comment}" prop="spare3"> <!-- <el-form-item label="${comment}" prop="spare3">-->
<el-input v-model="form.spare3" placeholder="请输入${comment}" /> <!-- <el-input v-model="form.spare3" placeholder="请输入${comment}" />-->
</el-form-item> <!-- </el-form-item>-->
</el-form> <!-- </el-form>-->
<div slot="footer" class="dialog-footer"> <!-- <div slot="footer" class="dialog-footer">-->
<el-button type="primary" @click="submitForm">确 定</el-button> <!-- <el-button type="primary" @click="submitForm">确 定</el-button>-->
<el-button @click="cancel">取 消</el-button> <!-- <el-button @click="cancel">取 消</el-button>-->
</div> <!-- </div>-->
</el-dialog> <!-- </el-dialog>-->
</div> </div>
</template> </template>
@@ -466,13 +446,27 @@ export default {
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset() this.$modal.confirm('是否确认重新下发?').then(() => {
const uuid = row.uuid || this.ids // 只处理第一个选中的
getDdj(uuid).then(response => { const uuids = row.uuid || this.ids
this.form = response.data console.log(uuids)
this.open = true
this.title = "修改堆垛机执行队列" if (uuids.length > 0) {
}) // 假设DdjDeviceExecutionQueue对象有uuid字段
const data = {
uuid: uuids[0]
// 可能需要的其他字段...
};
return updateDdj(data);
} else {
return Promise.reject('请选择要重新下发的记录');
}
}).then(() => {
this.$modal.msgSuccess("重新下发成功");
this.getList();
}).catch((error) => {
console.error(error);
});
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
@@ -480,7 +474,7 @@ export default {
if (valid) { if (valid) {
if (this.form.uuid != null) { if (this.form.uuid != null) {
updateDdj(this.form).then(response => { updateDdj(this.form).then(response => {
this.$modal.msgSuccess("修改成功") this.$modal.msgSuccess("下发成功")
this.open = false this.open = false
this.getList() this.getList()
}) })
@@ -504,6 +498,19 @@ export default {
this.$modal.msgSuccess("删除成功") this.$modal.msgSuccess("删除成功")
}).catch(() => {}) }).catch(() => {})
}, },
/**重新下发 */
// OuthandFinish() {
// if (this.ids.length === 0) {
// this.$modal.msgError("请选择需要重新下发的任务");
// return;
// }
// this.$modal.confirm('是否确认重新下发?').then(() => {
// return handFinish(this.ids.join(','));
// }).then(() => {
// this.$modal.msgSuccess("重新下发成功");
// this.getList();
// }).catch(() => {});
// },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('queue/ddj/export', { this.download('queue/ddj/export', {