Browse Source

显示九宫格

master
常熟吴彦祖 3 months ago
parent
commit
a077dd5a63
  1. 103
      src/main/java/com/gaotao/modules/api/service/impl/WmsMessageServiceImpl.java
  2. 158
      src/main/java/com/gaotao/modules/automatedWarehouse/entity/WcsCallbackTask.java
  3. 2
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsTaskServiceImpl.java

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

@ -97,6 +97,7 @@ public class WmsMessageServiceImpl implements WmsMessageService {
@Override
@Transactional
//3种业务类型 栈板入立库货架 栈板出立库货架 栈板到达出库口待取货
public String wcsWareHouse(PalletWareHouseData inData) {
Long logId = null;
long startTime = System.currentTimeMillis();
@ -144,39 +145,86 @@ public class WmsMessageServiceImpl implements WmsMessageService {
toWarehouseId = BufferZoneConfig.BUFFER_WAREHOUSE_ID.getValue();
toLocationId = BufferZoneConfig.BUFFER_LOCATION_ID.getValue();
inData.setToBarcode(BufferZoneConfig.BUFFER_Station_ID.getValue());
}else if ("取货通知".equals(inData.getTransTypeDesc())) {
// 出库时从缓冲区配置获取
switch (inData.getToBarcode()) {
case "1093":
inData.setToBarcode("D1");
break;
case "1099":
inData.setToBarcode("D2");
break;
}
toWarehouseId = BufferZoneConfig.BUFFER_WAREHOUSE_ID.getValue();
toLocationId = BufferZoneConfig.BUFFER_LOCATION_ID.getValue();
} else {
throw new RuntimeException("不支持的事务类型:" + inData.getTransTypeDesc());
}
// 4. 保存WCS回调数据到新表等待定时任务处理
WcsCallbackTask callbackTask = new WcsCallbackTask();
callbackTask.setSite(inData.getSite());
callbackTask.setPalletId(inData.getPalletId());
callbackTask.setTransTypeDesc(inData.getTransTypeDesc());
callbackTask.setToWarehouseId(toWarehouseId);
callbackTask.setToLocationId(toLocationId);
callbackTask.setStatus("已录入"); // 等待定时任务处理
callbackTask.setCreatedTime(new Date());
callbackTask.setRetryCount(0);
callbackTask.setRemark("WCS立库" + inData.getTransTypeDesc() + "回调");
callbackTask.setTaskNo(inData.getTaskNo());
callbackTask.setItemNo(inData.getItemNo());
callbackTask.setToStation(inData.getToBarcode());
// 保存到WCS回调任务表
wcsIntegrationMapper.insertWcsCallbackTask(callbackTask);
//单独call料栈板到达出库口 直接转移站点然后更新任务就行
if ("取货通知".equals(inData.getTransTypeDesc())) {
updateOrderTaskStatusForQuHuo(inData);
wcsIntegrationMapper.updatePalletCallingFlag(inData.getSite(), inData.getPalletId(), "N", "SYS_WMS");
wcsIntegrationMapper.updateAgvStationStatus(inData.getToBarcode(), 1, "有货");
// 2. 查询托盘当前位置信息
Pallet pallet = palletService.lambdaQuery()
.eq(Pallet::getSite, inData.getSite())
.eq(Pallet::getPalletId, inData.getPalletId())
.one();
if (pallet == null) {
throw new RuntimeException("托盘不存在:" + inData.getPalletId());
}
pallet.setLocationCode(inData.getToBarcode());
palletService.updateById(pallet);
// 4. 保存WCS回调数据到新表作为记录 后续根据order表去取货就行
WcsCallbackTask callbackTask = new WcsCallbackTask();
callbackTask.setSite(inData.getSite());
callbackTask.setPalletId(inData.getPalletId());
callbackTask.setTransTypeDesc(inData.getTransTypeDesc());
callbackTask.setToWarehouseId(toWarehouseId);
callbackTask.setToLocationId(toLocationId);
callbackTask.setStatus("已完成");
callbackTask.setCreatedTime(new Date());
callbackTask.setRetryCount(0);
callbackTask.setRemark("WCS立库" + inData.getTransTypeDesc() + "回调");
callbackTask.setTaskNo(inData.getTaskNo());
callbackTask.setItemNo(inData.getItemNo());
callbackTask.setToStation(inData.getToBarcode());
// 保存到WCS回调任务表
wcsIntegrationMapper.insertWcsCallbackTask(callbackTask);
}else {
// 4. 保存WCS回调数据到新表等待定时任务处理
WcsCallbackTask callbackTask = new WcsCallbackTask();
callbackTask.setSite(inData.getSite());
callbackTask.setPalletId(inData.getPalletId());
callbackTask.setTransTypeDesc(inData.getTransTypeDesc());
callbackTask.setToWarehouseId(toWarehouseId);
callbackTask.setToLocationId(toLocationId);
callbackTask.setStatus("已录入"); // 等待定时任务处理
callbackTask.setCreatedTime(new Date());
callbackTask.setRetryCount(0);
callbackTask.setRemark("WCS立库" + inData.getTransTypeDesc() + "回调");
callbackTask.setTaskNo(inData.getTaskNo());
callbackTask.setItemNo(inData.getItemNo());
callbackTask.setToStation(inData.getToBarcode());
// 保存到WCS回调任务表
wcsIntegrationMapper.insertWcsCallbackTask(callbackTask);
}
// 如果是入库同时更新对应的wms_order_task状态
if ("入库".equals(inData.getTransTypeDesc())) {
updateOrderTaskStatusForInboundCallback(inData);
wcsIntegrationMapper.updatePalletCallingFlag(inData.getSite(), inData.getPalletId(), "Y", "SYS_WMS");
wcsIntegrationMapper.updatePalletCallingFlag(inData.getSite(), inData.getPalletId(), "N", "SYS_WMS");
}
// 如果是入库同时更新对应的wms_order_task状态
if ("出库".equals(inData.getTransTypeDesc())) {
updateOrderTaskStatusForOutCallback(inData);
wcsIntegrationMapper.reUpdatePalletDetailWcsFlag(inData.getSite(),inData.getPalletId());
wcsIntegrationMapper.updatePalletCallingFlag(inData.getSite(), inData.getPalletId(), "Y", "SYS_WMS");
}
log.info("WCS回调数据已保存:栈板={}, 任务类型={}, 目标位置={}-{}",
inData.getPalletId(), inData.getTransTypeDesc(), toWarehouseId, toLocationId);
@ -790,6 +838,19 @@ public class WmsMessageServiceImpl implements WmsMessageService {
}
}
}
private void updateOrderTaskStatusForQuHuo(PalletWareHouseData inData) {
if(inData.getTaskNo()!=null&&inData.getItemNo()!=null){
WmsOrderTask orderTask = wcsIntegrationMapper.findOrderTasksByTaskNoItem(
inData.getSite(),inData.getTaskNo(),inData.getItemNo());
if(orderTask!=null){
wcsIntegrationMapper.updateOrderTaskStatusAndWmsStatus(
orderTask.getId(), "待取货", "待取货"
);
wcsIntegrationMapper.updateOrderTaskDetailStatusByTaskNoPalletId(inData.getSite(),inData.getTaskNo(),"待取货","待取货",inData.getPalletId());
}
}
}
/**
* 收到入库回调时更新订单任务状态

158
src/main/java/com/gaotao/modules/automatedWarehouse/entity/WcsCallbackTask.java

@ -1,17 +1,23 @@
package com.gaotao.modules.automatedWarehouse.entity;
import org.apache.ibatis.type.Alias;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
/**
* WCS回调任务实体类
* @Description WCS回调任务基础实体类 - 数据库表映射 - rqrq
* @Author rqrq
* @Date 2025/10/04
*/
@Alias("WcsCallbackTask")
@Data
@TableName("wcs_callback_task")
public class WcsCallbackTask {
/**
* 主键ID
* 主键ID自增
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
@ -47,6 +53,7 @@ public class WcsCallbackTask {
/**
* 创建时间WCS回调时间
*/
@TableField(fill = FieldFill.INSERT)
private Date createdTime;
/**
@ -73,148 +80,19 @@ public class WcsCallbackTask {
* 备注
*/
private String remark;
/**
* 任务号
* WCS任务号
*/
private String taskNo;
/**
* 明细行号
* WCS明细行号
*/
private Integer itemNo;
/**
* 目标站点入库时为货架编码
* 目标站点
*/
private String toStation;
// Getter and Setter methods
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public String getPalletId() {
return palletId;
}
public void setPalletId(String palletId) {
this.palletId = palletId;
}
public String getTransTypeDesc() {
return transTypeDesc;
}
public void setTransTypeDesc(String transTypeDesc) {
this.transTypeDesc = transTypeDesc;
}
public String getToWarehouseId() {
return toWarehouseId;
}
public void setToWarehouseId(String toWarehouseId) {
this.toWarehouseId = toWarehouseId;
}
public String getToLocationId() {
return toLocationId;
}
public void setToLocationId(String toLocationId) {
this.toLocationId = toLocationId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public Date getProcessStartTime() {
return processStartTime;
}
public void setProcessStartTime(Date processStartTime) {
this.processStartTime = processStartTime;
}
public Date getProcessEndTime() {
return processEndTime;
}
public void setProcessEndTime(Date processEndTime) {
this.processEndTime = processEndTime;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public Integer getRetryCount() {
return retryCount;
}
public void setRetryCount(Integer retryCount) {
this.retryCount = retryCount;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getTaskNo() {
return taskNo;
}
public void setTaskNo(String taskNo) {
this.taskNo = taskNo;
}
public Integer getItemNo() {
return itemNo;
}
public void setItemNo(Integer itemNo) {
this.itemNo = itemNo;
}
public String getToStation() {
return toStation;
}
public void setToStation(String toStation) {
this.toStation = toStation;
}
}
}

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

@ -104,7 +104,7 @@ public class WcsTaskServiceImpl implements WcsTaskService {
wcsIntegrationMapper.updatePalletCallingFlag(callbackTask.getSite(), callbackTask.getPalletId(), "N", "SYS_WMS");
}
if ("出库".equals(callbackTask.getTransTypeDesc())) {
wcsIntegrationMapper.updatePalletWcsLocation(callbackTask.getSite(), callbackTask.getPalletId(), "");
wcsIntegrationMapper.updatePalletWcsLocation(callbackTask.getSite(), callbackTask.getPalletId(), null);
wcsIntegrationMapper.updatePalletCallingFlag(callbackTask.getSite(), callbackTask.getPalletId(), "Y", "SYS_WMS");
}

Loading…
Cancel
Save