调整wms接口增加的字段

This commit is contained in:
lsymicc
2026-04-03 08:57:32 +08:00
parent b0372a0fea
commit 3be86abb94
15 changed files with 257 additions and 185 deletions

View File

@@ -104,7 +104,7 @@ public class JobCallBackController extends BaseController
return toAjax(jobCallBackService.deleteJobCallBackByIds(ids));
}
@Scheduled(fixedDelay=1500)
@Scheduled(fixedDelay=2000)
public void jobCallBack() {
jobCallBackService.jobCallBack();
}

View File

@@ -1,5 +1,9 @@
package com.ruoyi.job.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
@@ -11,6 +15,10 @@ import com.ruoyi.common.core.domain.BaseEntity;
* @author ruoyi
* @date 2025-09-25
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class JobCallBack extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -34,110 +42,17 @@ public class JobCallBack extends BaseEntity
@Excel(name = "状态")
private String status;
/** 备用字段1 */
@Excel(name = "备用字段1")
private String spare1;
/** wms任务类型编号 */
@Excel(name = "wms任务类型编号")
private String taskTypeCode;
/** 备用字段2 */
@Excel(name = "备用字段2")
private String spare2;
/** 请求唯一编号,原样回传到响应中,便于追踪 */
@Excel(name = "请求唯一编号")
private String reqCode;
/** 备用字段3 */
@Excel(name = "备用字段3")
private String spare3;
/** wms任务编号 */
@Excel(name = "wms任务编号")
private String taskCode;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setType(String type)
{
this.type = type;
}
public String getType()
{
return type;
}
public void setTaskNo(Long taskNo)
{
this.taskNo = taskNo;
}
public Long getTaskNo()
{
return taskNo;
}
public void setMydojobId(String mydojobId)
{
this.mydojobId = mydojobId;
}
public String getMydojobId()
{
return mydojobId;
}
public void setStatus(String status)
{
this.status = status;
}
public String getStatus()
{
return status;
}
public void setSpare1(String spare1)
{
this.spare1 = spare1;
}
public String getSpare1()
{
return spare1;
}
public void setSpare2(String spare2)
{
this.spare2 = spare2;
}
public String getSpare2()
{
return spare2;
}
public void setSpare3(String spare3)
{
this.spare3 = spare3;
}
public String getSpare3()
{
return spare3;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("type", getType())
.append("taskNo", getTaskNo())
.append("mydojobId", getMydojobId())
.append("status", getStatus())
.append("createTime", getCreateTime())
.append("spare1", getSpare1())
.append("spare2", getSpare2())
.append("spare3", getSpare3())
.toString();
}
}

View File

@@ -97,4 +97,10 @@ public class MydoJob extends BaseEntity
private String traySize;
private List<String> epList;
/**
* wms下发的任务号
*/
@Excel(name = "wms任务号")
private String wmsTaskNo;
}

View File

@@ -100,4 +100,19 @@ public interface MydoJobMapper
List<MydoJob> getInJobByEntranceId(@Param("entranceId") String exitId);
MydoJob selectMydoJobByExitId(@Param("exitId") String exitId);
/**
* 获取本地生成作业号
* @param map
* @return
*/
void getJobId(HashMap<String, Object> map);
/**
* 获取本地生成的任务号
* @param map
* @return
*/
void getTaskNo(HashMap<String, Object> map);
}

View File

@@ -1,9 +1,11 @@
package com.ruoyi.job.service;
import java.util.HashMap;
import java.util.List;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.job.domain.MydoJob;
import org.apache.ibatis.annotations.Param;
/**
* 作业信息Service接口
@@ -93,4 +95,19 @@ public interface IMydoJobService
List<MydoJob> getInJobByEntranceId(String exitId);
MydoJob selectMydoJobByExitId(String exitId);
/**
* 获取本地生成作业号
* @param type RK-入库 CK-出库
* @return
*/
String getJobId(String type);
/**
* 获取本地生成任务号
* @param type 2-入库 3-出库
* @return
*/
String getTaskNo(String type);
}

