任务推送解耦

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

View File

@@ -40,6 +40,17 @@ public class ToWmsApiController {
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.GenAgvSchedulingTaskRequest;
import com.ruoyi.api.domain.SsjTaskNoParam;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.job.mydojob.domain.MydoJob;

View File

@@ -49,4 +49,8 @@ public interface IToWmsService {
* @return
*/
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 com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest;
import com.ruoyi.api.domain.SsjTaskNoParam;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.service.IToWcsService;
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.service.ITagTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -46,14 +48,18 @@ public class ToWcsServiceImpl implements IToWcsService {
@Autowired
private IAgvContainerTaskService agvContainerTaskService;
public static final String PUSH_OUT_MYDO_JOB = "http://localhost:8081/wcs2Wms/api/receiveOutMydoJob";
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 OUT_MYDOJOB_MS = "http://localhost:8081/wcs2Wms/api/outMydojobMakesure";
public static final String CANCEL_MYDOJOB = "http://localhost:8081/wcs2Wms/api/cancelMydoJob";
public static final String WCS_BASE_URL = "http://localhost:8081/wcs2Wms/api";
public static final String PUSH_OUT_MYDO_JOB = WCS_BASE_URL+"/receiveOutMydoJob";
public static final String PUSH_IN_MYDO_JOB = WCS_BASE_URL+"/receiveInMydoJob";
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
@Scheduled(cron = "0/5 * * * * ?")
public void pushOutMydoJob() {
//查询所有未推送的料箱出库作业
MydoJob mydoJobParam = new MydoJob();
@@ -93,9 +99,10 @@ public class ToWcsServiceImpl implements IToWcsService {
}
@Override
@Scheduled(cron = "0/5 * * * * ?")
public void pushInMydoJob() {
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setInOrOut("1");
mydoJobParam.setInOut("1");
mydoJobParam.setStatus("1");
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
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

View File

@@ -28,7 +28,6 @@ import com.ruoyi.out.outStockout.service.IOutStockoutService;
import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService;
import com.ruoyi.out.tagTask.domain.TagTask;
import com.ruoyi.out.tagTask.service.ITagTaskService;
import com.ruoyi.out.tagTask.thread.TagOutReadThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -66,7 +65,6 @@ public class ToWmsServiceImpl implements IToWmsService {
private IAgvContainerTaskService agvContainerTaskService;
@Override
public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) {
MydoJob mydoJobParam = new MydoJob();
@@ -269,10 +267,11 @@ public class ToWmsServiceImpl implements IToWmsService {
}
}
/**
* ctu取完箱子反馈
* @param map{
* "portCode"
*
* @param map{ "portCode"
* "wmsType"
* }
* @return
@@ -311,4 +310,22 @@ public class ToWmsServiceImpl implements IToWmsService {
}
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<>();
map.put("v_stock_check_id", currentCheckStock.getStockCheckId());
checkStockinMapper.autoAllot(map);
iToWcsService.pushOutMydoJob();
//iToWcsService.pushOutMydoJob();
if ("10".equals(map.get("v_result"))){
return AjaxResult.success();
}else {

View File

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

View File

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

View File

@@ -109,12 +109,12 @@ public class TagInReadThread implements Runnable {
trayCodeMsg.setWarehouseId("02");
trayCodeMsg.setEntranceId(basTag.getPickAdd());
pdaService.emptyBoxIn(trayCodeMsg);
toWcsService.pushInMydoJob();
//toWcsService.pushInMydoJob();
} else {
MydoJob mydoJob = mydoJobs.get(0);
mydoJob.setEntranceId(basTag.getPickAdd());
mydoJobService.updateMydoJob(mydoJob);
toWcsService.pushInMydoJob();
//toWcsService.pushInMydoJob();
}
//ctu 取货完成,灭灯
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 com.alibaba.fastjson2.JSONObject;
import com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.domain.SsjTaskNoParam;
import com.ruoyi.api.service.IToWcsService;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
@@ -226,6 +227,7 @@ public class PdaServiceImp implements PdaService {
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult addInJob(TrayCodeMsg trayCodeMsg) {
HashMap<String, Object> map = new HashMap<>();
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_type", "1");
pdaMapper.outMakeSure(map);
iToWcsService.pushInMydoJob();
//iToWcsService.pushInMydoJob();
String result = map.get("v_result").toString();
if ("10".equals(result)) {
//通知wcs 出库确认
@@ -391,7 +393,7 @@ public class PdaServiceImp implements PdaService {
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
map.put("v_type", "1");
pdaMapper.outMakeSure(map);
iToWcsService.pushInMydoJob();
//iToWcsService.pushInMydoJob();
String result = map.get("v_result").toString();
if ("10".equals(result)) {
deleteTagTask(trayCodeMakeSure, basWarehouse, mydoJob);
@@ -475,7 +477,7 @@ public class PdaServiceImp implements PdaService {
HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
pdaMapper.checkMakeSure(map);
iToWcsService.pushInMydoJob();
//iToWcsService.pushInMydoJob();
String result = map.get("v_result").toString();
if ("10".equals(result)) {
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_type", "1");
pdaMapper.outMakeSureException(map);
iToWcsService.pushInMydoJob();
//iToWcsService.pushInMydoJob();
String result = map.get("v_result").toString();
if ("10".equals(result)) {
//删除电子标签信息

File diff suppressed because it is too large Load Diff