修改接口

This commit is contained in:
lsymicc
2026-07-17 15:41:48 +08:00
parent 415543a723
commit f944d7fef5
14 changed files with 254 additions and 116 deletions

View File

@@ -47,6 +47,18 @@ public class Wcs2WmsController {
}
/**
* 接收移库任务
*
* @param receiveJob
* @return
*/
@PostMapping("/receiveMoveMydoJob")
public AjaxResult receiveMoveMydoJob(@RequestBody ReceiveJob receiveJob) {
return apiService.receiveMoveMydoJob(receiveJob);
}
/**
* 接收盘点任务
*
@@ -66,7 +78,17 @@ public class Wcs2WmsController {
*/
@PostMapping("/cancelMydoJob")
public AjaxResult cancelMydoJob(@RequestBody JobParam jobParam) {
return apiService.cancelTask(jobParam.getTaskNo());
return apiService.cancelTask(jobParam.getJobId());
}
/**
* wms取消任务
* @param jobId
* @return
*/
@GetMapping("/cancelMydoJob")
public AjaxResult cancelMydoJob(@RequestParam("jobId") String jobId) {
return apiService.cancelTask(jobId);
}

View File

@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
public class JobParam {
/**
* 作业号
*/

View File

@@ -24,6 +24,9 @@ public class ReceiveJob {
*/
private String cargoSpaceId;
/** 货位(移库使用) */
private String targetCargoSpaceId;
/**
* 入口
*/
@@ -49,10 +52,6 @@ public class ReceiveJob {
*/
private String roadwayId;
/**
*
*/
private String departmentId;
}

View File

@@ -19,25 +19,30 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class StockinReceive {
/**
* 系统生成的任务编号(唯一)/wms下发的任务号
*/
private String taskCode;
/**
* 请求时传入的 reqCode,原样回传
*/
private String reqCode;
/**
* 容器编号(containerCode)
* 系统生成的任务编号(唯一)/wms下发的任务号
*/
private String cntCode;
private String taskNo;
/**
* 终点库位编号
* 系统生成的任务编号(唯一)/wms下发的作业号
*/
private String siteCode;
private String jobId;
/**
* 容器编号
*/
private String trayCode;
/**
* 分配货位编号
*/
private String cargoSpaceId;
}

View File

@@ -97,6 +97,8 @@ public interface IApiService
AjaxResult receiveInMydoJob(ReceiveJob receiveJob);
AjaxResult receiveMoveMydoJob(ReceiveJob receiveJob);
AjaxResult receiveInventoryMydoJob(ReceiveJob receiveInventoryJob);
AjaxResult selectMydoJobByTrayCodeAndEntranceId(HashMap<String, Object> paramMap);

View File

@@ -19,16 +19,12 @@ 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.ResponseResult;
import com.ruoyi.api.domain.wcs2wms.exception.TaskExceptionReceive;
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.domain.BasCargoSpace;
import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService;
import com.ruoyi.bas.port.domain.WcsPort;
import com.ruoyi.bas.port.service.IWcsPortService;
import com.ruoyi.common.GoodsType;
import com.ruoyi.common.TaskType;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.job.domain.MydoJob;
@@ -80,7 +76,7 @@ public class ApiServiceImpl implements IApiService {
*/
@Override
public RequestLog finishMydoJob(Map<String, Object> param) {
return requestLogService.getRequestLog(WMS_TASK_FINISH, "任务完成上报", JSONUtil.toJsonStr(param));
return requestLogService.getRequestLog(WMS_JOB_FINISH_URL, "任务完成上报", JSONUtil.toJsonStr(param));
}
@@ -91,7 +87,7 @@ public class ApiServiceImpl implements IApiService {
*/
@Override
public AjaxResult reAssign(JobParam jobParam) {
RequestLog requestLog = requestLogService.getRequestLog(RE_ASSIGN_URL, "重新分配货位", JSONUtil.toJsonStr(jobParam));
RequestLog requestLog = requestLogService.getRequestLog(WMS_RE_ASSIGN_URL, "重新分配货位", JSONUtil.toJsonStr(jobParam));
if ("1".equals(requestLog.getIsSuccessful())){
InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class);
MydoJob wmsMydoJob = BeanUtil.toBean(bean.getData(), MydoJob.class);
@@ -111,7 +107,7 @@ public class ApiServiceImpl implements IApiService {
*/
@Override
public AjaxResult reMaterial(JobParam jobParam) {
RequestLog requestLog = requestLogService.getRequestLog(RE_MATERIAL_URL, "重新分配物料", JSONUtil.toJsonStr(jobParam));
RequestLog requestLog = requestLogService.getRequestLog(WMS_RE_MATERIAL_URL, "重新分配物料", JSONUtil.toJsonStr(jobParam));
if ("1".equals(requestLog.getIsSuccessful())){
return AjaxResult.success();
}
@@ -142,7 +138,7 @@ public class ApiServiceImpl implements IApiService {
*/
@Override
public AjaxResult createMydoJobForStockin(Map<String, Object> param) {
RequestLog requestLog = requestLogService.getRequestLogForResponseResult(WMS_STOCKIN_MYDOJOB, "入库请求生成作业", JSONUtil.toJsonStr(param));
RequestLog requestLog = requestLogService.getRequestLog(WMS_STOCKIN_MYDOJOB, "入库请求生成作业", JSONUtil.toJsonStr(param));
if ("1".equals(requestLog.getIsSuccessful())) {
ResponseResult bean = JSONUtil.toBean(requestLog.getResponseBody(), ResponseResult.class);
return AjaxResult.success(bean.getResult());
@@ -232,7 +228,7 @@ public class ApiServiceImpl implements IApiService {
// mydoJob.setTaskNo(stockoutReceive.getTaskNo());
//// mydoJob.setWmsTaskNo(stockoutReceive.getTaskCode());
// mydoJob.setCargoSpaceId(stockoutReceive.getCargoSpaceId());
// mydoJob.setInOrOut(stockoutReceive.getInOrOut());
mydoJob.setInOrOut(stockoutReceive.getInOrOut());
//
mydoJob.setTraySize(GoodsType.TYPE_DEFAULT);//默认
mydoJob.setStatus(TASK_STATUS_CREATED);
@@ -299,7 +295,7 @@ public class ApiServiceImpl implements IApiService {
MydoJob mydoJob = new MydoJob();
mydoJob = BeanUtil.copyProperties(receiveInJob, MydoJob.class);
// mydoJob.setJobId(mydoJobService.getJobId("RK"));
// mydoJob.setTaskNo(mydoJobService.getTaskNo("3"));
mydoJob.setTaskNo(mydoJobService.getTaskNo("3"));
// mydoJob.setWmsTaskNo(receiveInJob.getJobId());
// mydoJob.setCargoSpaceId(receiveInJob.getTrayCode());
// mydoJob.setTrayCode(receiveOutJob.getTrayCode());
@@ -307,11 +303,9 @@ public class ApiServiceImpl implements IApiService {
basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(receiveInJob.getCargoSpaceId()).getRoadwayId()
);
// mydoJob.setTraySize(GoodsType.TYPE_DEFAULT);
mydoJob.setInOrOut("1");
// mydoJob.setInOrOut("1");
mydoJob.setStatus(TASK_STATUS_CREATED);
mydoJob.setPriority(Long.valueOf(10));
//todo 可能需要查本地库存信息获取条码?
mydoJob.setCreateTime(DateUtils.getNowDate());
mydoJob.setExecutionPhase(TASK_EP_CREATED);
// mydoJob.setTraySize(receiveOutJob.getDepartmentId());
@@ -334,6 +328,74 @@ public class ApiServiceImpl implements IApiService {
}
@Override
public AjaxResult receiveMoveMydoJob(ReceiveJob receiveInJob) {
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(receiveInJob), "推送移库作业");
requestLog.setResponseBody(JSONUtil.toJsonStr(AjaxResult.success()));
requestLog.setResponseStatus("0");
requestLog.setIsSuccessful("1");
requestLogService.insertRequestLog(requestLog);
// -------------------------检查推送的任务参数-------------------------
log.info(
"【wms推送移库】作业号:{},源货位:{},目标货位:{},托盘号:{}",receiveInJob.getJobId(),receiveInJob.getCargoSpaceId(), receiveInJob.getTargetCargoSpaceId(), receiveInJob.getTrayCode()
);
// 1.wms推送的作业号是否重复
MydoJob job = new MydoJob().builder().jobId(receiveInJob.getJobId()).build();
List<MydoJob> tasks = mydoJobService.selectMydoJobList(job);
if (tasks.size() != 0) {
log.info("【请求错误】wms下发移库任务失败,该任务已存在,wms作业号:{},源货位:{},目标货位:{}", receiveInJob.getJobId(), receiveInJob.getCargoSpaceId(), receiveInJob.getTargetCargoSpaceId());
return AjaxResult.error("【请求错误】wms下发移库任务失败,该任务已存在,推送作业号:{}" + receiveInJob.getJobId() + ",目标货位:" + receiveInJob.getCargoSpaceId());
}
// 2.wms推送的目标货位是否已经有任务
job = new MydoJob().builder().cargoSpaceId(receiveInJob.getCargoSpaceId()).build();
tasks = mydoJobService.selectMydoJobList(job);
if (tasks.size() != 0) {
log.info("【请求错误】wms下发移库任务失败,已经存在该货位任务,推送作业号:{},源货位:{},目标货位:{}", receiveInJob.getJobId(), receiveInJob.getCargoSpaceId(), receiveInJob.getTargetCargoSpaceId());
return AjaxResult.error("【请求错误】wms下发移库任务失败,已经存在目标货位任务,目标货位:{}" + receiveInJob.getJobId() + ",目标货位:" + receiveInJob.getCargoSpaceId());
}
//生成入库作业
MydoJob mydoJob = new MydoJob();
mydoJob = BeanUtil.copyProperties(receiveInJob, MydoJob.class);
// mydoJob.setJobId(mydoJobService.getJobId("RK"));
mydoJob.setTaskNo(mydoJobService.getTaskNo("3"));
// mydoJob.setWmsTaskNo(receiveInJob.getJobId());
// mydoJob.setCargoSpaceId(receiveInJob.getTrayCode());
// mydoJob.setTrayCode(receiveOutJob.getTrayCode());
mydoJob.setRoadwayId(
basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(receiveInJob.getCargoSpaceId()).getRoadwayId()
);
// mydoJob.setTraySize(GoodsType.TYPE_DEFAULT);
// mydoJob.setInOrOut("1");
mydoJob.setStatus(TASK_STATUS_CREATED);
mydoJob.setPriority(Long.valueOf(10));
mydoJob.setCreateTime(DateUtils.getNowDate());
mydoJob.setExecutionPhase(TASK_EP_CREATED);
// mydoJob.setTraySize(receiveOutJob.getDepartmentId());
if (mydoJobService.selectMydoJobByJobId(mydoJob.getJobId()) != null){
log.info("【警告】生成作业失败,已存在的作业号:{}", mydoJob.getJobId() + "(仅提示)");
return AjaxResult.error("【警告】生成作业失败,已存在的作业号:{}" + mydoJob.getJobId() + "(仅提示)");
}
int i = mydoJobService.insertMydoJob(mydoJob);
// boolean success = mydoJobService.saveOrUpdate(mydoJob);
if (i != 0) {
requestLog.setResponseStatus("1");
requestLogService.updateRequestLog(requestLog);
log.info("【推送移库】wms下发移库任务成功,wms作业号:{},源货位:{},目标货位:{}", receiveInJob.getJobId(), receiveInJob.getCargoSpaceId(), receiveInJob.getTargetCargoSpaceId());
return AjaxResult.success(
"【推送移库】wms下发移库作业,作业号:" + receiveInJob.getJobId() + ",目标货位:" + receiveInJob.getCargoSpaceId());
}else{
return AjaxResult.error();
}
}
@Override
public AjaxResult receiveInventoryMydoJob(ReceiveJob receiveInventoryJob) {
@@ -405,7 +467,7 @@ public class ApiServiceImpl implements IApiService {
@Override
public AjaxResult selectMydoJobByTrayCodeAndEntranceId(HashMap<String, Object> paramMap) {
RequestLog requestLog = requestLogService.getRequestLog(REQUEST_ENTER_URL, "请求获取入库作业", JSONUtil.toJsonStr(paramMap));
RequestLog requestLog = requestLogService.getRequestLog(WMS_REQUEST_ENTER_URL, "请求获取入库作业", JSONUtil.toJsonStr(paramMap));
if ("1".equals(requestLog.getIsSuccessful())) {
InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class);
return AjaxResult.success(bean.getData());
@@ -424,7 +486,7 @@ public class ApiServiceImpl implements IApiService {
*/
@Override
public AjaxResult requestWmsSpace(MydoJob mydoJob) {
RequestLog requestLog = requestLogService.getRequestLog(REQUEST_IN_SPACE_URL, "入库请求分货位", JSONUtil.toJsonStr(mydoJob));
RequestLog requestLog = requestLogService.getRequestLog(WMS_REQUEST_IN_SPACE_URL, "入库请求分货位", JSONUtil.toJsonStr(mydoJob));
if ("1".equals(requestLog.getIsSuccessful())) {
InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class);
return AjaxResult.success(bean.getData());
@@ -436,7 +498,7 @@ public class ApiServiceImpl implements IApiService {
@Override
public AjaxResult selectMydoJobByNoTrayCode(Map<String, Object> param) {
RequestLog requestLog = requestLogService.getRequestLog(REQUEST_MYDO_JOB_URL, "入库请求补码作业", JSONUtil.toJsonStr(param));
RequestLog requestLog = requestLogService.getRequestLog(WMS_REQUEST_MYDO_JOB_URL, "入库请求补码作业", JSONUtil.toJsonStr(param));
if ("1".equals(requestLog.getIsSuccessful())) {
InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class);
return AjaxResult.success(bean.getData());
@@ -468,8 +530,8 @@ public class ApiServiceImpl implements IApiService {
}
public AjaxResult cancelTask(String taskNo) {
return mydoJobService.cancelTask(taskNo);
public AjaxResult cancelTask(String jobId) {
return mydoJobService.cancelTask(jobId);
}

View File

@@ -145,14 +145,13 @@ public class RequestLogServiceImpl implements IRequestLogService
requestLog.setRequestUrl(url);
Date responseTime =new Date();
try {
// String resStr = HttpUtil.post(url, param);
String resStr = HttpRequest.post(url)
.body(param)
.header("X-Service-Secret", HEADER_TOKEN)
.execute()
.body();
// String resStr = HttpRequest.post(url)
// .body(param)
// .header("X-Service-Secret", HEADER_TOKEN)
// .execute()
// .body();
String resStr = HttpUtil.post(url, param);
requestLog.setResponseBody(resStr);
InterfaceReceive bean = JSONUtil.toBean(resStr, InterfaceReceive.class);

View File

@@ -3,8 +3,8 @@ package com.ruoyi.common;
public class Constant {
public static final String LOCAL_URL = "http://127.0.0.1:8084";
public static final String WMS_BASE_URL = "http://10.88.10.69:8290/service";
public static final String LOCAL_URL = "http://127.0.0.1:8084/api2wms";
public static final String WMS_BASE_URL = "http://127.0.0.1:8083/api/external";
public static final String RCS_BASE_URL = "http://192.168.58.101:8182/rcms/services/rest/hikRpcService/";
public static final String HEADER_TOKEN = "fed3d1511a5a474b9e1f9c56246cb1ec";
@@ -16,16 +16,25 @@ public class Constant {
public static final String CONTINUE_TASK_URL = RCS_BASE_URL+"continueTask";
public static final String DELETE_BIN_URL = RCS_BASE_URL+"bindCtnrAndBin";
public static final String JOB_FINISH_URL = WMS_BASE_URL+"jobFinish";
public static final String CREATE_IN_MYDO_JOB_URL = WMS_BASE_URL+"requestEnterByTrayCode";
public static final String REQUEST_MYDO_JOB_URL = WMS_BASE_URL+"requestByNoTrayCode";
public static final String RE_ASSIGN_URL = WMS_BASE_URL+"reAssign";
public static final String RE_MATERIAL_URL = WMS_BASE_URL+"reMaterial";
public static final String REQUEST_ENTER_URL = WMS_BASE_URL+"requestEnterByTrayCodeAndEntranceId";
public static final String REQUEST_IN_SPACE_URL = WMS_BASE_URL+"requestInSpace";
//#endregion
/**
* 任务完成回传
*/
public static final String WMS_JOB_FINISH_URL = LOCAL_URL+"jobFinish";
/**
* 请求创建入库任务
*/
public static final String WMS_CREATE_IN_MYDO_JOB_URL = LOCAL_URL+"requestMydoJobByTrayCode";
public static final String WMS_REQUEST_MYDO_JOB_URL = LOCAL_URL+"requestMydoJobByNoTrayCode";
public static final String WMS_RE_ASSIGN_URL = LOCAL_URL+"reAssign";
public static final String WMS_RE_MATERIAL_URL = LOCAL_URL+"reMaterial";
public static final String WMS_REQUEST_ENTER_URL = LOCAL_URL+"requestMydoJobByTrayCodeAndEntranceId";
public static final String WMS_REQUEST_IN_SPACE_URL = LOCAL_URL+"requestInSpace";
/**
* 本地测试wms服务端url
*/
@@ -36,16 +45,16 @@ public class Constant {
/**
* 向wms请求入库url
*/
public static final String WMS_STOCKIN_MYDOJOB = WMS_BASE_URL + "/api/external/taskIssue";
public static final String WMS_STOCKIN_MYDOJOB = LOCAL_URL + "/api/external/taskIssue";
/**
* 出入库回传url
*/
public static final String WMS_TASK_FINISH = WMS_BASE_URL + "/api/external/taskIssue";
public static final String WMS_TASK_FINISH = LOCAL_URL + "/api/external/taskIssue";
/**
* 异常信息回传url
*/
public static final String WMS_TASK_EXCEPTION = WMS_BASE_URL + "/api/external/taskIssue";
public static final String WMS_TASK_EXCEPTION = LOCAL_URL + "/api/external/taskIssue";
}

View File

@@ -1,5 +1,10 @@
package com.ruoyi.common;
import java.util.HashMap;
import java.util.Map;
import static java.util.Map.entry;
public class ConvType {
/**
@@ -31,4 +36,26 @@ public class ConvType {
* 3#巷道入库输送机(入口源位置)
*/
public static final String ROADWAY3_ENTRANCE = "L1002";
//-----------------------------
/**
* 输送机对应巷道
*/
public static final Map<String,Object> CONV_ROAD = new HashMap<>(Map.ofEntries(
entry("L1001", 1),
entry("L1002", 1),
entry("L1003", 1),
entry("L1004", 2),
entry("L1005", 2),
entry("L1006", 2),
entry("L1007", 2),
entry("L1008", 3),
entry("L1009", 3),
entry("L1010", 3)
));
}

View File

@@ -17,31 +17,31 @@ public class TaskType {
public static final int TASKTYPE_STOCKIN = 1;
public static final String TASKTYPE_STOCKIN_STR = "1";
/**
* 拣选回流
*/
public static final int TASKTYPE_STOCKIN_RETURN = 3;
public static final String TASKTYPE_STOCKIN_RETURN_STR = "3";
/**
* 常规出库
*/
public static final int TASKTYPE_STOCKOUT = 2;
public static final String TASKTYPE_STOCKOUT_STR = "2";
public static final int TASKTYPE_STOCKOUT = 20;
public static final String TASKTYPE_STOCKOUT_STR = "20";
/**
* 拣选出库
*/
public static final int TASKTYPE_STOCKOUT_PICK = 21;
public static final String TASKTYPE_STOCKOUT_PICK_STR = "21";
/**
* 盘点出库
*/
public static final int TASKTYPE_INVENTORY = 3;
public static final String TASKTYPE_INVENTORY_STR = "3";
public static final int TASKTYPE_INVENTORY = 26;
public static final String TASKTYPE_INVENTORY_STR = "26";
/**
* 1-二楼入出
*/
public static final int DDJ_RWLX_1 = 1;
/**
* 2-一楼出库
*/
public static final int DDJ_RWLX_2 = 2;
/**
* 3-一楼入库
*/
public static final int DDJ_RWLX_3 = 3;
}

View File

@@ -94,7 +94,7 @@ public interface IMydoJobService
AjaxResult manuallyCompeleteTask(String[] jobIds);
AjaxResult cancelTask(String taskNo);
AjaxResult cancelTask(String jobId);
AjaxResult cancelTask(String[] JobIds);

View File

@@ -104,19 +104,22 @@ public class JobCallBackServiceImpl implements IJobCallBackService
@Override
public void jobCallBack() {
//获取【刚刚创建】和【请求失败】的回传记录
//获取【刚刚创建<1>】和【请求失败<99>】的回传记录
List<JobCallBack> jobCallBackList = jobCallBackMapper.selectJobCallBackListNoSuccess();
for (JobCallBack jobCallBack : jobCallBackList) {
//设定请求参数
Map<String, Object> param = new HashMap<>();
param.put("taskTypeCode", jobCallBack.getTaskTypeCode());
param.put("reqCode", UUID.randomUUID().toString().replace("-", ""));
param.put("taskCode", jobCallBack.getTaskCode());
param.put("jobId", jobCallBack.getMydoJobId());
param.put("taskNo", jobCallBack.getTaskNo());
param.put("wmsType", jobCallBack.getType());
//请求回传
// RequestLog requestLog = apiService.finishMydoJob(param);
RequestLog requestLog = apiService.finishMydoJobForResponseResult(param);//@@@ FT568 返回自定义的wms响应格式
RequestLog requestLog = apiService.finishMydoJob(param);
// RequestLog requestLog = apiService.finishMydoJobForResponseResult(param);//@@@ FT568 返回自定义的wms响应格式
if ("1".equals(requestLog.getIsSuccessful())){
jobCallBack.setStatus("1");
}else{

View File

@@ -365,14 +365,14 @@ public class MydoJobServiceImpl implements IMydoJobService
/**
* 手动作废指定【任务号】的作业
* @param taskNo
* @param jobId
* @return
*/
@Override
public AjaxResult cancelTask(String taskNo) {
public AjaxResult cancelTask(String jobId) {
//获取所有符合【任务号】的作业
MydoJob mydoJob = mydoJobMapper.selectMydoJobByTaskNo(taskNo);
MydoJob mydoJob = mydoJobMapper.selectMydoJobByJobId(jobId);
if (mydoJob == null){
return AjaxResult.error("无该任务号的执行作业,请确认该任务是否已经处理和进行其他操作");
@@ -394,21 +394,21 @@ public class MydoJobServiceImpl implements IMydoJobService
log.warn("【人工操作】手动作废操作失败:{}", e.getMessage());
}
JobCallBack jobCallBack = new JobCallBack();
jobCallBack.setType(mydoJob.getInOrOut());
jobCallBack.setTaskTypeCode(WMS_TASK_TYPE_FINISH);// wms下发的任务类型
jobCallBack.setMydoJobId(mydoJob.getJobId());
jobCallBack.setStatus("0");
jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo()));
jobCallBack.setCreateTime(new Date());
jobCallBack.setTaskCode(mydoJob.getWmsTaskNo());
jobCallBack.setRetry(0);
jobCallBack.setReqCode(UUID.randomUUID().toString());
jobCallBackService.insertJobCallBack(jobCallBack);
// JobCallBack jobCallBack = new JobCallBack();
// jobCallBack.setType(mydoJob.getInOrOut());
// jobCallBack.setTaskTypeCode(WMS_TASK_TYPE_FINISH);// wms下发的任务类型
// jobCallBack.setMydoJobId(mydoJob.getJobId());
// jobCallBack.setStatus("0");
// jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo()));
// jobCallBack.setCreateTime(new Date());
// jobCallBack.setTaskCode(mydoJob.getWmsTaskNo());
// jobCallBack.setRetry(0);
// jobCallBack.setReqCode(UUID.randomUUID().toString());
// jobCallBackService.insertJobCallBack(jobCallBack);
mydoJobMapper.deleteMydoJobByTaskNo(taskNo);
mydoJobMapper.deleteMydoJobByJobId(jobId);
log.info("【任务手动取消】生成历史记录,插入回传列表,作业号:{},wcs任务号:{}", mydoJob.getJobId(), taskNo);
log.info("【任务手动取消】生成历史记录,插入回传列表,作业号:{}", jobId);
return AjaxResult.success("操作成功");
}

View File

@@ -12,6 +12,7 @@ import com.ruoyi.api.service.IApiService;
import com.ruoyi.api.service.IRequestLogService;
import com.ruoyi.bas.cargospace.domain.BasCargoSpace;
import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService;
import com.ruoyi.common.ConvType;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.device.ssj.domain.DeviceSsj;
@@ -128,7 +129,7 @@ public class PortConvThread implements Runnable {
updateMydoJob(deviceSsj);
//请求wms获取入库任务
//requestMydoJob(deviceSsj);
requestMydoJob(deviceSsj);
break;
//1#巷道出库口(单向)
@@ -172,13 +173,22 @@ public class PortConvThread implements Runnable {
boolean flag = false;
//---------------------------入口取输送机(叉车取放货位置)---------------------------
//输送机【条码】空
if (inSsjDevice.getTrayCode() == "" || inSsjDevice.getTrayCode() == null) return flag;
if (inSsjDevice.getTrayCode() == "" || inSsjDevice.getTrayCode() == null)
return flag;
//不存在扫描【条码】的作业
if (mydoJobService.selectMydoJobList(
new MydoJob().builder().trayCode(inSsjDevice.getTrayCode()).build()
).size() == 1)
return flag;
//【入库请求】,表示输送到位和空闲
if (inSsjDevice.getRkqq() != 1) return flag;
if (inSsjDevice.getRkqq() != 1)
return flag;
//【输送高度】
if (inSsjDevice.getHeight() == 0) return flag;
if (inSsjDevice.getHeight() == 0)
return flag;
return true;
}
@@ -190,7 +200,8 @@ public class PortConvThread implements Runnable {
*/
private void requestMydoJob(DeviceSsj inSsjDevice){
//请求成功已经生成该任务则不继续执行
//如果已经生成wcs任务则不继续执行后续请求操作
//包括请求成功生成作业和wms推送成功的情况
int count = mydoJobService.selectInOrOutMydoJobList(
new MydoJob().builder().trayCode(inSsjDevice.getTrayCode()).build()
).size();
@@ -199,20 +210,20 @@ public class PortConvThread implements Runnable {
return;
}
String errorMessage = "";
AjaxResult ajaxResult;
//初始化请求wms参数
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("taskTypeCode", WMS_TASK_TYPE_STOCKIN);//wms自定义的任务类型编号
paramMap.put("reqCode", UUID.randomUUID().toString());//请求码
paramMap.put("cntCode", inSsjDevice.getTrayCode().trim());//容器编号
paramMap.put("trayCode", inSsjDevice.getTrayCode().trim());//容器编号
// paramMap.put("entranceId", inSsjDevice.getDeviceCode());//入口输送机编号
paramMap.put("roadwayId", ConvType.CONV_ROAD.get(inSsjDevice.getDeviceCode()));//入口输送机编号对应巷道
int height = inSsjDevice.getHeight();
// String weight = inSsjDevice.getWeight();//不需要直读重量或从plc读值,wms不需要该参数
// paramMap.put("weight", getWeightByMoxa(MOXA_IP, MOXA_PORT, SO_TIMEOUT_MS));//重量
paramMap.put("altimetry", height);//高度
paramMap.put("adverseCauses", errorMessage);
// paramMap.put("trayType", height);//高度
// paramMap.put("remark", errorMessage);
//-----------------警告校验:条码已有库存-----------------
@@ -231,9 +242,9 @@ public class PortConvThread implements Runnable {
StockinReceive result = BeanUtil.toBean(ajaxResult.get("data"), StockinReceive.class);
//校验:wms分配的货位(排列层)是否合法
if (ObjUtil.isNull(basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(result.getSiteCode()))) {
if (ObjUtil.isNull(basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(result.getCargoSpaceId()))) {
errorMessage = "wms下发货位错误,任务生成失败!";
paramMap.put("adverseCauses", errorMessage);
paramMap.put("remark", errorMessage);
apiService.createInMydoJobException(paramMap);
log.info("【响应参数异常】分配货位:null,无法生成作业,托盘条码:{}",inSsjDevice.getTrayCode());
writeToSsj(inSsjDevice.getPlcDbWriteAddress(), "99", 2, 1);
@@ -242,17 +253,16 @@ public class PortConvThread implements Runnable {
//初始化要生成的任务
MydoJob mydoJob = new MydoJob().builder()
// mydoJob.setTaskNo(result.getTaskCode());//如果需要用wms下发的任务号作为wcs的任务号使用
.trayCode(result.getCntCode())
.cargoSpaceId(result.getSiteCode())
.wmsTaskNo(result.getTaskCode())
.jobId(mydoJobService.getJobId("RK"))
.taskNo(mydoJobService.getTaskNo("1"))
.jobId(result.getJobId())
.taskNo(mydoJobService.getTaskNo("2"))//如果需要用wms下发的任务号作为wcs的任务号使用
.status(TASK_STATUS_CREATED)
.trayCode(result.getTrayCode())
.cargoSpaceId(result.getCargoSpaceId())
// .wmsTaskNo(mydoJobService.getTaskNo("1"))
.traySize(String.valueOf(inSsjDevice.getHeight()))
.status(TASK_STATUS_CREATED)
.inOrOut("1")
.roadwayId(basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(result.getSiteCode()).getRoadwayId())//获取货位表货位对应的巷道号
.entranceId("G1004")
.roadwayId(basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(result.getCargoSpaceId()).getRoadwayId())//获取货位表货位对应的巷道号
.entranceId(inSsjDevice.getDeviceCode())
.executionPhase(TASK_EP_CREATED)
.faultFlag("0")
.priority(10L)
@@ -290,8 +300,6 @@ public class PortConvThread implements Runnable {
MydoJob mydoJobStockin = new MydoJob().builder()
.trayCode(inSsjDevice.getTrayCode())
.status(TASK_STATUS_CREATED)
.executionPhase(TASK_EP_CREATED)
.entranceId(inSsjDevice.getDeviceCode())
.build();
if(!mydoJobService.selectMydoJobList(mydoJobStockin).isEmpty()){
@@ -305,6 +313,7 @@ public class PortConvThread implements Runnable {
//写入成功则更新执行阶段
mydoJobStockin.setStatus(TASK_STATUS_RUNNING);
mydoJobStockin.setExecutionPhase(TASK_EP_SSJ);
mydoJobStockin.setEntranceId(inSsjDevice.getDeviceCode());
mydoJobStockin.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
mydoJobService.updateMydoJob(mydoJobStockin);
log.info("【更新状态】G1009入口输送机下发成功,任务号:{},入库执行中", mydoJobStockin.getTaskNo());