wms取消任务接口,程序便利性优化
This commit is contained in:
@@ -55,6 +55,17 @@ public class Wcs2WmsController {
|
|||||||
return apiService.cancelMydoJob(jobParam);
|
return apiService.cancelMydoJob(jobParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @@@ FT568 - wms取消任务
|
||||||
|
* @param wmsTaskCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/cancelJob/{wmsTaskCode}")
|
||||||
|
public AjaxResult cancelMydoJob(@PathVariable String wmsTaskCode)
|
||||||
|
{
|
||||||
|
return apiService.cancelMydoJob(wmsTaskCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询缓存点
|
* 查询缓存点
|
||||||
|
|||||||
@@ -111,6 +111,8 @@ public interface IApiService
|
|||||||
*/
|
*/
|
||||||
AjaxResult cancelMydoJob(JobParam jobParam);
|
AjaxResult cancelMydoJob(JobParam jobParam);
|
||||||
|
|
||||||
|
AjaxResult cancelMydoJob(String wmsTaskCode);
|
||||||
|
|
||||||
AjaxResult selectWcsPort(WcsPort wcsPort);
|
AjaxResult selectWcsPort(WcsPort wcsPort);
|
||||||
|
|
||||||
AjaxResult updateWcsPort(WcsPort wcsPort);
|
AjaxResult updateWcsPort(WcsPort wcsPort);
|
||||||
|
|||||||
@@ -252,6 +252,28 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wms删除任务(单选)
|
||||||
|
*
|
||||||
|
* @param wmsTaskCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AjaxResult cancelMydoJob(String wmsTaskCode) {
|
||||||
|
|
||||||
|
if (wmsTaskCode == null || wmsTaskCode.equals("")) {
|
||||||
|
return AjaxResult.error("查不到执行wms任务号的作业");
|
||||||
|
}
|
||||||
|
|
||||||
|
MydoJob mydoJob = mydoJobService.selectMydoJobByWmsTaskNo(wmsTaskCode);
|
||||||
|
if (mydoJob == null) {
|
||||||
|
return AjaxResult.error("查不到该wms任务号正在执行中的作业,可能是已经取消或完成,请检查wcs任务状态");
|
||||||
|
}
|
||||||
|
|
||||||
|
return AjaxResult.success(mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -575,10 +597,10 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
return AjaxResult.error("【警告】生成作业失败,已存在的作业号:{}" + mydoJob.getJobId() + "(仅提示)");
|
return AjaxResult.error("【警告】生成作业失败,已存在的作业号:{}" + mydoJob.getJobId() + "(仅提示)");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mydoJobService.selectMydoJobByWmsTaskNo(mydoJob.getWmsTaskNo()) != null){
|
// if (mydoJobService.selectMydoJobByWmsTaskNo(mydoJob.getWmsTaskNo()) != null){
|
||||||
log.info("【警告】生成作业失败,已存在的作业号:{}", mydoJob.getJobId() + "(此条可忽略)");
|
// log.info("【警告】生成作业失败,已存在的作业号:{}", mydoJob.getJobId() + "(此条可忽略)");
|
||||||
return AjaxResult.error("【警告】生成作业失败,已存在的wms任务号:{}" + mydoJob.getJobId() + "(仅提示)");
|
// return AjaxResult.error("【警告】生成作业失败,已存在的wms任务号:{}" + mydoJob.getJobId() + "(仅提示)");
|
||||||
}
|
// }
|
||||||
|
|
||||||
int i = mydoJobService.insertMydoJob(mydoJob);
|
int i = mydoJobService.insertMydoJob(mydoJob);
|
||||||
// boolean success = mydoJobService.saveOrUpdate(mydoJob);
|
// boolean success = mydoJobService.saveOrUpdate(mydoJob);
|
||||||
|
|||||||
@@ -30,12 +30,12 @@ public class TaskStatusCode {
|
|||||||
/**
|
/**
|
||||||
* 任务状态-手动完成
|
* 任务状态-手动完成
|
||||||
*/
|
*/
|
||||||
public static final String TASK_STATUS_FINISH_MANUAL = "5";
|
public static final String TASK_STATUS_FINISH_MANUAL = "4";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务状态-作废
|
* 任务状态-作废
|
||||||
*/
|
*/
|
||||||
public static final String TASK_STATUS_INVALID = "6";
|
public static final String TASK_STATUS_INVALID = "5";
|
||||||
|
|
||||||
|
|
||||||
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 【执行阶段】 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 【执行阶段】 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import com.ruoyi.job.domain.MydoJob;
|
|||||||
import com.ruoyi.job.service.IMydoJobService;
|
import com.ruoyi.job.service.IMydoJobService;
|
||||||
|
|
||||||
import static com.ruoyi.common.TaskStatusCode.TASK_STATUS_FINISH_MANUAL;
|
import static com.ruoyi.common.TaskStatusCode.TASK_STATUS_FINISH_MANUAL;
|
||||||
|
import static com.ruoyi.common.TaskStatusCode.TASK_STATUS_INVALID;
|
||||||
import static com.ruoyi.common.WmsTaskTypeCode.*;
|
import static com.ruoyi.common.WmsTaskTypeCode.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -106,14 +107,18 @@ public class MydoJobServiceImpl implements IMydoJobService
|
|||||||
public int deleteMydoJobByJobIds(String[] jobIds)
|
public int deleteMydoJobByJobIds(String[] jobIds)
|
||||||
{
|
{
|
||||||
for (String jobId : jobIds) {
|
for (String jobId : jobIds) {
|
||||||
|
|
||||||
|
if (selectMydoJobByJobId(jobId) == null) continue;
|
||||||
|
MydoJob mydoJob = selectMydoJobByJobId(jobId);
|
||||||
|
selectMydoJobByJobId(jobId).setStatus(TASK_STATUS_INVALID);
|
||||||
|
updateMydoJob(mydoJob);
|
||||||
mydoJobMapper.insertHistory(jobId);
|
mydoJobMapper.insertHistory(jobId);
|
||||||
|
|
||||||
//当执行任务的【删除】操作时(特殊场景需要手动处理异常导致不需要入库时,此时不需要向回传异常)
|
//当执行任务的【删除】操作时(特殊场景需要手动处理异常导致不需要入库时,此时不需要向回传异常)
|
||||||
// 此处顺便处理对应任务号生成的堆垛机执行队列,省去sql直接表中删记录的操作
|
// 此处顺便处理对应任务号生成的堆垛机执行队列,省去sql直接表中删记录的操作
|
||||||
if (selectMydoJobByJobId(jobId) != null){
|
String taskNo = selectMydoJobByJobId(jobId).getTaskNo();
|
||||||
String taskNo = selectMydoJobByJobId(jobId).getTaskNo();
|
if (ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByTaskNo(taskNo) != null) {
|
||||||
if (ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByTaskNo(taskNo) != null) {
|
ddjDeviceExecutionQueueService.deleteDdjDeviceExecutionQueueByTaskNo(taskNo);
|
||||||
ddjDeviceExecutionQueueService.deleteDdjDeviceExecutionQueueByTaskNo(taskNo);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -187,6 +192,7 @@ public class MydoJobServiceImpl implements IMydoJobService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MydoJob selectMydoJobByExitList(List<String> exitList ) {
|
public MydoJob selectMydoJobByExitList(List<String> exitList ) {
|
||||||
return mydoJobMapper.selectMydoJobByExitList(exitList);
|
return mydoJobMapper.selectMydoJobByExitList(exitList);
|
||||||
|
|||||||
@@ -174,62 +174,66 @@ public class RoadConvThread implements Runnable {
|
|||||||
private void sendStackerOut(DeviceSsj roadSsjDevice){
|
private void sendStackerOut(DeviceSsj roadSsjDevice){
|
||||||
//---------------------------出库任务---------------------------
|
//---------------------------出库任务---------------------------
|
||||||
//检查巷道口输送机是否空闲
|
//检查巷道口输送机是否空闲
|
||||||
if(roadSsjDevice.getKx()==1 && roadSsjDevice.getTaskNo() == 0){
|
if(roadSsjDevice.getKx()!=1 || roadSsjDevice.getTaskNo() != 0) return;
|
||||||
|
|
||||||
//检查是否有入口是【TD1001-出库到位输送机】的入库任务 - 此处查询作用:如果已经有入库任务,则只可生成出库作业,不可生成堆垛机队列
|
//检查是否有入口是【TD1001-出库到位输送机】的入库任务 - 此处查询作用:如果已经有入库任务,则只可生成出库作业,不可生成堆垛机队列
|
||||||
String exitId = CONV_STOCKOUT;
|
String exitId = CONV_STOCKOUT;
|
||||||
|
List<MydoJob> jobs = mydoJobService.selectMydoJobList(
|
||||||
|
new MydoJob().builder().inOrOut(STOCKIN).build()
|
||||||
|
);
|
||||||
|
|
||||||
List<MydoJob> jobs = mydoJobService.selectMydoJobList(
|
if(jobs.size() != 0) {
|
||||||
new MydoJob().builder().inOrOut(STOCKIN).build()
|
log.info("【提示】当前出口"+ exitId +"有正在执行的任务,无法执行堆垛机出库,请等待执行的入库任务结束");
|
||||||
);
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(jobs.size() == 0){
|
//检查是否有出库任务
|
||||||
|
MydoJob mydoJob = mydoJobService.selectMydoJobByExitId(exitId);
|
||||||
|
if (ObjUtil.isNotNull(mydoJob)) {
|
||||||
|
|
||||||
//检查是否有出库任务
|
//如果有出库任务 - 检查货位编码是否合法
|
||||||
MydoJob mydoJob = mydoJobService.selectMydoJobByExitId(exitId);
|
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||||
if (ObjUtil.isNotNull(mydoJob)) {
|
if (ObjUtil.isNull(basCargoSpace)) {
|
||||||
|
log.error("【任务异常】货位不存在 cargoSpaceId{}", mydoJob.getCargoSpaceId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//如果有出库任务 - 检查货位编码是否合法
|
//生成队列
|
||||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_2, Convert.toInt(mydoJob.getRoadwayId()));
|
||||||
if (ObjUtil.isNull(basCargoSpace)) {
|
List<Integer> pclList = roadwayMap.get(roadSsjDevice.getDeviceCode());
|
||||||
log.error("【任务异常】货位不存在 cargoSpaceId{}", mydoJob.getCargoSpaceId());
|
if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)) {
|
||||||
} else {
|
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();
|
||||||
//生成队列
|
ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID());
|
||||||
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_2, Convert.toInt(mydoJob.getRoadwayId()));
|
ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo()));
|
||||||
List<Integer> pclList = roadwayMap.get(roadSsjDevice.getDeviceCode());
|
ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId());
|
||||||
if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)) {
|
ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId()));
|
||||||
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();
|
ddjDeviceExecutionQueue.setRwzt(0);
|
||||||
ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID());
|
ddjDeviceExecutionQueue.setYph(Convert.toInt(basCargoSpace.getThePlatoon()));
|
||||||
ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo()));
|
ddjDeviceExecutionQueue.setYlh(Convert.toInt(basCargoSpace.getTheColumn()));
|
||||||
ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId());
|
ddjDeviceExecutionQueue.setYch(Convert.toInt(basCargoSpace.getTheFloor()));
|
||||||
ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId()));
|
ddjDeviceExecutionQueue.setMbph(pclList.get(0));
|
||||||
ddjDeviceExecutionQueue.setRwzt(0);
|
ddjDeviceExecutionQueue.setMblh(pclList.get(1));
|
||||||
ddjDeviceExecutionQueue.setYph(Convert.toInt(basCargoSpace.getThePlatoon()));
|
ddjDeviceExecutionQueue.setMbch(pclList.get(2));
|
||||||
ddjDeviceExecutionQueue.setYlh(Convert.toInt(basCargoSpace.getTheColumn()));
|
ddjDeviceExecutionQueue.setDdjxf("0");
|
||||||
ddjDeviceExecutionQueue.setYch(Convert.toInt(basCargoSpace.getTheFloor()));
|
ddjDeviceExecutionQueue.setMlfs(5);
|
||||||
ddjDeviceExecutionQueue.setMbph(pclList.get(0));
|
ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize());//货物高度
|
||||||
ddjDeviceExecutionQueue.setMblh(pclList.get(1));
|
ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
ddjDeviceExecutionQueue.setMbch(pclList.get(2));
|
ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_2);
|
||||||
ddjDeviceExecutionQueue.setDdjxf("0");
|
ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
|
||||||
ddjDeviceExecutionQueue.setMlfs(5);
|
//修改作业状态
|
||||||
ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize());//货物高度
|
mydoJob.setStatus(TASK_STATUS_RUNNING);
|
||||||
ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date()));
|
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
||||||
ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_2);
|
mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
|
mydoJobService.updateMydoJob(mydoJob);
|
||||||
|
|
||||||
//修改作业状态
|
|
||||||
mydoJob.setStatus(TASK_STATUS_RUNNING);
|
|
||||||
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
|
||||||
mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
|
||||||
mydoJobService.updateMydoJob(mydoJob);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
log.info("【警告】当前出口"+ exitId +"有正在执行的任务,无法出库,请等待执行的任务结束");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
FROM mydo_job_wcs_finish
|
FROM mydo_job_wcs_finish
|
||||||
)
|
)
|
||||||
AS combined_jobs
|
AS combined_jobs
|
||||||
ORDER BY create_time DESC; -- 按创建时间倒序(最新在前)
|
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectMydoJobUnionList" parameterType="MydoJob" resultMap="MydoJobResult">
|
<select id="selectMydoJobUnionList" parameterType="MydoJob" resultMap="MydoJobResult">
|
||||||
@@ -84,7 +83,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</if>
|
</if>
|
||||||
<if test="wmsTaskNo != null and wmsTaskNo != ''">and wms_task_no = #{wmsTaskNo}</if>
|
<if test="wmsTaskNo != null and wmsTaskNo != ''">and wms_task_no = #{wmsTaskNo}</if>
|
||||||
</where>
|
</where>
|
||||||
ORDER BY create_time DESC,finish_time DESC;
|
ORDER BY create_time DESC,finish_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectMydoJobList" parameterType="MydoJob" resultMap="MydoJobResult">
|
<select id="selectMydoJobList" parameterType="MydoJob" resultMap="MydoJobResult">
|
||||||
|
|||||||
Reference in New Issue
Block a user