修改请求入库、处理异常任务接口

This commit is contained in:
lsymicc
2026-04-01 15:49:06 +08:00
parent a438e20bb1
commit b0372a0fea
13 changed files with 239 additions and 51 deletions

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.ObjUtil;
import com.ruoyi.api.domain.wcs2wms.JobParam;
import com.ruoyi.api.domain.wcs2wms.exception.TaskExceptionRequest;
@@ -150,9 +151,16 @@ public class DdjThread implements Runnable {
mydoJob.setStatus("1");
mydoJobService.updateMydoJob(mydoJob);
//向wms请求重分接口
// todo-在此商定每种异常类型对应的值
AjaxResult ajaxResult = apiService.reAssign(new TaskExceptionRequest(mydoJob.getTaskNo(),TASK_EXCEPTION_STOCKIN_OCCUPIED));
//上报异常 - 向wms请求重分接口
TaskExceptionRequest taskExceptionRequest = new TaskExceptionRequest();
taskExceptionRequest.setTaskClass(mydoJob.getInOrOut());
taskExceptionRequest.setType(TASK_EXCEPTION_STOCKIN_OCCUPIED);
taskExceptionRequest.setTaskCode(String.valueOf(mydoJob));
taskExceptionRequest.setTaskTypeCode("");//todo 不知道填什么内容
taskExceptionRequest.setReqCode(UUID.randomUUID().toString());
taskExceptionRequest.setAdverseCauses("当前位置已有货物,盘点后重新分配货位");
AjaxResult ajaxResult = apiService.reAssign(taskExceptionRequest);
if (ajaxResult.isSuccess()){
//获取返回的新货位
MydoJob mydoJobReAssign = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class);
@@ -188,7 +196,15 @@ public class DdjThread implements Runnable {
//找到对应任务 调用api接口 取货无货,重新分配单据
if (ObjUtil.isNotNull(ddjDeviceExecutionQueue)) {
//向wms返回异常信息
AjaxResult ajaxResult = apiService.reMaterial(new TaskExceptionRequest(mydoJob.getTaskNo(),TASK_EXCEPTION_STOCKOUT_EMPTY));
TaskExceptionRequest taskExceptionRequest = new TaskExceptionRequest();
taskExceptionRequest.setTaskClass(mydoJob.getInOrOut());
taskExceptionRequest.setType(TASK_EXCEPTION_STOCKOUT_EMPTY);
taskExceptionRequest.setTaskCode(String.valueOf(mydoJob));
taskExceptionRequest.setTaskTypeCode("");//todo 不知道填什么内容
taskExceptionRequest.setReqCode(UUID.randomUUID().toString());
taskExceptionRequest.setAdverseCauses("取货位置空,盘点后作废该任务");
AjaxResult ajaxResult = apiService.reMaterial(taskExceptionRequest);
if (ajaxResult.isSuccess()) {
//作废作业
InvalidMydoJob(rwh, ddj.getId());

View File

@@ -2,8 +2,11 @@ package com.ruoyi.schedule.scheduleTask.ssj;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.ruoyi.api.domain.wcs2wms.ResponseResult;
import com.ruoyi.api.domain.wcs2wms.stockin.StockinReceive;
import com.ruoyi.api.service.IApiService;
import com.ruoyi.bas.cargospace.domain.BasCargoSpace;
import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService;
@@ -98,11 +101,14 @@ public class PortConvThread implements Runnable {
//---------------------------入口取输送机(叉车取放货位置)---------------------------
//输送机【非空闲】、【输送到位】、【条码不为空】、有【入库请求】
if (inSsjDevice.getKx() != 1 && inSsjDevice.getDw() == 1) {
AjaxResult ajaxResult;
//请求参数
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("trayCode", inSsjDevice.getTrayCode());//托盘条码
paramMap.put("taskTypeCode", inSsjDevice.getTrayCode());//任务类型编号
paramMap.put("reqCode", UUID.randomUUID().toString());//任请求码
paramMap.put("cntCode", inSsjDevice.getTrayCode());//容器编号
int height = inSsjDevice.getHeight();
int weight = inSsjDevice.getWeight();
paramMap.put("weight", weight);//重量
@@ -113,7 +119,7 @@ public class PortConvThread implements Runnable {
//外形检测异常
case ConvException.CHECK_SIZE_EXCEPTION:
paramMap.put("errorInfo", "外形检测异常-货物超高");
paramMap.put("adverseCauses", "外形检测异常-货物超高");
ajaxResult = apiService.createInMydoJobException(paramMap);
if (ajaxResult.isSuccess()) {
//向输送机下发退回
@@ -123,7 +129,7 @@ public class PortConvThread implements Runnable {
//超重检测
case ConvException.CHECK_OVERWEIGHT_EXCEPTION:
paramMap.put("errorInfo", "外形检测异常-货物超重");
paramMap.put("adverseCauses", "外形检测异常-货物超重");
ajaxResult = apiService.createInMydoJobException(paramMap);
if (ajaxResult.isSuccess()) {
//向输送机下发退回
@@ -134,11 +140,11 @@ public class PortConvThread implements Runnable {
//扫码异常
case ConvException.CHECK_BARCODE_EXCEPTION:
if (inSsjDevice.getTrayCode() == "") {
paramMap.put("errorInfo", "条码扫描失败:扫描结果为空");
paramMap.put("adverseCauses", "条码扫描失败:扫描结果为空");
ajaxResult = apiService.createInMydoJobException(paramMap);
}else{
//条码格式校验
paramMap.put("errorInfo", "条码扫描异常:格式错误");
paramMap.put("adverseCauses", "条码扫描异常:格式错误");
ajaxResult = apiService.createInMydoJobException(paramMap);
}
if (ajaxResult.isSuccess()) {
@@ -172,8 +178,13 @@ public class PortConvThread implements Runnable {
//请求生成wcs任务
ajaxResult = apiService.createInMydoJob(paramMap);
if (ajaxResult.isSuccess()) {
//获取wms下发的任务号和分配货位
MydoJob mydoJob = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class);
StockinReceive result = BeanUtil.toBean(ajaxResult.get("result"), StockinReceive.class);
MydoJob mydoJob = new MydoJob();
mydoJob.setTrayCode(result.getCntCode());
mydoJob.setCargoSpaceId(result.getSiteCode());
// mydoJob.setTaskNo(result.getTaskCode());//todo 确定是否用获取的任务号作为wcs的任务号
//todo 校验wms分配的货位(排列层)是否合法
if (mydoJob.getCargoSpaceId() == null) {