任务推送解耦

This commit is contained in:
liuhanqing
2025-10-13 10:54:17 +08:00
parent 3581436d6c
commit b884a7164e
14 changed files with 1088 additions and 1065 deletions

View File

@@ -202,7 +202,9 @@
} else if (warehouseId === '13') { } else if (warehouseId === '13') {
this.entranceList = [ this.entranceList = [
{ id: 'G3006', name: 'G3006' }, { id: 'G3006', name: 'G3006' },
{ id: 'G1001', name: 'G1001' } { id: 'G2007', name: 'G2007' },
{ id: 'G4006', name: 'G4006' },
{ id: 'G5006', name: 'G5006' }
] ]
} }
}, },

View File

@@ -2,6 +2,7 @@ package com.ruoyi.api.controller;
import com.ruoyi.api.domain.AgvMoveParam; import com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest; import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest;
import com.ruoyi.api.domain.SsjTaskNoParam;
import com.ruoyi.api.domain.WmsJobRequest; import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.service.IToWcsService; import com.ruoyi.api.service.IToWcsService;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
@@ -20,23 +21,6 @@ public class ToWcsApiController {
@Autowired @Autowired
private IToWcsService toWcsService; private IToWcsService toWcsService;
/**
* 推送CTU出库任务
*//*
//@PostMapping("/pushOutMydoJob")
@Scheduled(fixedDelay=10000)
public void pushOutMydoJob() {
toWcsService.pushOutMydoJob();
}
*//**
* 推送CTU流利架空料箱入库任务
*//*
@Scheduled(fixedDelay=10000)
public void pushInMydoJob() {
toWcsService.pushInMydoJob();
}*/
/** /**
* 推送agv搬运作业 * 推送agv搬运作业
* @return * @return

View File

@@ -40,6 +40,17 @@ public class ToWmsApiController {
return ajaxResult; return ajaxResult;
} }
/**
* 入库任务请求
*/
@PostMapping("/requestEnterByTaskNo")
public AjaxResult requestEnterByTaskNo(@RequestBody RequestEnter requestEnter) {
AjaxResult ajaxResult = toWmsService.requestEnterByTaskNo(requestEnter);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "入库任务请求(任务号)",ajaxResult);
requestLogService.insertRequestLog(requestLog);
return ajaxResult;
}
/** /**
* 小车接收开始信号 * 小车接收开始信号

View File

@@ -0,0 +1,13 @@
package com.ruoyi.api.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SsjTaskNoParam {
private String taskNo;
private String deviceCode;
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.api.service;
import com.ruoyi.api.domain.AgvMoveParam; import com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest; import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest;
import com.ruoyi.api.domain.SsjTaskNoParam;
import com.ruoyi.api.domain.WmsJobRequest; import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.job.mydojob.domain.MydoJob; import com.ruoyi.job.mydojob.domain.MydoJob;

View File

@@ -49,4 +49,8 @@ public interface IToWmsService {
* @return * @return
*/ */
AjaxResult takeCompleted(Map<String, Object> map); AjaxResult takeCompleted(Map<String, Object> map);
/**
* 入库任务请求根据任务号
*/
AjaxResult requestEnterByTaskNo(RequestEnter requestEnter);
} }

View File

