Browse Source

显示九宫格

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

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

@ -97,6 +97,7 @@ public class WmsMessageServiceImpl implements WmsMessageService {
@Override @Override
@Transactional @Transactional
//3种业务类型 栈板入立库货架 栈板出立库货架 栈板到达出库口待取货
public String wcsWareHouse(PalletWareHouseData inData) { public String wcsWareHouse(PalletWareHouseData inData) {
Long logId = null; Long logId = null;
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
@ -144,10 +145,56 @@ public class WmsMessageServiceImpl implements WmsMessageService {
toWarehouseId = BufferZoneConfig.BUFFER_WAREHOUSE_ID.getValue(); toWarehouseId = BufferZoneConfig.BUFFER_WAREHOUSE_ID.getValue();
toLocationId = BufferZoneConfig.BUFFER_LOCATION_ID.getValue(); toLocationId = BufferZoneConfig.BUFFER_LOCATION_ID.getValue();
inData.setToBarcode(BufferZoneConfig.BUFFER_Station_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 { } else {
throw new RuntimeException("不支持的事务类型:" + inData.getTransTypeDesc()); throw new RuntimeException("不支持的事务类型:" + inData.getTransTypeDesc());
} }
//单独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回调数据到新表等待定时任务处理 // 4. 保存WCS回调数据到新表等待定时任务处理
WcsCallbackTask callbackTask = new WcsCallbackTask(); WcsCallbackTask callbackTask = new WcsCallbackTask();
callbackTask.setSite(inData.getSite()); callbackTask.setSite(inData.getSite());
@ -165,19 +212,20 @@ public class WmsMessageServiceImpl implements WmsMessageService {
// 保存到WCS回调任务表 // 保存到WCS回调任务表
wcsIntegrationMapper.insertWcsCallbackTask(callbackTask); wcsIntegrationMapper.insertWcsCallbackTask(callbackTask);
}
// 如果是入库同时更新对应的wms_order_task状态 // 如果是入库同时更新对应的wms_order_task状态
if ("入库".equals(inData.getTransTypeDesc())) { if ("入库".equals(inData.getTransTypeDesc())) {
updateOrderTaskStatusForInboundCallback(inData); updateOrderTaskStatusForInboundCallback(inData);
wcsIntegrationMapper.updatePalletCallingFlag(inData.getSite(), inData.getPalletId(), "Y", "SYS_WMS");
wcsIntegrationMapper.updatePalletCallingFlag(inData.getSite(), inData.getPalletId(), "N", "SYS_WMS");
} }
// 如果是入库同时更新对应的wms_order_task状态 // 如果是入库同时更新对应的wms_order_task状态
if ("出库".equals(inData.getTransTypeDesc())) { if ("出库".equals(inData.getTransTypeDesc())) {
updateOrderTaskStatusForOutCallback(inData); updateOrderTaskStatusForOutCallback(inData);
wcsIntegrationMapper.reUpdatePalletDetailWcsFlag(inData.getSite(),inData.getPalletId()); wcsIntegrationMapper.reUpdatePalletDetailWcsFlag(inData.getSite(),inData.getPalletId());
wcsIntegrationMapper.updatePalletCallingFlag(inData.getSite(), inData.getPalletId(), "Y", "SYS_WMS");
} }
log.info("WCS回调数据已保存:栈板={}, 任务类型={}, 目标位置={}-{}", log.info("WCS回调数据已保存:栈板={}, 任务类型={}, 目标位置={}-{}",
inData.getPalletId(), inData.getTransTypeDesc(), toWarehouseId, toLocationId); 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());
}
}
} }
/** /**
* 收到入库回调时更新订单任务状态 * 收到入库回调时更新订单任务状态

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

@ -1,17 +1,23 @@
package com.gaotao.modules.automatedWarehouse.entity; package com.gaotao.modules.automatedWarehouse.entity;
import org.apache.ibatis.type.Alias;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date; import java.util.Date;
/** /**
* WCS回调任务实体类
* @Description WCS回调任务基础实体类 - 数据库表映射 - rqrq
* @Author rqrq
* @Date 2025/10/04
*/ */
@Alias("WcsCallbackTask")
@Data
@TableName("wcs_callback_task")
public class WcsCallbackTask { public class WcsCallbackTask {
/** /**
* 主键ID
* 主键ID自增
*/ */
@TableId(type = IdType.AUTO)
private Long id; private Long id;
/** /**
@ -47,6 +53,7 @@ public class WcsCallbackTask {
/** /**
* 创建时间WCS回调时间 * 创建时间WCS回调时间
*/ */
@TableField(fill = FieldFill.INSERT)
private Date createdTime; private Date createdTime;
/** /**
@ -75,146 +82,17 @@ public class WcsCallbackTask {
private String remark; private String remark;
/** /**
* 任务号
* WCS任务号
*/ */
private String taskNo; private String taskNo;
/** /**
* 明细行号
* WCS明细行号
*/ */
private Integer itemNo; private Integer itemNo;
/** /**
* 目标站点入库时为货架编码
* 目标站点
*/ */
private String toStation; 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"); wcsIntegrationMapper.updatePalletCallingFlag(callbackTask.getSite(), callbackTask.getPalletId(), "N", "SYS_WMS");
} }
if ("出库".equals(callbackTask.getTransTypeDesc())) { 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"); wcsIntegrationMapper.updatePalletCallingFlag(callbackTask.getSite(), callbackTask.getPalletId(), "Y", "SYS_WMS");
} }

Loading…
Cancel
Save