Browse Source

是否在立库

master
常熟吴彦祖 2 months ago
parent
commit
66899687dd
  1. 12
      src/main/java/com/gaotao/modules/automatedWarehouse/mapper/WcsIntegrationMapper.java
  2. 17
      src/main/java/com/gaotao/modules/automatedWarehouse/service/AutoTaskService.java
  3. 32
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AutoTaskServiceImpl.java
  4. 28
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsIntegrationServiceImpl.java
  5. 9
      src/main/resources/mapper/automatedWarehouse/WcsIntegrationMapper.xml

12
src/main/java/com/gaotao/modules/automatedWarehouse/mapper/WcsIntegrationMapper.java

@ -845,6 +845,18 @@ public interface WcsIntegrationMapper {
void updateTransportTaskSourceInfo(@Param("site") String site, @Param("palletId") String palletId,
@Param("sourceBillNo") String sourceBillNo, @Param("sourceLineId") Integer sourceLineId);
/**
* @Description 根据任务编号更新运输任务的来源单据信息优化版本- rqrq
* @param taskNo 运输任务编号
* @param sourceBillNo 来源单号
* @param sourceLineId 来源行号
* @author rqrq
* @date 2025/11/22
*/
void updateTransportTaskSourceInfoByTaskNo(@Param("taskNo") String taskNo,
@Param("sourceBillNo") String sourceBillNo,
@Param("sourceLineId") Integer sourceLineId);
// ==================== 调度发货任务相关方法 - rqrq ====================
/**

17
src/main/java/com/gaotao/modules/automatedWarehouse/service/AutoTaskService.java

@ -8,10 +8,23 @@ import com.gaotao.modules.automatedWarehouse.entity.WmsTransportTask;
* 自动化任务专用服务类
*/
public interface AutoTaskService {
void autoNeedPalletTask(NeedPalletTask inData);
/**
* @Description 栈板万能预约任务 - rqrq
* @param inData 预约任务参数
* @return 创建的运输任务编号
* @author rqrq
*/
String autoNeedPalletTask(NeedPalletTask inData);
void processNeedPalletTask(WmsTransportTask wmsTransportTask);
void scheduleDeliveryTask(ScheduleDeliveryTask inData);
/**
* @Description 调度发货任务 - rqrq
* @param inData 发货任务参数
* @return 创建的运输任务编号
* @author rqrq
*/
String scheduleDeliveryTask(ScheduleDeliveryTask inData);
/**
* @Description 处理预约运输栈板任务 - rqrq

32
src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AutoTaskServiceImpl.java

@ -41,10 +41,15 @@ public class AutoTaskServiceImpl implements AutoTaskService {
@Autowired
private AgvTaskMapper agvTaskMapper; // 添加AgvTaskMapper注入 - rqrq
//栈板万能预约任务
/**
* @Description 栈板万能预约任务 - rqrq
* @param inData 预约任务参数
* @return 创建的运输任务编号
* @author rqrq
*/
@Override
@Transactional
public void autoNeedPalletTask(NeedPalletTask inData){
public String autoNeedPalletTask(NeedPalletTask inData){
if(inData==null){
throw new RuntimeException("参数验证失败:参数不能为空");
@ -123,18 +128,23 @@ public class AutoTaskServiceImpl implements AutoTaskService {
wcsIntegrationMapper.insertTransportTask(task);
// wcsIntegrationMapper.insertWmsTransportTaskDetail(detail);
// 返回创建的任务编号 - rqrq
System.out.println("创建预约取托盘任务成功 - rqrq,taskNo=" + task.getTaskNo());
return task.getTaskNo();
}
/**
* @Description 调度发货任务 - rqrq
* @Title scheduleDeliveryTask
* @param inData 发货任务参数
* @return 创建的运输任务编号
* @author rqrq
* @date 2025/10/18
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void scheduleDeliveryTask(ScheduleDeliveryTask inData){
public String scheduleDeliveryTask(ScheduleDeliveryTask inData){
System.out.println("开始调度发货任务 - rqrq");
// 1. 参数校验 - rqrq
@ -147,15 +157,17 @@ public class AutoTaskServiceImpl implements AutoTaskService {
String targetLocation = determineTargetLocation(inData);
// 4. 判断是创建预约任务还是直接创建运输任务 - rqrq
String taskNo;
if(targetLocation == null){
// 没有空闲点位创建预约任务 - rqrq
createScheduledTask(inData);
taskNo = createScheduledTask(inData);
} else {
// 有空闲点位直接创建运输任务 - rqrq
createImmediateTransportTask(inData, targetLocation);
taskNo = createImmediateTransportTask(inData, targetLocation);
}
System.out.println("调度发货任务完成 - rqrq");
System.out.println("调度发货任务完成 - rqrq,taskNo=" + taskNo);
return taskNo;
}
/**
@ -483,10 +495,11 @@ public class AutoTaskServiceImpl implements AutoTaskService {
* @Description 创建预约任务 - rqrq
* @Title createScheduledTask
* @param inData 发货任务参数
* @return 创建的任务编号
* @author rqrq
* @date 2025/10/18
*/
private void createScheduledTask(ScheduleDeliveryTask inData){
private String createScheduledTask(ScheduleDeliveryTask inData){
System.out.println("开始创建预约运输任务 - rqrq");
// 生成运输任务编号 - rqrq
@ -570,6 +583,7 @@ public class AutoTaskServiceImpl implements AutoTaskService {
// 预约任务不创建明细记录 - rqrq
System.out.println("预约运输任务创建完成 - rqrq,taskNo=" + task.getTaskNo());
return task.getTaskNo();
}
/**
@ -577,10 +591,11 @@ public class AutoTaskServiceImpl implements AutoTaskService {
* @Title createImmediateTransportTask
* @param inData 发货任务参数
* @param targetLocation 目标位置
* @return 创建的任务编号
* @author rqrq
* @date 2025/10/18
*/
private void createImmediateTransportTask(ScheduleDeliveryTask inData, String targetLocation){
private String createImmediateTransportTask(ScheduleDeliveryTask inData, String targetLocation){
System.out.println("开始创建立即执行运输任务 - rqrq,targetLocation=" + targetLocation);
// 生成运输任务编号 - rqrq
@ -636,6 +651,7 @@ public class AutoTaskServiceImpl implements AutoTaskService {
wcsIntegrationMapper.insertWmsTransportTaskDetail(detail);
System.out.println("立即执行运输任务创建完成 - rqrq,taskNo=" + task.getTaskNo());
return task.getTaskNo();
}

28
src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsIntegrationServiceImpl.java

@ -2355,10 +2355,8 @@ public class WcsIntegrationServiceImpl implements WcsIntegrationService {
needPalletTask.setStationCode(finalTargetStation);
needPalletTask.setUsername(username);
autoTaskService.autoNeedPalletTask(needPalletTask);
System.out.println("预约取盘任务创建成功 - rqrq");
System.out.println("Call料到指定位置完成 - rqrq");
String transportTaskNo = autoTaskService.autoNeedPalletTask(needPalletTask);
System.out.println("预约取盘任务创建成功 - rqrq,transportTaskNo=" + transportTaskNo);
// 3. 第一步执行原来的Call料方法callPalletFromWcsNew- rqrq
System.out.println("开始执行Call料 - rqrq");
@ -2389,30 +2387,30 @@ public class WcsIntegrationServiceImpl implements WcsIntegrationService {
System.out.println("Call料成功 - rqrq");
// 5. 第三步查询Call料后生成的OrderTask并更新TransportTask的来源单据信息 - rqrq
// 5. 第三步查询Call料后生成的OrderTask并更新TransportTask的来源单据信息优化版本- rqrq
System.out.println("开始关联OrderTask和TransportTask - rqrq");
try {
// 查询最新的OrderTask手工Call料生成的- rqrq
// 查询最新的OrderTask立库取货生成的agvFlag='Y'时sourceType为'立库取货'- rqrq
WmsOrderTask latestOrderTask = wcsIntegrationMapper.findLatestOrderTaskByPallet(
site,
palletId,
"手工Call料"
"立库取货"
);
if (latestOrderTask != null) {
System.out.println("查询到OrderTask - rqrq,taskNo=" + latestOrderTask.getTaskNo() +
System.out.println("查询到OrderTask - rqrq,orderTaskNo=" + latestOrderTask.getTaskNo() +
", itemNo=" + latestOrderTask.getItemNo());
// 更新TransportTask的source_bill_no和source_line_id - rqrq
wcsIntegrationMapper.updateTransportTaskSourceInfo(
site,
palletId,
// 优化直接使用返回的transportTaskNo更新避免通过site+palletId查询 - rqrq
wcsIntegrationMapper.updateTransportTaskSourceInfoByTaskNo(
transportTaskNo,
latestOrderTask.getTaskNo(),
latestOrderTask.getItemNo()
);
System.out.println("已更新TransportTask的来源单据信息 - rqrq,sourceBillNo=" +
latestOrderTask.getTaskNo() + ", sourceLineId=" + latestOrderTask.getItemNo());
System.out.println("已更新TransportTask的来源单据信息 - rqrq,transportTaskNo=" + transportTaskNo +
", sourceBillNo=" + latestOrderTask.getTaskNo() +
", sourceLineId=" + latestOrderTask.getItemNo());
} else {
System.out.println("警告:未找到对应的OrderTask - rqrq");
}
@ -2421,7 +2419,7 @@ public class WcsIntegrationServiceImpl implements WcsIntegrationService {
System.out.println("关联OrderTask和TransportTask失败 - rqrq:" + e.getMessage());
}
System.out.println("Call料到指定位置完成 - rqrq");
System.out.println("Call料到指定位置完成 - rqrq,transportTaskNo=" + transportTaskNo);
}

9
src/main/resources/mapper/automatedWarehouse/WcsIntegrationMapper.xml

@ -1572,6 +1572,15 @@
)
</update>
<!-- rqrq - 根据任务编号更新运输任务的来源单据信息(优化版本)-->
<update id="updateTransportTaskSourceInfoByTaskNo">
UPDATE wms_transport_task
SET source_bill_no = #{sourceBillNo},
source_line_id = #{sourceLineId},
updated_time = GETDATE()
WHERE task_no = #{taskNo}
</update>
<!-- ==================== 调度发货任务相关SQL - rqrq ==================== -->
<!-- rqrq - 根据栈板编码获取栈板信息 -->

Loading…
Cancel
Save