调整推送生成出库任务接口

This commit is contained in:
lsymicc
2026-04-03 17:29:32 +08:00
parent 3be86abb94
commit 38d27e3cf2
10 changed files with 83 additions and 362 deletions

View File

@@ -2,6 +2,7 @@ package com.ruoyi.api.controller;
import com.ruoyi.api.domain.wcs2wms.JobParam;
import com.ruoyi.api.domain.wcs2wms.ReceiveJob;
import com.ruoyi.api.domain.wcs2wms.stockout.StockoutReceive;
import com.ruoyi.api.service.IApiService;
import com.ruoyi.bas.port.domain.WcsPort;
import com.ruoyi.bas.port.service.IWcsPortService;
@@ -12,7 +13,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/wcs2Wms/api")
@RequestMapping("/wcs2wms/api")
public class Wcs2WmsController {
@Autowired
@@ -23,12 +24,12 @@ public class Wcs2WmsController {
/**
* 接收wms出库任务
*
* @param receiveOutJob
* @param stockoutReceive
* @return
*/
@PostMapping("/receiveOutMydoJob")
public AjaxResult receiveOutMydoJob(@RequestBody ReceiveJob receiveOutJob) {
return apiService.receiveOutMydoJob(receiveOutJob);
public AjaxResult receiveOutMydoJob(@RequestBody StockoutReceive stockoutReceive) {
return apiService.receiveOutMydoJob(stockoutReceive);
}
/**

View File

@@ -0,0 +1,38 @@
package com.ruoyi.api.domain.wcs2wms.stockout;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* wms推送出库请求参数
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StockoutReceive {
/**
* 请求时传入的 reqCode,原样回传
*/
private String reqCode;
/**
* wms下发的任务号
*/
private String taskCode;
/**
* 出库库位编号
*/
private String siteCode;
/**
* 任务类型编号
*/
private String taskTypeCode;
}

View File

@@ -12,6 +12,7 @@ import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskRespons
import com.ruoyi.api.domain.wcs2wms.JobParam;
import com.ruoyi.api.domain.wcs2wms.ReceiveJob;
import com.ruoyi.api.domain.wcs2wms.exception.TaskExceptionRequest;
import com.ruoyi.api.domain.wcs2wms.stockout.StockoutReceive;
import com.ruoyi.bas.port.domain.WcsPort;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.exception.job.TaskException;
@@ -141,16 +142,16 @@ public interface IApiService
/**
* 入库请求生成作业
*/
public AjaxResult createInMydoJob(Map<String, Object> param);
AjaxResult createInMydoJob(Map<String, Object> param);
/**
* 入库请求作业异常反馈(扫码失败、外形、称重等异常)
*/
public AjaxResult createInMydoJobException(Map<String, Object> param);
AjaxResult createInMydoJobException(Map<String, Object> param);
public AjaxResult selectMydoJobByNoTrayCode(Map<String, Object> param);
AjaxResult selectMydoJobByNoTrayCode(Map<String, Object> param);
AjaxResult receiveOutMydoJob(ReceiveJob receiveOutJob);
AjaxResult receiveOutMydoJob(StockoutReceive stockoutReceive);
AjaxResult receiveInMydoJob(ReceiveJob receiveInJob);

View File

@@ -19,6 +19,7 @@ import com.ruoyi.api.domain.agv.genAgvSchedulingTask.PositionCodeData;
import com.ruoyi.api.domain.wcs2wms.JobParam;
import com.ruoyi.api.domain.wcs2wms.ReceiveJob;
import com.ruoyi.api.domain.wcs2wms.exception.TaskExceptionRequest;
import com.ruoyi.api.domain.wcs2wms.stockout.StockoutReceive;
import com.ruoyi.api.service.IApiService;
import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService;
import com.ruoyi.bas.port.domain.WcsPort;
@@ -450,37 +451,42 @@ public class ApiServiceImpl implements IApiService {
@Override
public AjaxResult receiveOutMydoJob(ReceiveJob receiveOutJob) {
public AjaxResult receiveOutMydoJob(StockoutReceive stockoutReceive) {
//检查任务是否存在,避免重复生成
MydoJob job = new MydoJob();
job.setTaskNo(receiveOutJob.getTaskNo());
job.setWmsTaskNo(stockoutReceive.getTaskCode());
List<MydoJob> tasks = mydoJobService.selectMydoJobList(job);
//校验:任务已存在
if (tasks.size() != 0) {
log.info("【请求异常】wms下发出库任务失败,该任务已存在,单号:{},任务号:{}", receiveOutJob.getJobId(), receiveOutJob.getTaskNo());
return AjaxResult.error("【请求异常】wms下发出库任务失败,该任务已存在,单号:" + receiveOutJob.getJobId() + ",任务号:" + receiveOutJob.getTaskNo());
log.info("【请求异常】wms下发出库任务失败,该任务已存在,任务号:{}", stockoutReceive.getTaskCode());
return AjaxResult.error("【请求异常】wms下发出库任务失败,任务号:" + stockoutReceive.getTaskCode());
}
//生成出库作业
MydoJob mydoJob = new MydoJob();
mydoJob.setJobId(receiveOutJob.getJobId());
mydoJob.setTaskNo(receiveOutJob.getTaskNo());
mydoJob.setCargoSpaceId(receiveOutJob.getCargoSpaceId());
mydoJob.setJobId(mydoJobService.getJobId("CK"));
mydoJob.setTaskNo(mydoJobService.getTaskNo("3"));
mydoJob.setWmsTaskNo(stockoutReceive.getTaskCode());
//todo 可能需要解析货位 wms参数【siteCode】
mydoJob.setCargoSpaceId(stockoutReceive.getSiteCode());
mydoJob.setExitId("G1004");
mydoJob.setInOrOut(receiveOutJob.getInOrOut());
//todo 是否需要解析wms推送的任务类型?
// mydoJob.setInOrOut(stockoutReceive.getTaskTypeCode());
mydoJob.setInOrOut("2");
mydoJob.setStatus("1");
mydoJob.setPriority(Long.valueOf(10));
mydoJob.setTrayCode(receiveOutJob.getTrayCode());
mydoJob.setRoadwayId(receiveOutJob.getRoadwayId());
//todo 可能需要查本地库存信息获取条码?
// mydoJob.setTrayCode(receiveOutJob.getTrayCode());
mydoJob.setCreateTime(DateUtils.getNowDate());
mydoJob.setExecutionPhase(TASK_EP_CREATE);
// mydoJob.setTraySize(receiveOutJob.getDepartmentId());
int i = mydoJobService.insertMydoJob(mydoJob);
if (i > 0) {
// boolean success = mydoJobService.saveOrUpdate(mydoJob);
if (i != 0) {
return AjaxResult.success(
"【请求成功】wms下发出库作业,作业单号:" + receiveOutJob.getJobId() + ",任务号:" + receiveOutJob.getTaskNo() + ",出库货位:" + receiveOutJob.getCargoSpaceId());
"【请求成功】wms下发出库作业,下发任务号:" + stockoutReceive.getTaskCode() + ",出库货位:" + stockoutReceive.getSiteCode());
}else{
return AjaxResult.error();
}