@@ -8,6 +8,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.AgvMoveParam; import com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest; import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest;
import com.ruoyi.api.domain.SsjTaskNoParam;
import com.ruoyi.api.domain.WmsJobRequest; import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.service.IToWcsService; import com.ruoyi.api.service.IToWcsService;
import com.ruoyi.api.service.IToWmsService; import com.ruoyi.api.service.IToWmsService;
@@ -30,6 +31,7 @@ import com.ruoyi.log.service.IRequestLogService;
import com.ruoyi.out.tagTask.domain.TagTask; import com.ruoyi.out.tagTask.domain.TagTask;
import com.ruoyi.out.tagTask.service.ITagTaskService; import com.ruoyi.out.tagTask.service.ITagTaskService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
@@ -46,14 +48,18 @@ public class ToWcsServiceImpl implements IToWcsService {
@Autowired @Autowired
private IAgvContainerTaskService agvContainerTaskService; private IAgvContainerTaskService agvContainerTaskService;
public static final String PUSH_OUT_MYDO_JOB = "http://localhost:8081/wcs2Wms/api/receiveOutMydoJob"; public static final String WCS_BASE_URL = "http://localhost:8081/wcs2Wms/api";
public static final String PUSH_IN_MYDO_JOB = "http://localhost:8081/wcs2Wms/api/receiveInMydoJob";
public static final String PUSH_AGV_MOVE_JOB = "http://localhost:8081/agv/api/receiveAgvMoveJob"; public static final String PUSH_OUT_MYDO_JOB = WCS_BASE_URL+"/receiveOutMydoJob";
public static final String OUT_MYDOJOB_MS = "http://localhost:8081/wcs2Wms/api/outMydojobMakesure"; public static final String PUSH_IN_MYDO_JOB = WCS_BASE_URL+"/receiveInMydoJob";
public static final String CANCEL_MYDOJOB = "http://localhost:8081/wcs2Wms/api/cancelMydoJob"; public static final String PUSH_AGV_MOVE_JOB = WCS_BASE_URL+"/receiveAgvMoveJob";
public static final String OUT_MYDOJOB_MS = WCS_BASE_URL+"/outMydojobMakesure";
public static final String CANCEL_MYDOJOB = WCS_BASE_URL+"/cancelMydoJob";
public static final String PUSH_SSJ_TASK_NO = WCS_BASE_URL+"/receiveSsjTaskNo";
@Override @Override
@Scheduled(cron = "0/5 * * * * ?")
public void pushOutMydoJob() { public void pushOutMydoJob() {
//查询所有未推送的料箱出库作业 //查询所有未推送的料箱出库作业
MydoJob mydoJobParam = new MydoJob(); MydoJob mydoJobParam = new MydoJob();
@@ -93,9 +99,10 @@ public class ToWcsServiceImpl implements IToWcsService {
} }
@Override @Override
@Scheduled(cron = "0/5 * * * * ?")
public void pushInMydoJob() { public void pushInMydoJob() {
MydoJob mydoJobParam = new MydoJob(); MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setInOrOut("1"); mydoJobParam.setInOut("1");
mydoJobParam.setStatus("1"); mydoJobParam.setStatus("1");
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam); List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobs)){ if (CollUtil.isNotEmpty(mydoJobs)){
@@ -107,17 +114,6 @@ public class ToWcsServiceImpl implements IToWcsService {
} }
} }
} }
mydoJobParam.setEntranceId("fluent");
mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobs)){
for (MydoJob mydoJob : mydoJobs) {
RequestLog requestLog = requestLogService.getRequestLog(PUSH_IN_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送出库任务");
if ("1".equals(requestLog.getIsSuccessful())){
mydoJob.setStatus("2");
mydoJobService.updateMydoJob(mydoJob);
}
}
}
} }
@Override @Override

View File

