You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
708 lines
24 KiB
708 lines
24 KiB
package com.gaotao.modules.automatedWarehouse.controller;
|
|
|
|
import com.gaotao.common.utils.R;
|
|
import com.gaotao.modules.api.entity.IfsInventoryPart;
|
|
import com.gaotao.modules.api.service.IfsApiService;
|
|
import com.gaotao.modules.automatedWarehouse.entity.*;
|
|
import com.gaotao.modules.automatedWarehouse.service.WcsIntegrationService;
|
|
import com.gaotao.modules.automatedWarehouse.service.PalletChangeStationService;
|
|
import com.gaotao.modules.automatedWarehouse.service.PalletCancelService;
|
|
import com.gaotao.modules.base.entity.PalletType;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
@RestController
|
|
@RequestMapping("/wcsIntegration")
|
|
public class WcsIntegrationController {
|
|
@Autowired
|
|
private WcsIntegrationService wcsIntegrationService;
|
|
@Autowired
|
|
private IfsApiService ifsApiService;
|
|
@Autowired
|
|
private PalletChangeStationService palletChangeStationService;
|
|
@Autowired
|
|
private PalletCancelService palletCancelService;
|
|
|
|
|
|
|
|
@PostMapping(value="/getShopOrderFromIFSWithOrderNo")
|
|
@ResponseBody
|
|
public R getIfsInventoryPart(@RequestBody IfsInventoryPart data) throws Exception{
|
|
//TODO 调用rifs接口获取列表数据
|
|
List<IfsInventoryPart> rows = ifsApiService.getIfsInventoryPart(data);
|
|
return R.ok().put("rows", rows);
|
|
}
|
|
|
|
@PostMapping(value="/palletListForPartNo")
|
|
@ResponseBody
|
|
public R palletListForPartNo(@RequestBody PartPalletData data) throws Exception{
|
|
|
|
List<WmsLabelAndPalletData> rows = wcsIntegrationService.palletListForPartNo(data);
|
|
return R.ok().put("rows", rows);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @description call栈板出来
|
|
* @author 常熟吴彦祖
|
|
* @date 2025/9/19 16:55
|
|
* @return R
|
|
*/
|
|
@PostMapping(value="/callPalletFromWcs")
|
|
@ResponseBody
|
|
public R callPalletFromWcs(@RequestBody List<WmsLabelAndPalletData> data) {
|
|
|
|
wcsIntegrationService.callPalletFromWcs(data);
|
|
return R.ok();
|
|
}
|
|
|
|
/**
|
|
* 【新方法】直接Call栈板(不使用定时任务方式) - rqrq
|
|
* @Description 实时调用WCS接口,返回失败的栈板信息 - rqrq
|
|
* @Title callPalletFromWcsNew
|
|
* @param data 栈板明细列表
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/04
|
|
*/
|
|
@PostMapping(value="/callPalletFromWcsNew")
|
|
@ResponseBody
|
|
public R callPalletFromWcsNew(@RequestBody List<WmsLabelAndPalletData> data) throws Exception {
|
|
Map<String, Object> result = wcsIntegrationService.callPalletFromWcsNew(data);
|
|
return R.ok()
|
|
.put("totalCount", result.get("totalCount"))
|
|
.put("successCount", result.get("successCount"))
|
|
.put("failedCount", result.get("failedCount"))
|
|
.put("failedPalletIds", result.get("failedPalletIds"))
|
|
.put("failedReasons", result.get("failedReasons"));
|
|
}
|
|
|
|
// ==================== 打托相关接口 - AI制作 ====================
|
|
|
|
/**
|
|
* 检查栈板是否存在并获取位置信息 - AI制作
|
|
*/
|
|
@PostMapping(value="/checkPalletExists")
|
|
@ResponseBody
|
|
public R checkPalletExists(@RequestBody Map<String, Object> params) {
|
|
|
|
Map<String, Object> result = wcsIntegrationService.checkPalletExists(params);
|
|
return R.ok()
|
|
.put("positions", result.get("positions"))
|
|
.put("palletType", result.get("palletType"))
|
|
.put("locationCode", result.get("locationCode"))
|
|
.put("palletId", result.get("palletId"));
|
|
|
|
}
|
|
|
|
/**
|
|
* @Description 简单查询栈板信息(无任何校验)- rqrq
|
|
* @Title getPalletInfoSimple
|
|
* @param params 查询参数(site, palletId)
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/09
|
|
*/
|
|
@PostMapping(value="/getPalletInfoSimple")
|
|
public R getPalletInfoSimple(@RequestBody Map<String, Object> params) throws Exception {
|
|
Map<String, Object> result = wcsIntegrationService.getPalletInfoSimple(params);
|
|
return R.ok()
|
|
.put("palletId", result.get("palletId"))
|
|
.put("positions", result.get("positions"))
|
|
.put("palletType", result.get("palletType"))
|
|
.put("locationCode", result.get("locationCode"));
|
|
}
|
|
|
|
/**
|
|
* 获取栈板明细 - AI制作
|
|
*/
|
|
@PostMapping(value="/getPalletDetails")
|
|
@ResponseBody
|
|
public R getPalletDetails(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
List<Map<String, Object>> details = wcsIntegrationService.getPalletDetails(params);
|
|
return R.ok().put("details", details);
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 根据位置获取层数 - AI制作
|
|
*/
|
|
@PostMapping(value="/getLayersByPosition")
|
|
@ResponseBody
|
|
public R getLayersByPosition(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
List<Integer> layers = wcsIntegrationService.getLayersByPosition(params);
|
|
return R.ok().put("layers", layers);
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 保存栈板明细(扫进) - AI制作
|
|
*/
|
|
@PostMapping(value="/savePalletDetail")
|
|
@ResponseBody
|
|
public R savePalletDetail(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
wcsIntegrationService.savePalletDetail(params);
|
|
return R.ok();
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 删除栈板明细(扫出) - AI制作
|
|
*/
|
|
@PostMapping(value="/deletePalletDetail")
|
|
@ResponseBody
|
|
public R deletePalletDetail(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
wcsIntegrationService.deletePalletDetail(params);
|
|
return R.ok();
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @Description 恢复标签到原栈板(分拣撤回)- rqrq
|
|
* @Title restorePalletDetail
|
|
* @param data 恢复标签请求参数实体
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/09
|
|
*/
|
|
@PostMapping(value="/restorePalletDetail")
|
|
@ResponseBody
|
|
public R restorePalletDetail(@RequestBody RestorePalletDetailData data) throws Exception {
|
|
wcsIntegrationService.restorePalletDetail(data);
|
|
return R.ok();
|
|
}
|
|
|
|
/**
|
|
* @Description 查询标签当前所在栈板的信息 - rqrq
|
|
* @Title getLabelInfo
|
|
* @param data 查询标签信息请求参数实体
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/09
|
|
*/
|
|
@PostMapping(value="/getLabelInfo")
|
|
@ResponseBody
|
|
public R getLabelInfo(@RequestBody GetLabelInfoData data) throws Exception {
|
|
LabelInfoResult row = wcsIntegrationService.getLabelInfo(data);
|
|
return R.ok().put("row", row);
|
|
}
|
|
|
|
/**
|
|
* 获取编辑位置时的层数选项(排除指定标签) - AI制作
|
|
*/
|
|
@PostMapping(value="/getLayersForEdit")
|
|
@ResponseBody
|
|
public R getLayersForEdit(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
List<Integer> layers = wcsIntegrationService.getLayersForEdit(params);
|
|
return R.ok().put("layers", layers);
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 更新栈板明细位置 - AI制作
|
|
*/
|
|
@PostMapping(value="/updatePalletDetailPosition")
|
|
@ResponseBody
|
|
public R updatePalletDetailPosition(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
wcsIntegrationService.updatePalletDetailPosition(params);
|
|
return R.ok();
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取指定层数下各个位置的可用状态 - rqrq
|
|
* @param params {site, palletId, layer}
|
|
* @return 各位置可用状态
|
|
*/
|
|
@PostMapping(value="/getAvailablePositionsForLayer")
|
|
@ResponseBody
|
|
public R getAvailablePositionsForLayer(@RequestBody Map<String, Object> params) throws Exception {
|
|
Map<String, Object> result = wcsIntegrationService.getAvailablePositionsForLayer(params);
|
|
return R.ok().put("data", result);
|
|
}
|
|
|
|
// ==================== 运输任务相关接口 - AI制作 ====================
|
|
|
|
/**
|
|
* 获取AGV站点列表 - AI制作
|
|
*/
|
|
@PostMapping(value="/getAgvStations")
|
|
@ResponseBody
|
|
public R getAgvStations(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
List<Map<String, Object>> stations = wcsIntegrationService.getAgvStations(params);
|
|
return R.ok().put("stations", stations);
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取可用的AGV站点列表(已在后台过滤状态和类型)- AI制作
|
|
* 参数:statusDb - 站点状态(0-空闲,1-有货),不传则返回所有正式站点
|
|
*/
|
|
@PostMapping(value="/getAvailableAgvStations")
|
|
@ResponseBody
|
|
public R getAvailableAgvStations(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
List<AgvStation> stations = wcsIntegrationService.getAvailableAgvStations(params);
|
|
return R.ok().put("stations", stations);
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 根据起点站点获取可达目标站点 - AI制作
|
|
*/
|
|
@PostMapping(value="/getTargetStations")
|
|
@ResponseBody
|
|
public R getTargetStations(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
List<Map<String, Object>> targets = wcsIntegrationService.getTargetStations(params);
|
|
return R.ok().put("targets", targets);
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 创建栈板运输任务 - AI制作
|
|
*/
|
|
@PostMapping(value="/createPalletTransportTask")
|
|
@ResponseBody
|
|
public R createPalletTransportTask(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
wcsIntegrationService.createPalletTransportTask(params);
|
|
return R.ok();
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Call栈板到指定站点 - AI制作
|
|
*/
|
|
@PostMapping(value="/callPalletToStation")
|
|
@ResponseBody
|
|
public R callPalletToStation(@RequestBody CallPalletRequestDto request) {
|
|
|
|
wcsIntegrationService.callPalletToStation(request);
|
|
return R.ok();
|
|
|
|
}
|
|
|
|
/**
|
|
* @Description 组盘完成后调用运输任务(自动判断空托盘/有货托盘)- rqrq
|
|
* @Title callPalletToStationWithUpdateZuPan
|
|
* @param request {site, startStation, targetArea, palletId}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025-10-31
|
|
*/
|
|
@PostMapping(value="/callPalletToStationWithUpdateZuPan")
|
|
@ResponseBody
|
|
public R callPalletToStationWithUpdateZuPan(@RequestBody CallPalletRequestDto request) {
|
|
System.out.println("开始处理组盘入库请求 - rqrq");
|
|
|
|
// 参数校验 - rqrq
|
|
if (!StringUtils.hasText(request.getSite()) || !StringUtils.hasText(request.getPalletId())) {
|
|
return R.error("工厂编码和栈板编码不能为空");
|
|
}
|
|
|
|
// 判断栈板是否有明细数据 - rqrq
|
|
boolean hasPalletDetail = wcsIntegrationService.checkPalletHasDetail(request.getSite(), request.getPalletId());
|
|
|
|
if (hasPalletDetail) {
|
|
// 有明细数据,调用组盘入库流程 - rqrq
|
|
System.out.println("栈板有明细数据,执行组盘入库流程 - rqrq");
|
|
wcsIntegrationService.callPalletToStationWithUpdateZuPan(request);
|
|
} else {
|
|
// 空托盘,调用空托盘入库流程 - rqrq
|
|
System.out.println("栈板无明细数据,执行空托盘入库流程 - rqrq");
|
|
Map<String, Object> params = new HashMap<>();
|
|
params.put("site", request.getSite());
|
|
params.put("palletId", request.getPalletId());
|
|
params.put("transportFlag", "Y"); // 默认入库并运输 - rqrq
|
|
params.put("count", 1);
|
|
wcsIntegrationService.notifyEmptyPalletInbound(params);
|
|
}
|
|
|
|
return R.ok();
|
|
}
|
|
|
|
/**
|
|
* 获取栈板详细信息(包含palletType和autoSort) - AI制作
|
|
*/
|
|
@PostMapping(value="/getPalletInfo")
|
|
@ResponseBody
|
|
public R getPalletInfo(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
com.gaotao.modules.warehouse.entity.PalletData palletInfo = wcsIntegrationService.getPalletInfo(params);
|
|
return R.ok().put("row", palletInfo);
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 更新栈板类型和自动分拣标志 - AI制作
|
|
*/
|
|
@PostMapping(value="/updatePalletTypeAndAutoSort")
|
|
@ResponseBody
|
|
public R updatePalletTypeAndAutoSort(@RequestBody Map<String, Object> params) {
|
|
try {
|
|
wcsIntegrationService.updatePalletTypeAndAutoSort(params);
|
|
return R.ok();
|
|
} catch (Exception e) {
|
|
return R.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 完成组托(不创建运输任务,只推送组托数据到WCS) - AI制作
|
|
*/
|
|
@PostMapping(value="/completePalletAssembly")
|
|
@ResponseBody
|
|
public R completePalletAssembly(@RequestBody Map<String, Object> params) throws Exception {
|
|
wcsIntegrationService.completePalletAssembly(params);
|
|
return R.ok();
|
|
}
|
|
|
|
/**
|
|
* 手工分拣组托
|
|
*/
|
|
@PostMapping(value="/completePalletAssemblyForFenJian")
|
|
@ResponseBody
|
|
public R completePalletAssemblyForFenJian(@RequestBody Map<String, Object> params) throws Exception {
|
|
wcsIntegrationService.completePalletAssemblyForFenJian(params);
|
|
return R.ok();
|
|
}
|
|
|
|
// ==================== 栈板换站相关接口 - rqrq ====================
|
|
|
|
/**
|
|
* @Description 检查栈板是否可以换站(判断calling_flag和获取当前站点信息)- rqrq
|
|
* @Title checkPalletForChangeStation
|
|
* @param params {site, palletId}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/checkPalletForChangeStation")
|
|
@ResponseBody
|
|
public R checkPalletForChangeStation(@RequestBody Map<String, Object> params) {
|
|
CheckPalletResult row = wcsIntegrationService.checkPalletForChangeStation(params);
|
|
return R.ok().put("row", row);
|
|
}
|
|
|
|
/**
|
|
* @Description 获取可选择的区域列表(choose_able为Y)- rqrq
|
|
* @Title getAreaOptionsForChange
|
|
* @param params 查询参数
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/getAreaOptionsForChange")
|
|
@ResponseBody
|
|
public R getAreaOptionsForChange(@RequestBody Map<String, Object> params) {
|
|
List<com.gaotao.modules.automatedWarehouse.entity.Area> rows = wcsIntegrationService.getAreaOptionsForChange(params);
|
|
return R.ok().put("rows", rows);
|
|
}
|
|
|
|
/**
|
|
* @Description 根据区域获取可用站点列表 - rqrq
|
|
* @Title getStationsByArea
|
|
* @param params {areaId}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/getStationsByArea")
|
|
@ResponseBody
|
|
public R getStationsByArea(@RequestBody Map<String, Object> params) {
|
|
List<AgvStation> rows = wcsIntegrationService.getStationsByArea(params);
|
|
return R.ok().put("rows", rows);
|
|
}
|
|
|
|
/**
|
|
* @Description 提交栈板换站任务 - rqrq
|
|
* @Title submitChangeStationTask
|
|
* @param request 换站任务请求参数
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/submitChangeStationTask")
|
|
@ResponseBody
|
|
public R submitChangeStationTask(@RequestBody CallPalletRequestDto request) {
|
|
palletChangeStationService.handleChangeStationTask(request);
|
|
return R.ok();
|
|
}
|
|
|
|
/**
|
|
* @Description Call料到指定位置(Call料+预约取盘到指定区域/站点)- rqrq
|
|
* @Title callOutToStation
|
|
* @param request Call料到指定位置请求参数
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/17
|
|
*/
|
|
@PostMapping(value="/callOutToStation")
|
|
@ResponseBody
|
|
public R callOutToStation(@RequestBody CallOutToStationRequestDto request) {
|
|
wcsIntegrationService.callOutToStation(request);
|
|
return R.ok();
|
|
}
|
|
|
|
// ==================== 手工移动托盘相关方法 - rqrq ====================
|
|
|
|
/**
|
|
* @Description 检查托盘是否可以手工移动 - rqrq
|
|
* @Title checkPalletForManualMove
|
|
* @param params {site, palletId}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/checkPalletForManualMove")
|
|
@ResponseBody
|
|
public R checkPalletForManualMove(@RequestBody Map<String, Object> params) {
|
|
CheckPalletResult row = wcsIntegrationService.checkPalletForManualMove(params);
|
|
return R.ok().put("row", row);
|
|
}
|
|
|
|
/**
|
|
* @Description 移出站点 - rqrq
|
|
* @Title removeFromStation
|
|
* @param params {site, palletId, stationCode}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/removeFromStation")
|
|
@ResponseBody
|
|
public R removeFromStation(@RequestBody Map<String, Object> params) {
|
|
wcsIntegrationService.removeFromStation(params);
|
|
return R.ok();
|
|
}
|
|
|
|
/**
|
|
* @Description 获取可绑定的区域列表 - rqrq
|
|
* @Title getAreaOptionsForBind
|
|
* @param params {site}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/getAreaOptionsForBind")
|
|
@ResponseBody
|
|
public R getAreaOptionsForBind(@RequestBody Map<String, Object> params) {
|
|
List<Area> rows = wcsIntegrationService.getAreaOptionsForChange(params);
|
|
return R.ok().put("rows", rows);
|
|
}
|
|
|
|
/**
|
|
* @Description 根据区域获取可绑定的站点列表 - rqrq
|
|
* @Title getStationsForBind
|
|
* @param params {site, areaId}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/getStationsForBind")
|
|
@ResponseBody
|
|
public R getStationsForBind(@RequestBody Map<String, Object> params) {
|
|
List<AgvStation> rows = wcsIntegrationService.getStationsByArea(params);
|
|
return R.ok().put("rows", rows);
|
|
}
|
|
|
|
/**
|
|
* @Description 绑定托盘到站点 - rqrq
|
|
* @Title bindPalletToStation
|
|
* @param params {site, palletId, stationCode}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/bindPalletToStation")
|
|
@ResponseBody
|
|
public R bindPalletToStation(@RequestBody Map<String, Object> params) {
|
|
wcsIntegrationService.bindPalletToStation(params);
|
|
return R.ok();
|
|
}
|
|
|
|
// ==================== 空托盘组盘相关方法 - rqrq ====================
|
|
|
|
/**
|
|
* @Description 检查托盘是否为空托盘 - rqrq
|
|
* @Title checkEmptyPallet
|
|
* @param params {site, palletId}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/checkEmptyPallet")
|
|
@ResponseBody
|
|
public R checkEmptyPallet(@RequestBody Map<String, Object> params) {
|
|
CheckPalletResult row = wcsIntegrationService.checkEmptyPallet(params);
|
|
return R.ok().put("row", row);
|
|
}
|
|
|
|
/**
|
|
* @Description 获取托盘类型列表(根据pallet_family过滤)- rqrq
|
|
* @Title getPalletTypes
|
|
* @param params {site, palletFamily}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/getPalletTypes")
|
|
@ResponseBody
|
|
public R getPalletTypes(@RequestBody Map<String, Object> params) {
|
|
List<PalletType> rows = wcsIntegrationService.getPalletTypes(params);
|
|
return R.ok().put("rows", rows);
|
|
}
|
|
|
|
/**
|
|
* @Description 空托盘通知入库 - rqrq
|
|
* @Title notifyEmptyPalletInbound
|
|
* @param params {site, palletId, transportFlag}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/notifyEmptyPalletInbound")
|
|
@ResponseBody
|
|
public R notifyEmptyPalletInbound(@RequestBody Map<String, Object> params) {
|
|
wcsIntegrationService.notifyEmptyPalletInbound(params);
|
|
return R.ok();
|
|
}
|
|
|
|
/**
|
|
* @Description 调用空托盘到指定站点(选择区域、站点、栈板类型)- rqrq
|
|
* @Title callEmptyPalletToStation
|
|
* @param params {site, stationCode, palletType}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/19
|
|
*/
|
|
@PostMapping(value="/callEmptyPalletToStation")
|
|
@ResponseBody
|
|
public R callEmptyPalletToStation(@RequestBody Map<String, Object> params) throws Exception {
|
|
wcsIntegrationService.callEmptyPalletToStation(params);
|
|
return R.ok();
|
|
}
|
|
|
|
// ==================== 取消WCS组盘相关方法 - rqrq ====================
|
|
|
|
/**
|
|
* @Description 检查栈板WCS组盘状态 - rqrq
|
|
* @Title checkPalletWcsStatus
|
|
* @param data 请求参数实体(包含site, palletId)
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/checkPalletWcsStatus")
|
|
@ResponseBody
|
|
public R checkPalletWcsStatus(@RequestBody CancelWcsPalletData data) throws Exception {
|
|
CheckPalletResult row = wcsIntegrationService.checkPalletWcsStatus(data);
|
|
return R.ok().put("row", row);
|
|
}
|
|
|
|
/**
|
|
* @Description 取消组盘(包含AGV任务检查)- rqrq
|
|
* @Title cancelWcsPallet
|
|
* @param data 请求参数实体(包含site, palletId)
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/cancelWcsPallet")
|
|
@ResponseBody
|
|
public R cancelWcsPallet(@RequestBody CancelWcsPalletData data) throws Exception {
|
|
palletCancelService.cancelWcsPallet(data);
|
|
return R.ok();
|
|
}
|
|
|
|
/**
|
|
* @Description 移出全部物料 - rqrq
|
|
* @Title removeAllPalletDetails
|
|
* @param data 请求参数实体(包含site, palletId)
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
@PostMapping(value="/removeAllPalletDetails")
|
|
@ResponseBody
|
|
public R removeAllPalletDetails(@RequestBody CancelWcsPalletData data) throws Exception {
|
|
wcsIntegrationService.removeAllPalletDetails(data);
|
|
return R.ok();
|
|
}
|
|
|
|
/**
|
|
* @Description 结束分拣(下达预约送货任务到Z104区域,并更新pallet_detail的wcs_flag为1)- rqrq
|
|
* @Title finishSorting
|
|
* @param params {site, palletId}
|
|
* @return R
|
|
* @author rqrq
|
|
* @date 2025/10/19
|
|
*/
|
|
@PostMapping(value="/finishSorting")
|
|
@ResponseBody
|
|
public R finishSorting(@RequestBody Map<String, Object> params) throws Exception {
|
|
wcsIntegrationService.finishSorting(params);
|
|
return R.ok();
|
|
}
|
|
|
|
@PostMapping(value="/finishSortingNoAgv")
|
|
@ResponseBody
|
|
public R finishSortingNoAgv(@RequestBody Map<String, Object> params) throws Exception {
|
|
wcsIntegrationService.finishSortingNoAgv(params);
|
|
return R.ok();
|
|
}
|
|
|
|
// ==================== 分拣明细查询相关方法 - rqrq ====================
|
|
|
|
/**
|
|
* @Description 根据栈板站点获取分拣明细RFID列表 - rqrq
|
|
* @Title getSortingList
|
|
* @param params {site, palletId}
|
|
* @return R (返回devCode和rfidList)
|
|
* @author rqrq
|
|
* @date 2025/11/01
|
|
*/
|
|
@PostMapping(value="/getSortingList")
|
|
@ResponseBody
|
|
public R getSortingList(@RequestBody Map<String, Object> params) throws Exception {
|
|
Map<String, Object> result = wcsIntegrationService.getSortingList(params);
|
|
return R.ok()
|
|
.put("devCode", result.get("devCode"))
|
|
.put("rfidList", result.get("rfidList"));
|
|
}
|
|
}
|