diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java index a4ee9f0..c674f50 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java @@ -93,13 +93,24 @@ public class Wcs2WmsController { /** - * wms手动完成任务 + * wms手动完成任务 - 根据任务号 * @param jobParam * @return */ - @PostMapping("/manualCompeleteMydoJob") - public AjaxResult manualCompeleteMydoJob(@RequestBody JobParam jobParam) { - return apiService.manualCompeleteTask(jobParam.getTaskNo()); + @PostMapping("/manualCompeleteMydoJobByTaskNo") + public AjaxResult manualCompeleteMydoJobByTaskNo(@RequestBody JobParam jobParam) { + return apiService.manualCompeleteTaskByTaskNo(jobParam.getTaskNo()); + } + + + /** + * wms手动完成任务 - 根据作业号 + * @param jobParam + * @return + */ + @PostMapping("/manualCompeleteMydoJobByJobId") + public AjaxResult manualCompeleteMydoJobByTJobId(@RequestBody JobParam jobParam) { + return apiService.manualCompeleteTaskByTaskNo(jobParam.getTaskNo()); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java index 8851bf6..6c74cd0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java @@ -106,7 +106,9 @@ public interface IApiService AjaxResult requestWmsSpace(MydoJob mydoJob); - AjaxResult manualCompeleteTask(String taskNo); + AjaxResult manualCompeleteTaskByTaskNo(String taskNo); + + AjaxResult manualCompeleteTaskByJobId(String taskNo); AjaxResult cancelTask(String taskNo); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java index fb4ef17..8b0e83f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java @@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSON; @@ -25,7 +24,6 @@ import com.ruoyi.bas.cargospace.domain.BasCargoSpace; import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService; import com.ruoyi.bas.port.domain.WcsPort; import com.ruoyi.bas.port.service.IWcsPortService; -import com.ruoyi.common.GoodsType; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.job.domain.MydoJob; @@ -457,8 +455,6 @@ public class ApiServiceImpl implements IApiService { } - - /** * FT517 - 请求wms货位改在AGV放货到输送线后,在巷道口位置执行 * @param mydoJob @@ -504,9 +500,13 @@ public class ApiServiceImpl implements IApiService { } + public AjaxResult manualCompeleteTaskByTaskNo(String taskNo) { + return mydoJobService.manualCompeleteTaskByTaskNo(taskNo); + } - public AjaxResult manualCompeleteTask(String taskNo) { - return mydoJobService.manuallyCompeleteTask(taskNo); + + public AjaxResult manualCompeleteTaskByJobId(String jobId) { + return mydoJobService.manualCompeleteTaskByJobId(jobId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java index 638db30..bfcfcb2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java @@ -90,9 +90,11 @@ public interface IMydoJobService AjaxResult outhandFinish(String[] jobIds); - AjaxResult manuallyCompeleteTask(String taskNo); + AjaxResult manualCompeleteTaskByTaskNo(String taskNo); - AjaxResult manuallyCompeleteTask(String[] jobIds); + public AjaxResult manualCompeleteTaskByJobId(String jobId); + + AjaxResult manualCompeleteTask(String[] jobIds); AjaxResult cancelTask(String jobId); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java index 9931074..8a2b992 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java @@ -266,7 +266,7 @@ public class MydoJobServiceImpl implements IMydoJobService * @return */ @Override - public AjaxResult manuallyCompeleteTask(String taskNo) { + public AjaxResult manualCompeleteTaskByTaskNo(String taskNo) { //获取所有符合【任务号】的作业 MydoJob mydoJob = mydoJobMapper.selectMydoJobByTaskNo(taskNo); @@ -311,13 +311,14 @@ public class MydoJobServiceImpl implements IMydoJobService return AjaxResult.success("操作成功"); } + /** - * 手动完成指定【任务号】的作业(数组类型参数) + * 手动完成指定【作业号】的作业(数组类型参数) * @param jobIds * @return */ @Override - public AjaxResult manuallyCompeleteTask(String[] jobIds) { + public AjaxResult manualCompeleteTask(String[] jobIds) { for (String jobId : jobIds) { //获取所有符合【任务号】的作业 @@ -365,6 +366,52 @@ public class MydoJobServiceImpl implements IMydoJobService } + /** + * 手动完成指定【作业号】的作业 + * @param jobId + * @return + */ + @Override + public AjaxResult manualCompeleteTaskByJobId(String jobId) { + //获取所有符合【任务号】的作业 + MydoJob mydoJob = mydoJobMapper.selectMydoJobByJobId(jobId); + if (mydoJob == null){ + return AjaxResult.error("无该任务号的执行作业,请确认该任务是否已经处理和进行其他操作"); + } + //标记状态为【手动完成】插入历史表 + mydoJob.setStatus(TASK_STATUS_FINISH_MANUAL); + updateMydoJob(mydoJob); + mydoJobMapper.insertHistory(jobId); + try { + //处理堆垛机执行队列和历史记录 + DdjDeviceExecutionQueue queue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByTaskNo(mydoJob.getTaskNo()); + if (queue != null){ + DdjDeviceExecutionQueueFinish queueFinish = BeanUtil.copyProperties(queue, DdjDeviceExecutionQueueFinish.class); + ddjDeviceExecutionQueueServiceFinishService.insertDdjDeviceExecutionQueueFinish(queueFinish); + ddjDeviceExecutionQueueService.deleteDdjDeviceExecutionQueueByTaskNo(mydoJob.getTaskNo()); + } + } catch (Exception e) { + log.warn("【人工操作】手动完成操作失败:{}", e.getMessage()); + } + JobCallBack jobCallBack = new JobCallBack(); + jobCallBack.setType(mydoJob.getInOrOut()); + jobCallBack.setTaskTypeCode(WMS_TASK_TYPE_FINISH);// wms下发的任务类型 + jobCallBack.setMydoJobId(jobId); + jobCallBack.setStatus("0"); + jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo())); + jobCallBack.setCreateTime(new Date()); + jobCallBack.setTaskCode(mydoJob.getWmsTaskNo()); + jobCallBack.setRetry(0); + jobCallBack.setReqCode(UUID.randomUUID().toString()); + jobCallBackService.insertJobCallBack(jobCallBack); + mydoJobMapper.deleteMydoJobByJobId(jobId); + log.info("【任务手动完成】生成历史记录,插入回传列表,作业号:{},wcs任务号:{}", jobId, mydoJob.getTaskNo()); + + + return AjaxResult.success("操作成功"); + } + + /** * 手动作废指定【任务号】的作业 * @param jobId diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/TaskHandler.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/TaskHandler.java index 71baeba..d1db458 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/TaskHandler.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/TaskHandler.java @@ -1,7 +1,5 @@ package com.ruoyi.schedule.scheduleTask; -import HslCommunication.Profinet.Siemens.SiemensPLCS; -import HslCommunication.Profinet.Siemens.SiemensS7Net; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; @@ -9,20 +7,16 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.UUID; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjUtil; -import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; import com.ruoyi.api.domain.agv.ResponseBase; import com.ruoyi.api.domain.wcs2wms.JobParam; -import com.ruoyi.api.domain.wcs2wms.ResponseResult; import com.ruoyi.api.domain.wcs2wms.exception.TaskExceptionReceive; -import com.ruoyi.api.domain.wcs2wms.exception.TaskExceptionRequest; import com.ruoyi.api.domain.wcs2wms.stockin.StockinReceive; import com.ruoyi.api.service.IApiService; import com.ruoyi.api.service.IRequestLogService; import com.ruoyi.bas.cargospace.domain.BasCargoSpace; import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService; import com.ruoyi.common.ConvType; -import com.ruoyi.common.TaskStatusCode; import com.ruoyi.common.TaskType; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.device.ddj.domain.MsgDdj; @@ -40,12 +34,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; import java.util.HashMap; import java.util.List; import static com.ruoyi.common.TaskStatusCode.*; -import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsj; /** * 处理wcs执行作业的定时任务类 @@ -113,7 +105,7 @@ public class TaskHandler { ); if (!jobs.isEmpty()) { for (MydoJob job : jobs) { - mydoJobService.manuallyCompeleteTask(job.getTaskNo()); + mydoJobService.manualCompeleteTaskByTaskNo(job.getTaskNo()); } } }