View File

@@ -103,39 +103,46 @@ public class JobCallBackServiceImpl implements IJobCallBackService
@Override
public void jobCallBack() {
// List<JobCallBack> jobCallBackList = jobCallBackMapper.selectJobCallBackListNoSuccess();
// for (JobCallBack jobCallBack : jobCallBackList) {
//获取【刚刚创建】和【请求失败】的回传记录
List<JobCallBack> jobCallBackList = jobCallBackMapper.selectJobCallBackListNoSuccess();
for (JobCallBack jobCallBack : jobCallBackList) {
//设定请求参数
Map<String, Object> param = new HashMap<>();
param.put("taskTypeCode", jobCallBack.getTaskTypeCode());
param.put("reqCode", jobCallBack.getReqCode());
param.put("taskCode", jobCallBack.getTaskCode());
//请求回传
RequestLog requestLog = apiService.finishMydoJob(param);
if ("0".equals(requestLog.getIsSuccessful())){
jobCallBack.setStatus("1");
}else{
jobCallBack.setStatus("99");
}
jobCallBackMapper.updateJobCallBack(jobCallBack);
}
// List<JobCallBack> list = jobCallBackMapper.getTopJobCallBack();
// if(list != null && list.size() > 0){
// JobCallBack jobCallBack = list.get(0);
// Map<String, Object> param = new HashMap<>();
// param.put("jobId", jobCallBack.getMydojobId());
// param.put("taskNo", jobCallBack.getTaskNo());
// param.put("wmsType", jobCallBack.getType());
// RequestLog requestLog = apiService.finishMydoJob(param);
// if ("1".equals(requestLog.getIsSuccessful())){
// if ("0".equals(requestLog.getIsSuccessful())){
// jobCallBack.setStatus("1");
// jobCallBackMapper.updateJobCallBack(jobCallBack);
// }else{
// if(Integer.parseInt(jobCallBack.getSpare1()) < 2){
// jobCallBack.setSpare1(String.valueOf(Integer.parseInt(jobCallBack.getSpare1())+1));
// jobCallBackMapper.updateJobCallBack(jobCallBack);
// }else{
// jobCallBack.setStatus("2");
// jobCallBackMapper.updateJobCallBack(jobCallBack);
// }
// }
// }
List<JobCallBack> list = jobCallBackMapper.getTopJobCallBack();
if(list != null && list.size() > 0){
JobCallBack jobCallBack = list.get(0);
Map<String, Object> param = new HashMap<>();
param.put("jobId", jobCallBack.getMydojobId());
param.put("taskNo", jobCallBack.getTaskNo());
param.put("wmsType", jobCallBack.getType());
RequestLog requestLog = apiService.finishMydoJob(param);
if ("0".equals(requestLog.getIsSuccessful())){
jobCallBack.setStatus("1");
jobCallBackMapper.updateJobCallBack(jobCallBack);
}else{
if(Integer.parseInt(jobCallBack.getSpare1()) < 2){
jobCallBack.setSpare1(String.valueOf(Integer.parseInt(jobCallBack.getSpare1())+1));
jobCallBackMapper.updateJobCallBack(jobCallBack);
}else{
jobCallBack.setStatus("2");
jobCallBackMapper.updateJobCallBack(jobCallBack);
}
}
}
}
}

View File

