接口记录表 wcs对外接口 绑定料架接口

This commit is contained in:
liuhanqing
2025-07-10 09:26:00 +08:00
parent 0baf2119e4
commit 8e3f72e0ae
28 changed files with 1934 additions and 76 deletions

View File

@@ -0,0 +1,61 @@
package com.ruoyi.api.controller;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.service.IToWmsService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.service.IMydoJobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 作业统计 Controller
*/
@RestController
@RequestMapping("/api2wms")
public class ToWmsApiController {
@Autowired
private IToWmsService toWmsService;
/**
* 入库任务请求
*/
@PostMapping("/inJob")
public AjaxResult inJob(@RequestBody MydoJob mydoJob) {
return toWmsService.inJob(mydoJob);
}
/**
* 入库、出库 任务完成回传
* Map<String, String>
* "wmsType": "任务类型" 1-入库 2-出库 3-agv搬运,
* taskNo:出库 入库任务号
* trayCode:托盘码
* positionCode1:起点
* positionCode2:终点
* containerCode:容器编码
*
*/
@PostMapping("/jobFinish")
public AjaxResult jobFinish(@RequestBody WmsJobRequest wmsJobRequest) {
return toWmsService.jobFinish(wmsJobRequest);
}
/**
* 放货有货,重新分配货位
*/
@GetMapping("/reAssign")
public AjaxResult reAssign(MydoJob mydoJob) {
return AjaxResult.success();
}
/**
* 取货无货,重新分配物料
*/
@GetMapping("/reMaterial")
public AjaxResult reMaterial(MydoJob mydoJob) {
return AjaxResult.success();
}
}

View File

@@ -0,0 +1,23 @@
package com.ruoyi.api.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WmsJobRequest {
//wms任务类型 1 入库 2-出库 3-agv任务
private String wmsType;
//wms任务号
private String taskNo;
//托盘编码
private String trayCode;
//料架编码
private String containerCode;
//起点
private String positionCode1;
//终点
private String positionCode2;
}

View File

@@ -0,0 +1,17 @@
package com.ruoyi.api.service;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.job.mydojob.domain.MydoJob;
import java.util.Map;
/**
* 作业统计 Service 接口
*/
public interface IToWmsService {
AjaxResult inJob(MydoJob mydoJob);
AjaxResult jobFinish(WmsJobRequest wmsJobRequest);
}

View File

@@ -0,0 +1,95 @@
package com.ruoyi.api.service.impl;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.mapper.JobStatisticsMapper;
import com.ruoyi.api.service.IJobStatisticsService;
import com.ruoyi.api.service.IToWmsService;
import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper;
import com.ruoyi.bas.container.domain.BasContainer;
import com.ruoyi.bas.container.service.IBasContainerService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.mapper.MydoJobMapper;
import com.ruoyi.job.mydojob.service.IMydoJobService;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 作业统计 Service 实现
*/
@Service
public class ToWmsServiceImpl implements IToWmsService {
@Autowired
private IMydoJobService mydoJobService;
@Autowired
private IBasContainerService basContainerService;
@Override
public AjaxResult inJob(MydoJob mydoJob) {
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
if(mydoJobs.isEmpty()){
return AjaxResult.error("此托盘没有作业");
}
return AjaxResult.success(mydoJobs.get(0));
}
@Override
public AjaxResult jobFinish(WmsJobRequest wmsJobRequest) {
MydoJob mydoJobParam = new MydoJob();
switch (wmsJobRequest.getWmsType()){
case "1":
//入库
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode());
List<MydoJob> inMydoJobs = mydoJobService.selectMydoJobList(mydoJobParam);
if (inMydoJobs.isEmpty()){
return AjaxResult.error("没有该作业 taskNo: {}", wmsJobRequest.getTaskNo());
}
MydoJob inMydoJob = inMydoJobs.get(0);
mydoJobService.manualCompleted(inMydoJob);
break;
case "2":
//出库
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode());
List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobList(mydoJobParam);
if (outMydoJobs.isEmpty()){
return AjaxResult.error("没有该作业 taskNo: {}", wmsJobRequest.getTaskNo());
}
//mydoJobService.OuthandFinish(outMydoJobs.stream().map(MydoJob::getJobId).toArray(String[]::new));
//todo 同步电子标签
break;
case "3":
//agv搬运作业
//绑定料架和点位
BasContainer basContainerParam = new BasContainer();
basContainerParam.setContainerId(wmsJobRequest.getContainerCode());
basContainerParam.setPortName(wmsJobRequest.getPositionCode1());
List<BasContainer> basContainers = basContainerService.selectBasContainerList(basContainerParam);
if (basContainers.isEmpty()){
return AjaxResult.error("没有该料架 {}", wmsJobRequest.getContainerCode());
}
//修改绑定点位
BasContainer basContainer = basContainers.get(0);
basContainer.setPortName(wmsJobRequest.getPositionCode2());
basContainerService.updateBasContainer(basContainer);
break;
default:
return AjaxResult.error("作业类型错误");
}
return null;
}
}