Browse Source

显示九宫格

master
常熟吴彦祖 9 months ago
parent
commit
ece7b1d3e4
  1. 27
      src/main/java/com/gaotao/modules/api/service/impl/WmsMessageServiceImpl.java
  2. 18
      src/main/java/com/gaotao/modules/automatedWarehouse/entity/BufferZoneConfig.java
  3. 7
      src/main/java/com/gaotao/modules/automatedWarehouse/mapper/WcsIntegrationMapper.java
  4. 2
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsIntegrationServiceImpl.java
  5. 37
      src/main/resources/mapper/automatedWarehouse/WcsIntegrationMapper.xml

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

@ -4,11 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.gaotao.modules.api.entity.*; import com.gaotao.modules.api.entity.*;
import com.gaotao.modules.api.service.InterfaceCallLogService; import com.gaotao.modules.api.service.InterfaceCallLogService;
import com.gaotao.modules.api.service.WmsMessageService; import com.gaotao.modules.api.service.WmsMessageService;
import com.gaotao.modules.automatedWarehouse.entity.AgvStation;
import com.gaotao.modules.automatedWarehouse.entity.BufferZoneConfig;
import com.gaotao.modules.automatedWarehouse.entity.PalletDetail;
import com.gaotao.modules.automatedWarehouse.entity.WcsCallbackTask;
import com.gaotao.modules.automatedWarehouse.entity.WmsOrderTask;
import com.gaotao.modules.automatedWarehouse.entity.*;
import com.gaotao.modules.automatedWarehouse.mapper.WcsIntegrationMapper; import com.gaotao.modules.automatedWarehouse.mapper.WcsIntegrationMapper;
import com.gaotao.modules.automatedWarehouse.service.WcsIntegrationService; import com.gaotao.modules.automatedWarehouse.service.WcsIntegrationService;
import com.gaotao.modules.other.entity.InventoryMoveRequestDto; import com.gaotao.modules.other.entity.InventoryMoveRequestDto;
@ -147,7 +143,7 @@ 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());
} else { } else {
throw new RuntimeException("不支持的事务类型:" + inData.getTransTypeDesc()); throw new RuntimeException("不支持的事务类型:" + inData.getTransTypeDesc());
} }
@ -173,6 +169,13 @@ public class WmsMessageServiceImpl implements WmsMessageService {
// 如果是入库同时更新对应的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");
}
// 如果是入库同时更新对应的wms_order_task状态
if ("出库".equals(inData.getTransTypeDesc())) {
updateOrderTaskStatusForOutCallback(inData);
wcsIntegrationMapper.reUpdatePalletDetailWcsFlag(inData.getSite(),inData.getPalletId());
} }
log.info("WCS回调数据已保存:栈板={}, 任务类型={}, 目标位置={}-{}", log.info("WCS回调数据已保存:栈板={}, 任务类型={}, 目标位置={}-{}",
@ -775,7 +778,19 @@ public class WmsMessageServiceImpl implements WmsMessageService {
private void updateMessageStatus(String messageId, String status) { private void updateMessageStatus(String messageId, String status) {
saveMessageStatus(messageId, status); saveMessageStatus(messageId, status);
} }
private void updateOrderTaskStatusForOutCallback(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());
}
}
}
/** /**
* 收到入库回调时更新订单任务状态 * 收到入库回调时更新订单任务状态
* @param inData WCS回调数据 * @param inData WCS回调数据

18
src/main/java/com/gaotao/modules/automatedWarehouse/entity/BufferZoneConfig.java

@ -5,16 +5,19 @@ package com.gaotao.modules.automatedWarehouse.entity;
* 用于定义缓冲区专用的仓库和库位 * 用于定义缓冲区专用的仓库和库位
*/ */
public enum BufferZoneConfig { public enum BufferZoneConfig {
/** /**
* 缓冲区仓库ID
* 立库过渡站点站点ID
*/
BUFFER_Station_ID("Virtual_AS"),
/**
* 立库过渡站点仓库ID
*/ */
BUFFER_WAREHOUSE_ID("HCQ"),
BUFFER_WAREHOUSE_ID("W01"),
/** /**
* 缓冲区库位ID
* 立库过渡站点库位ID
*/ */
BUFFER_LOCATION_ID("hcq");
BUFFER_LOCATION_ID("AS");
private final String value; private final String value;
@ -40,6 +43,11 @@ public enum BufferZoneConfig {
return BUFFER_LOCATION_ID.getValue().equals(locationId); return BUFFER_LOCATION_ID.getValue().equals(locationId);
} }
public static boolean isBufferStation(String station) {
return BUFFER_Station_ID.getValue().equals(station);
}
/** /**
* 检查是否为缓冲区标签 * 检查是否为缓冲区标签
*/ */

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

@ -189,6 +189,7 @@ public interface WcsIntegrationMapper {
* 更新栈板明细的wcs_flag为1 - AI制作 * 更新栈板明细的wcs_flag为1 - AI制作
*/ */
void updatePalletDetailWcsFlag(@Param("site") String site, @Param("palletId") String palletId); void updatePalletDetailWcsFlag(@Param("site") String site, @Param("palletId") String palletId);
void reUpdatePalletDetailWcsFlag(@Param("site") String site, @Param("palletId") String palletId);
List<PalletDetailData> getPalletDetailsNewDetail(@Param("site") String site, @Param("palletId") String palletId); List<PalletDetailData> getPalletDetailsNewDetail(@Param("site") String site, @Param("palletId") String palletId);
@ -274,7 +275,9 @@ public interface WcsIntegrationMapper {
List<WmsOrderTask> findOrderTasksByTaskNo(@Param("site") String site, List<WmsOrderTask> findOrderTasksByTaskNo(@Param("site") String site,
@Param("taskNo") String taskNo); @Param("taskNo") String taskNo);
WmsOrderTask findOrderTasksByTaskNoItem(@Param("site") String site,
@Param("taskNo") String taskNo,
@Param("itemNo") Integer itemNo);
/** /**
* 更新订单任务状态和WMS状态 - AI制作 * 更新订单任务状态和WMS状态 - AI制作
@ -282,11 +285,11 @@ public interface WcsIntegrationMapper {
void updateOrderTaskStatusAndWmsStatus(@Param("id") Long id, void updateOrderTaskStatusAndWmsStatus(@Param("id") Long id,
@Param("status") String status, @Param("status") String status,
@Param("wmsStatus") String wmsStatus); @Param("wmsStatus") String wmsStatus);
/** /**
* 根据任务号更新订单任务明细状态 - AI制作 * 根据任务号更新订单任务明细状态 - AI制作
*/ */
void updateOrderTaskDetailStatusByTaskNo(@Param("taskNo") String taskNo, @Param("status") String status, @Param("wmsStatus") String wmsStatus); void updateOrderTaskDetailStatusByTaskNo(@Param("taskNo") String taskNo, @Param("status") String status, @Param("wmsStatus") String wmsStatus);
void updateOrderTaskDetailStatusByTaskNoPalletId(@Param("site") String site,@Param("taskNo") String taskNo, @Param("status") String status, @Param("wmsStatus") String wmsStatus, @Param("palletId") String palletId);
/** /**
* 查询立库调栈板出库的订单任务列表 - AI制作 * 查询立库调栈板出库的订单任务列表 - AI制作

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

@ -58,7 +58,7 @@ public class WcsIntegrationServiceImpl implements WcsIntegrationService {
// 再次检查栈板是否已经被调用 // 再次检查栈板是否已经被调用
String callingFlag = wcsIntegrationMapper.checkPalletCallingFlag(data.get(i).getSite(), data.get(i).getPalletId()); String callingFlag = wcsIntegrationMapper.checkPalletCallingFlag(data.get(i).getSite(), data.get(i).getPalletId());
if ("Y".equals(callingFlag)) { if ("Y".equals(callingFlag)) {
throw new RuntimeException(data.get(i).getPalletId() + "栈板正在被调用中,请选择其他栈板");
throw new RuntimeException(data.get(i).getPalletId() + "栈板当前无法被调用!");
} }
} }

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

@ -432,7 +432,13 @@
AND pallet_id = #{palletId} AND pallet_id = #{palletId}
AND wcs_flag = 1 AND wcs_flag = 1
</update> </update>
<update id="reUpdatePalletDetailWcsFlag">
UPDATE pallet_detail
SET wcs_flag = 1
WHERE site = #{site}
AND pallet_id = #{palletId}
AND wcs_flag = 0
</update>
<select id="getPalletDetailsNewDetail" resultType="PalletDetailData"> <select id="getPalletDetailsNewDetail" resultType="PalletDetailData">
select a.site,a.pallet_id,a.[position],a.layer,a.serial_no,a.part_no,a.create_date,a.create_by,a.wcs_flag, select a.site,a.pallet_id,a.[position],a.layer,a.serial_no,a.part_no,a.create_date,a.create_by,a.wcs_flag,
@ -604,10 +610,16 @@
updated_time as updatedTime, wcs_task_id as wcsTaskId, finish_qty as finishQty, updated_time as updatedTime, wcs_task_id as wcsTaskId, finish_qty as finishQty,
wms_status as wmsStatus wms_status as wmsStatus
from wms_order_task from wms_order_task
where site = #{site}
<where>
and site = #{site}
and pallet_id = #{palletId} and pallet_id = #{palletId}
<if test="sourceType != null and sourceType != ''">
and source_type = #{sourceType} and source_type = #{sourceType}
</if>
and status = #{status} and status = #{status}
</where>
order by created_time desc order by created_time desc
</select> </select>
<select id="findOrderTasksByTaskNo" resultType="WmsOrderTask"> <select id="findOrderTasksByTaskNo" resultType="WmsOrderTask">
@ -625,6 +637,22 @@
and task_no=#{taskNo} and task_no=#{taskNo}
order by created_time desc order by created_time desc
</select> </select>
<select id="findOrderTasksByTaskNoItem" resultType="WmsOrderTask">
select id, site, task_no as taskNo, item_no as itemNo, source_type as sourceType,
source_bill_no as sourceBillNo, source_line_id as sourceLineId, part_no as partNo,
qty, batch_no as batchNo, serial_no as serialNo, from_location as fromLocation,
to_location as toLocation, pallet_id as palletId, agv_code as agvCode,
priority, status, wms_send_time as wmsSendTime, wcs_receive_time as wcsReceiveTime,
start_time as startTime, complete_time as completeTime, error_code as errorCode,
error_msg as errorMsg, created_by as createdBy, created_time as createdTime,
updated_time as updatedTime, wcs_task_id as wcsTaskId, finish_qty as finishQty,
wms_status as wmsStatus
from wms_order_task
where site = #{site}
and task_no=#{taskNo}
and item_no=#{itemNo}
order by created_time desc
</select>
<!-- 更新订单任务状态和WMS状态 - AI制作 --> <!-- 更新订单任务状态和WMS状态 - AI制作 -->
<update id="updateOrderTaskStatusAndWmsStatus"> <update id="updateOrderTaskStatusAndWmsStatus">
@ -639,6 +667,11 @@
set status = #{status} ,wms_status = #{wmsStatus} set status = #{status} ,wms_status = #{wmsStatus}
where task_no = #{taskNo} where task_no = #{taskNo}
</update> </update>
<update id="updateOrderTaskDetailStatusByTaskNoPalletId">
update wms_order_task_detail
set status = #{status} ,wms_status = #{wmsStatus}
where task_no = #{taskNo} and site=#{site} and pallet_id=#{palletId}
</update>
<!-- 查询立库调栈板出库的订单任务列表 - AI制作 --> <!-- 查询立库调栈板出库的订单任务列表 - AI制作 -->
<select id="getWcsOrderTaskListForPalletOut" resultType="WmsOrderTask"> <select id="getWcsOrderTaskListForPalletOut" resultType="WmsOrderTask">

Loading…
Cancel
Save