@@ -16,6 +16,8 @@ import com.ruoyi.job.mapper.MydoJobMapper;
import com.ruoyi.job.domain.MydoJob;
import com.ruoyi.job.service.IMydoJobService;
import javax.annotation.PostConstruct;
/**
* 作业信息Service业务层处理
*
@@ -171,7 +173,7 @@ public class MydoJobServiceImpl implements IMydoJobService
}
/**
* 手动处理同一【作业单号】的作业
* 手动完成同一【作业单号】的作业
* 如果【jobid】和【taskno】是一对多的情况,使用上一个方法<OuthandFinish>手动完成作业会导致整个【jobid】单据完成回传
* @param jobIds
* @return
@@ -180,19 +182,33 @@ public class MydoJobServiceImpl implements IMydoJobService
public AjaxResult OuthandFinish(String[] jobIds) {
//获取所有符合【任务单号】的作业
for (String jobId : jobIds) {
//todo 是否需要校验响应成功后再执行历史表操作
//插入历史表
mydoJobMapper.insertHistory(jobId);
//生成回传记录的参数
MydoJob mydoJob = mydoJobMapper.selectMydoJobByJobId(jobId);
JobCallBack jobCallBack = new JobCallBack();
long jobIdNum = Long.parseLong(mydoJob.getInOrOut());
if (jobIdNum > 20){
jobCallBack.setType("2");
}else{jobCallBack.setType("1");}
}else{
jobCallBack.setType("1");
}
jobCallBack.setMydojobId(mydoJob.getJobId());
jobCallBack.setStatus("0");
jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo()));
jobCallBack.setCreateTime(new Date());
jobCallBack.setSpare1("0");
jobCallBack.setTaskCode(mydoJob.getWmsTaskNo());
// jobCallBack.setTaskTypeCode();//todo wms下发的任务类型
jobCallBack.setReqCode(mydoJob.getJobId() + mydoJob.getTaskNo());
// jobCallBack.setSpare1("0");
jobCallBackService.insertJobCallBack(jobCallBack);
//移除实时任务
mydoJobMapper.deleteMydoJobByJobId(jobId);
}
@@ -201,14 +217,15 @@ public class MydoJobServiceImpl implements IMydoJobService
/**
* 手动处理指定批量【任务号】的作业
* >>需要确定【jobid】是否由wms下发
* >>如果【jobid】和【taskno】是一对多的情况,使用上一个方法<OuthandFinish>手动完成作业会导致整个【jobid】单据完成回传
* >>如果【jobid】和【taskno】是一对一的情况,则直接使用 <OuthandFinish> 方法手动完成即可
* @param taskNos
* @return
*/
@Override
public AjaxResult ManuelTaskFinish(String[] taskNos) {
//todo 需要确定【jobid】是否由wms下发
// 如果【jobid】和【taskno】是一对多的情况,使用上一个方法<OuthandFinish>手动完成作业会导致整个【jobid】单据完成回传
// 如果【jobid】和【taskno】是一对一的情况,则直接使用<OuthandFinish>方法手动完成即可
//获取所有符合【任务号】的作业
for (String taskNo : taskNos) {
MydoJob mydoJob = mydoJobMapper.selectMydoJobByTaskNo(taskNo);
@@ -224,7 +241,8 @@ public class MydoJobServiceImpl implements IMydoJobService
jobCallBack.setStatus("0");
jobCallBack.setTaskNo(Convert.toLong(taskNo));
jobCallBack.setCreateTime(new Date());
jobCallBack.setSpare1("0");
// jobCallBack.setSpare1("0");
jobCallBackService.insertJobCallBack(jobCallBack);
mydoJobMapper.deleteMydoJobByTaskNo(taskNo);
}
@@ -262,4 +280,32 @@ public class MydoJobServiceImpl implements IMydoJobService
return mydoJobMapper.selectJobByTaskNo(taskNo);
}
/**
* 获取本地生成作业号
* @param type RK-入库 CK-出库
* @return
*/
@Override
public String getJobId(String type) {
HashMap<String, Object> map = new HashMap<>();
map.put("v_param", type);
mydoJobMapper.getJobId(map);
return map.get("v_serial").toString();
}
/**
* 获取本地生成任务号
* @param type 2-入库 3-出库
* @return
*/
@Override
public String getTaskNo(String type) {
HashMap<String, Object> map = new HashMap<>();
map.put("v_param", type);
mydoJobMapper.getTaskNo(map);
return map.get("v_serial").toString();
}
}