修改接口
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class JobParam {
|
||||
|
||||
/**
|
||||
* 作业号
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
));
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ public interface IMydoJobService
|
||||
|
||||
AjaxResult manuallyCompeleteTask(String[] jobIds);
|
||||
|
||||
AjaxResult cancelTask(String taskNo);
|
||||
AjaxResult cancelTask(String jobId);
|
||||
|
||||
AjaxResult cancelTask(String[] JobIds);
|
||||
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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("操作成功");
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user