Browse Source

接口bug

clodop
常熟吴彦祖 1 month ago
parent
commit
000a0f0cac
  1. 12
      src/main/java/com/gaotao/modules/autoWareHourceHaian/api/entity/HaiAnOutsideTransferTaskRequest.java
  2. 2
      src/main/java/com/gaotao/modules/autoWareHourceHaian/api/service/impl/HaiAnWcsApiServiceImpl.java
  3. 25
      src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnCacheTransportDispatchServiceImpl.java
  4. 9
      src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnPdaAutoWarehouseServiceImpl.java

12
src/main/java/com/gaotao/modules/autoWareHourceHaian/api/entity/HaiAnOutsideTransferTaskRequest.java

@ -4,7 +4,7 @@ import lombok.Data;
/**
* @author rqrq
* @Description 海安库外搬运任务请求实体,对应POST /api/wms/outside-transfer-task - rqrq
* @Description 海安库外搬运任务请求实体,对应POST /api/wms/external-transfer-task - rqrq
*/
@Data
public class HaiAnOutsideTransferTaskRequest {
@ -24,6 +24,16 @@ public class HaiAnOutsideTransferTaskRequest {
*/
private String palletBarcode;
/**
* 栈板类型,对应立库报文 palletType。来源 haian_pallet.pallet_type 关联 haian_pallet_type.wcs_pallet_type,口径与组盘一致:0特殊 1混装 2四宫格 3九宫格 4一宫格。不落库,仅下发 WCS。 - rqrq
*/
private Integer palletType;
/**
* 底托类型,对应立库报文 basePalletType。来源 haian_pallet_type.wcs_base_pallet_type,口径与组盘一致:1平托 2围框 3钢底托。不落库,仅下发 WCS。 - rqrq
*/
private Integer basePalletType;
/**
* 路线配置ID(可选) - rqrq
*/

2
src/main/java/com/gaotao/modules/autoWareHourceHaian/api/service/impl/HaiAnWcsApiServiceImpl.java

@ -547,6 +547,8 @@ public class HaiAnWcsApiServiceImpl implements HaiAnWcsApiService {
if (!StringUtils.hasText(inData.getSite())
|| !StringUtils.hasText(inData.getTaskId())
|| !StringUtils.hasText(inData.getPalletBarcode())
|| inData.getPalletType() == null
|| inData.getBasePalletType() == null
|| !StringUtils.hasText(inData.getOriStation())
|| !StringUtils.hasText(inData.getToArea())) {
throw new RuntimeException("下达库外搬运任务参数不完整");

25
src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnCacheTransportDispatchServiceImpl.java

@ -6,6 +6,7 @@ import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnGroundLocationQuer
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnOutsideTransferTaskRequest;
import com.gaotao.modules.autoWareHourceHaian.api.service.HaiAnWcsApiService;
import com.gaotao.modules.autoWareHourceHaian.entity.HaiAnWmsOrderTaskData;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletInfoResult;
import com.gaotao.modules.autoWareHourceHaian.entity.HaiAnWmsOrderTaskDetailData;
import com.gaotao.modules.autoWareHourceHaian.entity.cache.HaiAnCacheArea;
import com.gaotao.modules.autoWareHourceHaian.entity.cache.HaiAnCachePallet;
@ -346,10 +347,17 @@ public class HaiAnCacheTransportDispatchServiceImpl implements HaiAnCacheTranspo
detail.setErrorMsg(null);
// 同事务保存明细和主单调度状态,任一失败整体回滚。- rqrq
persist(detail);
// 齐套运输同样走库外搬运,托盘类型必须和组盘一致,从 haian_pallet_type 取出再下发 - rqrq
HaiAnPalletInfoResult palletTypeInfo = haiAnPdaAutoWarehouseMapper.getPalletInfoWithTypeDetails(site, detail.getPalletId());
if (palletTypeInfo == null) {
throw new RuntimeException("栈板不存在,无法解析库外搬运托盘类型:" + detail.getPalletId());
}
HaiAnOutsideTransferTaskRequest transferRequest = new HaiAnOutsideTransferTaskRequest();
transferRequest.setSite(site);
transferRequest.setTaskId(detail.getTaskNo());
transferRequest.setPalletBarcode(detail.getPalletId());
transferRequest.setPalletType(parseWcsInteger(palletTypeInfo.getWcsPalletType()));
transferRequest.setBasePalletType(parseWcsInteger(palletTypeInfo.getWcsBasePalletType()));
transferRequest.setOriStation(pallet.getLocationCode());
transferRequest.setToArea(target.getWcsAreaCode());
transferRequest.setToStation(selected);
@ -592,6 +600,23 @@ public class HaiAnCacheTransportDispatchServiceImpl implements HaiAnCacheTranspo
return areas.stream().anyMatch(areaInfo -> "Y".equals(areaInfo.getCacheAreaFlag()) && Objects.equals(areaInfo.getAreaId(), area));
}
/**
* @author rqrq
* @Description 把 haian_pallet_type 的 WCS 类型转成整数。空值或非数字回落 1,与组盘报文口径一致,避免库外搬运缺 palletType/basePalletType。- rqrq
* @param rawValue haian_pallet_type.wcs_pallet_type 或 wcs_base_pallet_type - rqrq
* @return 立库整数类型,解析失败为 1 - rqrq
*/
private Integer parseWcsInteger(String rawValue) {
if (!StringUtils.hasText(rawValue)) {
return 1;
}
try {
return Integer.parseInt(rawValue.trim());
} catch (NumberFormatException ignored) {
return 1;
}
}
/**
* @author rqrq
* @Description 限制数据库错误描述长度,保留托盘/接口错误信息。- rqrq

9
src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnPdaAutoWarehouseServiceImpl.java

@ -2210,15 +2210,22 @@ public class HaiAnPdaAutoWarehouseServiceImpl implements HaiAnPdaAutoWarehouseSe
}
// 4. 海安不对接AGV任务,仅通过WCS库外搬运接口下达运输动作(新协议:oriStation/toArea/toStation);HTTP 短路由接口层处理 - rqrq
// 与组盘同一口径取立库托盘类型:按 site+栈板号关联 haian_pallet_type,解析失败回落 1,避免报文缺 palletType/basePalletType - rqrq
HaiAnPalletInfoResult palletTypeInfo = haiAnPdaAutoWarehouseMapper.getPalletInfoWithTypeDetails(site, palletId);
if (palletTypeInfo == null) {
throw new RuntimeException("栈板不存在,无法解析库外搬运托盘类型");
}
HaiAnOutsideTransferTaskRequest outsideTransferTaskRequest = new HaiAnOutsideTransferTaskRequest();
outsideTransferTaskRequest.setSite(site);
outsideTransferTaskRequest.setTaskId(taskNo);
outsideTransferTaskRequest.setPalletBarcode(palletId);
outsideTransferTaskRequest.setPalletType(parseIntegerOrDefault(palletTypeInfo.getWcsPalletType(), 1));
outsideTransferTaskRequest.setBasePalletType(parseIntegerOrDefault(palletTypeInfo.getWcsBasePalletType(), 1));
outsideTransferTaskRequest.setConfigId(StringUtils.hasText(request.getConfigId()) ? request.getConfigId().trim() : null);
outsideTransferTaskRequest.setOriStation(startStation.trim());
outsideTransferTaskRequest.setToArea(wcsTargetAreaCode);
outsideTransferTaskRequest.setToStation(StringUtils.hasText(request.getTargetStation()) ? request.getTargetStation().trim() : targetStation.trim());
// 调用库外搬运接口:入参taskId+oriStation+toArea(wcs_area_code);HTTP 短路由接口层处理,失败回滚 WOT 与 calling_flag - rqrq
// 调用库外搬运接口:入参taskId+palletType+basePalletType+oriStation+toArea(wcs_area_code);HTTP 短路由接口层处理,失败回滚 WOT 与 calling_flag - rqrq
haiAnWcsApiService.pushOutsideTransferTask(outsideTransferTaskRequest);
}

Loading…
Cancel
Save