@@ -28,7 +28,6 @@ import com.ruoyi.out.outStockout.service.IOutStockoutService;
import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService; import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService;
import com.ruoyi.out.tagTask.domain.TagTask; import com.ruoyi.out.tagTask.domain.TagTask;
import com.ruoyi.out.tagTask.service.ITagTaskService; import com.ruoyi.out.tagTask.service.ITagTaskService;
import com.ruoyi.out.tagTask.thread.TagOutReadThread;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -66,7 +65,6 @@ public class ToWmsServiceImpl implements IToWmsService {
private IAgvContainerTaskService agvContainerTaskService; private IAgvContainerTaskService agvContainerTaskService;
@Override @Override
public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) { public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) {
MydoJob mydoJobParam = new MydoJob(); MydoJob mydoJobParam = new MydoJob();
@@ -269,10 +267,11 @@ public class ToWmsServiceImpl implements IToWmsService {
} }
} }
/** /**
* ctu取完箱子反馈 * ctu取完箱子反馈
* @param map{ *
* "portCode" * @param map{ "portCode"
* "wmsType" * "wmsType"
* } * }
* @return * @return
@@ -311,4 +310,22 @@ public class ToWmsServiceImpl implements IToWmsService {
} }
return AjaxResult.success(); return AjaxResult.success();
} }
@Override
public AjaxResult requestEnterByTaskNo(RequestEnter requestEnter) {
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setTaskNo(requestEnter.getTaskNo());
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (mydoJobs.isEmpty()) {
return AjaxResult.warn(MessageUtils.message("warn.message"));
}
MydoJob mydoJob = mydoJobs.get(0);
if ("1".equals(mydoJob.getExecutionPhase())) {
mydoJob.setExecutionPhase("2");
mydoJob.setEntranceId(requestEnter.getEntranceId());
mydoJob.setStatus("2");
mydoJobService.updateMydoJob(mydoJob);
}
return AjaxResult.success(new RequestEnterResponse(mydoJob.getCargoSpaceId(), mydoJob.getTrayCode(), mydoJob.getTaskNo()));
}
} }

View File

@@ -240,7 +240,7 @@ public class CheckStockinServiceImpl implements ICheckStockinService
HashMap<String, String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
map.put("v_stock_check_id", currentCheckStock.getStockCheckId()); map.put("v_stock_check_id", currentCheckStock.getStockCheckId());
checkStockinMapper.autoAllot(map); checkStockinMapper.autoAllot(map);
iToWcsService.pushOutMydoJob(); //iToWcsService.pushOutMydoJob();
if ("10".equals(map.get("v_result"))){ if ("10".equals(map.get("v_result"))){
return AjaxResult.success(); return AjaxResult.success();
}else { }else {

View File

@@ -516,7 +516,7 @@ public class MydoJobServiceImpl implements IMydoJobService {
map.put("v_stock_id", stockId); map.put("v_stock_id", stockId);
map.put("v_exit_id", exitId); map.put("v_exit_id", exitId);
mydoJobMapper.pointOut(map); mydoJobMapper.pointOut(map);
iToWcsService.pushOutMydoJob(); //iToWcsService.pushOutMydoJob();
String result = map.get("v_result").toString(); String result = map.get("v_result").toString();
if ("10".equals(result)) { if ("10".equals(result)) {
msg = "操作成功!"; msg = "操作成功!";

View File

@@ -181,7 +181,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService
if (detail.getAllotQuantity().compareTo(detail.getQuantity()) < 0){ if (detail.getAllotQuantity().compareTo(detail.getQuantity()) < 0){
map.put("v_stockout_detail_id", detail.getStockoutDetailId()); map.put("v_stockout_detail_id", detail.getStockoutDetailId());
outStockoutMapper.autoAllot(map); outStockoutMapper.autoAllot(map);
toWcsService.pushOutMydoJob(); //toWcsService.pushOutMydoJob();
if (!"10".equals(map.get("v_result"))){ if (!"10".equals(map.get("v_result"))){
stringBuilder.append(",").append(map.get("v_resultString")); stringBuilder.append(",").append(map.get("v_resultString"));
} }

View File

@@ -109,12 +109,12 @@ public class TagInReadThread implements Runnable {
trayCodeMsg.setWarehouseId("02"); trayCodeMsg.setWarehouseId("02");
trayCodeMsg.setEntranceId(basTag.getPickAdd()); trayCodeMsg.setEntranceId(basTag.getPickAdd());
pdaService.emptyBoxIn(trayCodeMsg); pdaService.emptyBoxIn(trayCodeMsg);
toWcsService.pushInMydoJob(); //toWcsService.pushInMydoJob();
} else { } else {
MydoJob mydoJob = mydoJobs.get(0); MydoJob mydoJob = mydoJobs.get(0);
mydoJob.setEntranceId(basTag.getPickAdd()); mydoJob.setEntranceId(basTag.getPickAdd());
mydoJobService.updateMydoJob(mydoJob); mydoJobService.updateMydoJob(mydoJob);
toWcsService.pushInMydoJob(); //toWcsService.pushInMydoJob();
} }
//ctu 取货完成,灭灯 //ctu 取货完成,灭灯
boolean b1 = ElectronicTagClient.sendDzbqOff(socket, Convert.toInt(basTag.getId())); boolean b1 = ElectronicTagClient.sendDzbqOff(socket, Convert.toInt(basTag.getId()));

View File

@@ -9,6 +9,7 @@ import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.api.domain.AgvMoveParam; import com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.domain.SsjTaskNoParam;
import com.ruoyi.api.service.IToWcsService; import com.ruoyi.api.service.IToWcsService;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
@@ -226,6 +227,7 @@ public class PdaServiceImp implements PdaService {
@Override @Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult addInJob(TrayCodeMsg trayCodeMsg) { public AjaxResult addInJob(TrayCodeMsg trayCodeMsg) {
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMsg.getTrayCode()); map.put("v_tray_code", trayCodeMsg.getTrayCode());
@@ -328,7 +330,7 @@ public class PdaServiceImp implements PdaService {
map.put("v_tray_code", trayCodeMakeSure.getTrayCode()); map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
map.put("v_type", "1"); map.put("v_type", "1");
pdaMapper.outMakeSure(map); pdaMapper.outMakeSure(map);
iToWcsService.pushInMydoJob(); //iToWcsService.pushInMydoJob();
String result = map.get("v_result").toString(); String result = map.get("v_result").toString();
if ("10".equals(result)) { if ("10".equals(result)) {
//通知wcs 出库确认 //通知wcs 出库确认
@@ -391,7 +393,7 @@ public class PdaServiceImp implements PdaService {
map.put("v_tray_code", trayCodeMakeSure.getTrayCode()); map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
map.put("v_type", "1"); map.put("v_type", "1");
pdaMapper.outMakeSure(map); pdaMapper.outMakeSure(map);
iToWcsService.pushInMydoJob(); //iToWcsService.pushInMydoJob();
String result = map.get("v_result").toString(); String result = map.get("v_result").toString();
if ("10".equals(result)) { if ("10".equals(result)) {
deleteTagTask(trayCodeMakeSure, basWarehouse, mydoJob); deleteTagTask(trayCodeMakeSure, basWarehouse, mydoJob);
@@ -475,7 +477,7 @@ public class PdaServiceImp implements PdaService {
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode()); map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
pdaMapper.checkMakeSure(map); pdaMapper.checkMakeSure(map);
iToWcsService.pushInMydoJob(); //iToWcsService.pushInMydoJob();
String result = map.get("v_result").toString(); String result = map.get("v_result").toString();
if ("10".equals(result)) { if ("10".equals(result)) {
return AjaxResult.success(map.get("v_resultmsg").toString()); return AjaxResult.success(map.get("v_resultmsg").toString());
@@ -597,7 +599,7 @@ public class PdaServiceImp implements PdaService {
map.put("v_tray_code", trayCodeMakeSure.getTrayCode()); map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
map.put("v_type", "1"); map.put("v_type", "1");
pdaMapper.outMakeSureException(map); pdaMapper.outMakeSureException(map);
iToWcsService.pushInMydoJob(); //iToWcsService.pushInMydoJob();
String result = map.get("v_result").toString(); String result = map.get("v_result").toString();
if ("10".equals(result)) { if ("10".equals(result)) {
//删除电子标签信息 //删除电子标签信息

File diff suppressed because it is too large Load Diff