|
@@ -4,7 +4,9 @@ import java.lang.reflect.Method;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
+import com.ruoyi.ams.agv.ndc.domain.AmsTask;
|
|
|
import com.ruoyi.ams.agv.ndc.entity.CallbackResult;
|
|
|
+import com.ruoyi.ams.agv.ndc.service.IAmsTaskService;
|
|
|
import com.ruoyi.ams.box.service.IWmsBoxInfoService;
|
|
|
import com.ruoyi.ams.config.domain.FlowConfigEvent;
|
|
|
import com.ruoyi.ams.config.service.IFlowConfigEventService;
|
|
@@ -57,6 +59,8 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
private IInvLotLocIdService invLotLocIdService;
|
|
|
@Autowired
|
|
|
private IInvLotAttService iInvLotAttService;
|
|
|
+ @Autowired
|
|
|
+ private IAmsTaskService iAmsTaskService;
|
|
|
|
|
|
//任务状态翻译
|
|
|
private String codeConvert(int code) {
|
|
@@ -221,25 +225,32 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public void cancelTask(WcsTask wcsTask) {
|
|
|
- BaseLocationInfo bf = null;
|
|
|
- BaseLocationInfo bt = null;
|
|
|
- //释放库位占用状态
|
|
|
- if (!StringUtils.isEmpty(wcsTask.getLocationFrom())) {
|
|
|
- bf = baseLocationInfoService.selectBaseLocationInfoById(Long.parseLong(wcsTask.getLocationFrom()));
|
|
|
- baseLocationInfoService.updateLocationStockStatus(bf.getId(), "00");
|
|
|
- }
|
|
|
- if (!StringUtils.isEmpty(wcsTask.getLocationTo())) {
|
|
|
- bt = baseLocationInfoService.selectBaseLocationInfoById(Long.parseLong(wcsTask.getLocationTo()));
|
|
|
- baseLocationInfoService.updateLocationStockStatus(bt.getId(), "00");
|
|
|
- }
|
|
|
- //释放redis锁
|
|
|
- if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
- redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
+ public AjaxResult cancelTask(WcsTask wcsTask) {
|
|
|
+
|
|
|
+ String taskNo = wcsTask.getTaskNo();
|
|
|
+ // 任务状态: 队列等待 直接删除即可 其他状态 需要请求AMS删除
|
|
|
+ if (wcsTask.getState().equals(Constant.TASK_STS.TASK9.getValue())
|
|
|
+ || wcsTask.getState().equals(Constant.TASK_STS.TASK10.getValue())) {
|
|
|
+ callBack(wcsTask.getTaskNo(), 7, null);
|
|
|
+ } else {
|
|
|
+ //请求ams 取消任务
|
|
|
+ AmsTask amsTaskQuery = new AmsTask();
|
|
|
+ amsTaskQuery.setTaskNo(taskNo);
|
|
|
+ AmsTask amsTask = iAmsTaskService.selectAmsTaskByModel(amsTaskQuery);
|
|
|
+ if (amsTask == null) {
|
|
|
+ return AjaxResult.error("amsTask没有对应任务!");
|
|
|
+ }
|
|
|
+ if (null != amsTask.getEvent() && amsTask.getEvent() == 85) {
|
|
|
+ return AjaxResult.error("任务已取消!");
|
|
|
+ }
|
|
|
+ AmsTask amsTaskUpdate = new AmsTask();
|
|
|
+ amsTaskUpdate.setId(amsTask.getId());
|
|
|
+ amsTaskUpdate.setIsDelete(1);
|
|
|
+ amsTaskUpdate.setAciAccept(0);
|
|
|
+ // todo 这里修改竟然有问题,修改不了。
|
|
|
+ iAmsTaskService.updateAmsTask(amsTask);
|
|
|
}
|
|
|
- //修改任务状态
|
|
|
- wcsTask.setState(7L);
|
|
|
- wcsTaskMapper.updateWcsTask(wcsTask);
|
|
|
+ return AjaxResult.success("取消任务指令已下发!");
|
|
|
}
|
|
|
|
|
|
@Override
|