Browse Source

分拣异常处理

master
常熟吴彦祖 3 months ago
parent
commit
c92bd66f4b
  1. 33
      src/main/java/com/gaotao/modules/api/service/impl/WmsMessageServiceImpl.java
  2. 36
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsTaskServiceImpl.java

33
src/main/java/com/gaotao/modules/api/service/impl/WmsMessageServiceImpl.java

@ -332,6 +332,9 @@ public class WmsMessageServiceImpl implements WmsMessageService {
case "取走栈板": case "取走栈板":
result = processPalletRemoval(inData); result = processPalletRemoval(inData);
break; break;
case "异常位处理":
result = processErrorStation(inData);
break;
default: default:
throw new RuntimeException("不支持的事务类型:" + inData.getTransTypeDesc()); throw new RuntimeException("不支持的事务类型:" + inData.getTransTypeDesc());
} }
@ -501,6 +504,14 @@ public class WmsMessageServiceImpl implements WmsMessageService {
return "取走栈板回调数据已保存,站点已更新为空闲"; return "取走栈板回调数据已保存,站点已更新为空闲";
} }
private String processErrorStation(PalletWareHouseData inData){
String toWarehouseId = BufferZoneConfig.BUFFER_WAREHOUSE_ID.getValue();
String toLocationId = BufferZoneConfig.BUFFER_LOCATION_ID.getValue();
saveWcsCallbackTaskWithRemark(inData, toWarehouseId, toLocationId,inData.getRemark());
return "异常位处理数据已保存。";
}
/** /**
* @Description 站点编码转换WCS的1099/1093映射为D1/D2- rqrq * @Description 站点编码转换WCS的1099/1093映射为D1/D2- rqrq
* @param inData 请求参数 * @param inData 请求参数
@ -551,6 +562,28 @@ public class WmsMessageServiceImpl implements WmsMessageService {
inData.getPalletId(), inData.getTransTypeDesc(), toWarehouseId, toLocationId); inData.getPalletId(), inData.getTransTypeDesc(), toWarehouseId, toLocationId);
} }
private void saveWcsCallbackTaskWithRemark(PalletWareHouseData inData, String toWarehouseId, String toLocationId,String remark) {
WcsCallbackTask callbackTask = new WcsCallbackTask();
callbackTask.setSite(inData.getSite());
callbackTask.setPalletId(inData.getPalletId());
callbackTask.setTransTypeDesc(inData.getTransTypeDesc());
callbackTask.setToWarehouseId(toWarehouseId);
callbackTask.setToLocationId(toLocationId);
callbackTask.setStatus("已录入"); // 等待定时任务处理 - rqrq
callbackTask.setCreatedTime(new Date());
callbackTask.setRetryCount(0);
callbackTask.setRemark(remark);
callbackTask.setTaskNo(inData.getTaskNo());
callbackTask.setItemNo(inData.getItemNo());
callbackTask.setToStation(inData.getToBarcode());
// 保存到WCS回调任务表 - rqrq
wcsIntegrationMapper.insertWcsCallbackTask(callbackTask);
log.info("WCS回调任务已保存 - rqrq:栈板={}, 类型={}, 目标位置={}-{}",
inData.getPalletId(), inData.getTransTypeDesc(), toWarehouseId, toLocationId);
}
@Override @Override
@Transactional @Transactional
public String doWareHouseForPallet(WareHouseTransferRequest request) { public String doWareHouseForPallet(WareHouseTransferRequest request) {

36
src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsTaskServiceImpl.java

@ -114,11 +114,11 @@ public class WcsTaskServiceImpl implements WcsTaskService {
// 更新托盘状态 - rqrq // 更新托盘状态 - rqrq
if ("入库".equals(callbackTask.getTransTypeDesc())) { if ("入库".equals(callbackTask.getTransTypeDesc())) {
updateOrderTaskStatusForInbound(callbackTask); updateOrderTaskStatusForInbound(callbackTask);
palletMapper.updateLocationWithPalletId(request.getSite(),request.getPalletId(),request.getToStation(),request.getToStation());
palletMapper.updateLocationWithPalletId(request.getSite(), request.getPalletId(), request.getToStation(), request.getToStation());
wcsIntegrationMapper.updatePalletCallingFlag(callbackTask.getSite(), callbackTask.getPalletId(), "N", "SYS_WMS"); wcsIntegrationMapper.updatePalletCallingFlag(callbackTask.getSite(), callbackTask.getPalletId(), "N", "SYS_WMS");
} else { } else {
palletMapper.updateLocationWithPalletId(request.getSite(),request.getPalletId(),"Virtual_AS",null);
palletMapper.updateLocationWithPalletId(request.getSite(), request.getPalletId(), "Virtual_AS", null);
// wcsIntegrationMapper.updatePalletWcsLocation(callbackTask.getSite(), callbackTask.getPalletId(), null); // wcsIntegrationMapper.updatePalletWcsLocation(callbackTask.getSite(), callbackTask.getPalletId(), null);
wcsIntegrationMapper.updatePalletCallingFlag(callbackTask.getSite(), callbackTask.getPalletId(), "Y", "SYS_WMS"); wcsIntegrationMapper.updatePalletCallingFlag(callbackTask.getSite(), callbackTask.getPalletId(), "Y", "SYS_WMS");
@ -129,6 +129,9 @@ public class WcsTaskServiceImpl implements WcsTaskService {
} else if ("取走栈板".equals(callbackTask.getTransTypeDesc())) { } else if ("取走栈板".equals(callbackTask.getTransTypeDesc())) {
// 取走栈板更新站点状态 - rqrq // 取走栈板更新站点状态 - rqrq
result = processPalletRemoval(callbackTask); result = processPalletRemoval(callbackTask);
} else if ("异常位处理".equals(callbackTask.getTransTypeDesc())) {
// 取走栈板更新站点状态 - rqrq
result = processErrorStation(callbackTask);
} else { } else {
throw new RuntimeException("不支持的事务类型:" + callbackTask.getTransTypeDesc()); throw new RuntimeException("不支持的事务类型:" + callbackTask.getTransTypeDesc());
} }
@ -242,6 +245,7 @@ public class WcsTaskServiceImpl implements WcsTaskService {
/** /**
* 更新入库对应的订单任务状态 * 更新入库对应的订单任务状态
*
* @param callbackTask WCS回调任务 * @param callbackTask WCS回调任务
*/ */
private void updateOrderTaskStatusForInbound(WcsCallbackTask callbackTask) { private void updateOrderTaskStatusForInbound(WcsCallbackTask callbackTask) {
@ -280,6 +284,7 @@ public class WcsTaskServiceImpl implements WcsTaskService {
/** /**
* 调用WCS出库方法 * 调用WCS出库方法
*
* @param orderTask 订单任务 * @param orderTask 订单任务
* @return 调用结果 * @return 调用结果
*/ */
@ -300,6 +305,7 @@ public class WcsTaskServiceImpl implements WcsTaskService {
/** /**
* 获取当前任务的重试次数 * 获取当前任务的重试次数
*
* @param orderTask 订单任务 * @param orderTask 订单任务
* @return 重试次数 * @return 重试次数
*/ */
@ -319,9 +325,9 @@ public class WcsTaskServiceImpl implements WcsTaskService {
} }
/** /**
* @Description 处理取货通知 - rqrq
* @param callbackTask WCS回调任务 * @param callbackTask WCS回调任务
* @return 处理结果 * @return 处理结果
* @Description 处理取货通知 - rqrq
* @author rqrq * @author rqrq
* @date 2025/10/24 * @date 2025/10/24
*/ */
@ -341,12 +347,12 @@ public class WcsTaskServiceImpl implements WcsTaskService {
if (callbackTask.getTaskNo() != null && callbackTask.getItemNo() != null) { if (callbackTask.getTaskNo() != null && callbackTask.getItemNo() != null) {
WmsOrderTask orderTask = wcsIntegrationMapper.findOrderTasksByTaskNoItem( WmsOrderTask orderTask = wcsIntegrationMapper.findOrderTasksByTaskNoItem(
callbackTask.getSite(), callbackTask.getTaskNo(), callbackTask.getItemNo()); callbackTask.getSite(), callbackTask.getTaskNo(), callbackTask.getItemNo());
if (orderTask == null){
if (orderTask == null) {
return "取货通知处理成功"; return "取货通知处理成功";
} }
if ( !"领料申请单".equals(orderTask.getSourceType()) && !"发货通知单".equals(orderTask.getSourceType())) {
if (!"领料申请单".equals(orderTask.getSourceType()) && !"发货通知单".equals(orderTask.getSourceType())) {
wcsIntegrationMapper.updateOrderTaskStatusAndWmsStatus( wcsIntegrationMapper.updateOrderTaskStatusAndWmsStatus(
orderTask.getId(), "已完成", "已完成"); orderTask.getId(), "已完成", "已完成");
wcsIntegrationMapper.updateOrderTaskDetailStatusByTaskNoPalletId( wcsIntegrationMapper.updateOrderTaskDetailStatusByTaskNoPalletId(
@ -365,7 +371,7 @@ public class WcsTaskServiceImpl implements WcsTaskService {
callbackTask.getSite(), callbackTask.getPalletId()); callbackTask.getSite(), callbackTask.getPalletId());
if (checkIfHasNeedTask == null) { if (checkIfHasNeedTask == null) {
System.out.println("栈板{}没有预约任务,检查是否有预留物料 - rqrq"+callbackTask.getPalletId());
System.out.println("栈板{}没有预约任务,检查是否有预留物料 - rqrq" + callbackTask.getPalletId());
// 获取栈板明细 - rqrq // 获取栈板明细 - rqrq
List<PalletDetailData> palletDetailList = wcsIntegrationMapper.getPalletDetailsData( List<PalletDetailData> palletDetailList = wcsIntegrationMapper.getPalletDetailsData(
@ -500,7 +506,7 @@ public class WcsTaskServiceImpl implements WcsTaskService {
ex.printStackTrace(); ex.printStackTrace();
} }
} else { } else {
System.out.println("栈板{}无预留物料,不创建配送任务 - rqrq"+callbackTask.getPalletId());
System.out.println("栈板{}无预留物料,不创建配送任务 - rqrq" + callbackTask.getPalletId());
} }
} }
} else { } else {
@ -519,9 +525,9 @@ public class WcsTaskServiceImpl implements WcsTaskService {
} }
/** /**
* @Description 处理取走栈板 - rqrq
* @param callbackTask WCS回调任务 * @param callbackTask WCS回调任务
* @return 处理结果 * @return 处理结果
* @Description 处理取走栈板 - rqrq
* @author rqrq * @author rqrq
* @date 2025/10/24 * @date 2025/10/24
*/ */
@ -546,4 +552,18 @@ public class WcsTaskServiceImpl implements WcsTaskService {
} }
} }
private String processErrorStation(WcsCallbackTask callbackTask) {
System.out.println("开始处理取走栈板 - rqrq,palletId=" + callbackTask.getPalletId() + ", toStation=" + callbackTask.getToStation());
int rows = palletMapper.updatePalletToErrorStatus(
callbackTask.getSite(),
callbackTask.getPalletId(),
callbackTask.getToStation()
);
log.info("更新托盘为异常状态 - rqrq,site={},palletId={},异常处理位={}",
callbackTask.getSite(),
callbackTask.getPalletId(),
callbackTask.getToStation());
return "异常位处理成功";
}
} }
Loading…
Cancel
Save