Browse Source

生产环境换库

master
常熟吴彦祖 2 months ago
parent
commit
f503b6a642
  1. 17
      src/main/java/com/gaotao/modules/automatedWarehouse/mapper/WcsIntegrationMapper.java
  2. 24
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AutoTaskServiceImpl.java
  3. 4
      src/main/resources/application.yml
  4. 12
      src/main/resources/mapper/automatedWarehouse/WcsIntegrationMapper.xml

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

@ -203,6 +203,14 @@ public interface WcsIntegrationMapper {
*/
void insertTransportTask(WmsTransportTask task);
void insertOrderTask(WmsOrderTask task);
/**
* @Description 删除运输任务根据taskNo- rqrq
* @param taskNo 任务编号
* @author rqrq
* @date 2025/11/17
*/
void deleteTransportTask(@Param("taskNo") String taskNo);
/**
* 检查站点是否有栈板 - AI制作
@ -530,6 +538,15 @@ public interface WcsIntegrationMapper {
void updateWTTToLocationForId(@Param("site") String site,@Param("taskNo") String taskNo, @Param("toLocation") String toLocation);
/**
* @Description 更新运输任务的目标区域 - rqrq
* @param taskNo 任务编号
* @param toArea 目标区域
* @author rqrq
* @date 2025/11/17
*/
void updateTransportTaskToArea(@Param("site") String site,@Param("taskNo") String taskNo, @Param("toArea") String toArea);
/**
* 获取AGV站点状态 - AI制作
*/

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

@ -531,9 +531,27 @@ public class AutoTaskServiceImpl implements AutoTaskService {
);
if(lockResult == 0){
// 乐观锁更新失败说明站点已被其他线程占用 - rqrq
System.out.println("警告:乐观锁更新目标站点状态失败,站点可能已被占用 - rqrq");
// 注意这里不抛出异常允许创建预约任务但目标站点可能不是空闲状态 - rqrq
// 乐观锁更新失败说明站点已被其他线程占用自动改为区域预约 - rqrq
System.out.println("警告:乐观锁更新目标站点状态失败,站点已被占用,自动改为区域预约 - rqrq");
// 查询目标站点的区域信息 - rqrq
AgvStation targetStation = wcsIntegrationMapper.getAgvStation(inData.getToLocation());
if(targetStation != null && StringUtils.hasText(targetStation.getAreaType())){
String areaType = targetStation.getAreaType();
System.out.println("查询到目标站点所属区域 - rqrq,areaType=" + areaType);
// 更新任务记录的to_location为nullto_area为区域代码 - rqrq
wcsIntegrationMapper.updateWTTToLocationForId(inData.getSite(), task.getTaskNo(), null);
wcsIntegrationMapper.updateTransportTaskToArea(inData.getSite(),task.getTaskNo(), areaType);
System.out.println("已自动改为区域预约 - rqrq,toArea=" + areaType);
} else {
// 查询不到区域信息回滚并抛出异常 - rqrq
System.out.println("错误:无法获取目标站点的区域信息 - rqrq");
wcsIntegrationMapper.updateAgvStationStatus(inData.getFromLocation(), 1, "有货");
wcsIntegrationMapper.deleteTransportTask(task.getTaskNo());
throw new RuntimeException("目标站点【" + inData.getToLocation() + "】已被占用且无法获取区域信息,无法创建预约任务");
}
} else {
System.out.println("成功更新目标站点状态为待放货 - rqrq");
}

4
src/main/resources/application.yml

@ -114,8 +114,8 @@ custom:
wcs-board-api: 'http://172.28.1.18:7003/api/'
rfid-url: 'http://172.28.1.XX:7003/api/'
# 分切区配置 - rqrq
cutting-area-warehouse: 'Z999' # 分切区仓库编码
cutting-area-location: '' # 分切区库位编码(为空表示不限定库位)
cutting-area-warehouse: 'W04' # 分切区仓库编码
cutting-area-location: 'RM1DA0601' # 分切区库位编码(为空表示不限定库位)
# WMS消息队列配置
wms:

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

@ -456,6 +456,11 @@
#{createdBy}, #{createdTime}, #{updatedTime}, N'未执行', #{palletType},#{wcsTaskId}
)
</insert>
<!-- rqrq - 删除运输任务 -->
<delete id="deleteTransportTask">
DELETE FROM wms_transport_task WHERE task_no = #{taskNo}
</delete>
<insert id="insertOrderTask" useGeneratedKeys="true" keyProperty="id">
INSERT INTO wms_order_task (
@ -1062,6 +1067,13 @@
<update id="updateWTTToLocationForId">
update wms_transport_task set to_location=#{toLocation} where site=#{site} and task_no=#{taskNo}
</update>
<!-- rqrq - 更新运输任务的目标区域 -->
<update id="updateTransportTaskToArea">
UPDATE wms_transport_task
SET to_area = #{toArea}
WHERE task_no = #{taskNo} and site=#{site}
</update>
<!-- 获取AGV站点状态 - AI制作 -->
<select id="getAgvStationStatus" resultType="Integer">

Loading…
Cancel
Save