|
|
@ -10,6 +10,7 @@ import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnCheckInventoryExis |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnDirectMaterialCallRequest; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnDirectMaterialCallRequest; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnGroundLocationQueryRequest; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnGroundLocationQueryRequest; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnGroundLocationStatusUpdateRequest; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnGroundLocationStatusUpdateRequest; |
|
|
|
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnErrorPalletRefreshRequest; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnOutsideTransferTaskRequest; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnOutsideTransferTaskRequest; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnSpecialPalletTask; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnSpecialPalletTask; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.service.HaiAnWcsApiService; |
|
|
import com.gaotao.modules.autoWareHourceHaian.api.service.HaiAnWcsApiService; |
|
|
@ -32,6 +33,7 @@ import com.gaotao.modules.autoWareHourceHaian.entity.HaiAnPalletTransferEnqueueR |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletMergeResult; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletMergeResult; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletRelocateMismatchRow; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletRelocateMismatchRow; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletRelocateScanResult; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletRelocateScanResult; |
|
|
|
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnForceRemovePalletResult; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletSpecialEditResult; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletSpecialEditResult; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletReservedLabelRow; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletReservedLabelRow; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletReservedResult; |
|
|
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletReservedResult; |
|
|
@ -3894,11 +3896,11 @@ public class HaiAnPdaAutoWarehouseServiceImpl implements HaiAnPdaAutoWarehouseSe |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 强制置空托盘清空区域、位置、货架点位和占用备注,并把calling_flag置N;立库货架占用或审计失败时事务回滚 - rqrq |
|
|
|
|
|
|
|
|
* 强制置空托盘清空区域、位置、货架点位和占用备注,并把calling_flag置N;立库货架占用或审计失败时事务回滚。本地完成后先把明细wcs_flag 0改1,再调用立库重置,同步失败只记结果不回滚。 - rqrq |
|
|
*/ |
|
|
*/ |
|
|
@Override |
|
|
@Override |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
public void forceRemovePalletSpecialEdit(HaiAnPdaRequest request) { |
|
|
|
|
|
|
|
|
public HaiAnForceRemovePalletResult forceRemovePalletSpecialEdit(HaiAnPdaRequest request) { |
|
|
String site = requireSite(request); |
|
|
String site = requireSite(request); |
|
|
guardSite54(site); |
|
|
guardSite54(site); |
|
|
String palletId = normalizePalletId(request.getPalletId()); |
|
|
String palletId = normalizePalletId(request.getPalletId()); |
|
|
@ -3944,6 +3946,32 @@ public class HaiAnPdaAutoWarehouseServiceImpl implements HaiAnPdaAutoWarehouseSe |
|
|
throw new RuntimeException("强制置空托盘状态日志写入失败,操作已回滚"); |
|
|
throw new RuntimeException("强制置空托盘状态日志写入失败,操作已回滚"); |
|
|
} |
|
|
} |
|
|
log.info("海安托盘强制置空成功:site={}, palletId={}", site, palletId); |
|
|
log.info("海安托盘强制置空成功:site={}, palletId={}", site, palletId); |
|
|
|
|
|
// 立库重置前先把本托已提交明细改回待推送;只改wcs_flag=0,没有明细时0行也算完成 - rqrq |
|
|
|
|
|
haiAnPdaAutoWarehouseMapper.reUpdatePalletDetailWcsFlag(site, palletId); |
|
|
|
|
|
// 本地置空已经完成,再用置空前的地面位置通知立库双方重置;失败只回传同步结果,禁止把已置空的托盘回滚 - rqrq |
|
|
|
|
|
HaiAnForceRemovePalletResult result = new HaiAnForceRemovePalletResult(); |
|
|
|
|
|
result.setWcsSyncSuccess(syncErrorPalletRefreshAfterForceRemove(site, palletId, pallet.getLocationCode())); |
|
|
|
|
|
return result; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @author rqrq |
|
|
|
|
|
* @Description 强制置空后调用立库errorPalletRefresh;任何失败都视为同步失败并返回false,不向上抛,避免本地置空回滚 - rqrq |
|
|
|
|
|
*/ |
|
|
|
|
|
private boolean syncErrorPalletRefreshAfterForceRemove(String site, String palletId, String locationCode) { |
|
|
|
|
|
try { |
|
|
|
|
|
HaiAnErrorPalletRefreshRequest refreshRequest = new HaiAnErrorPalletRefreshRequest(); |
|
|
|
|
|
refreshRequest.setSite(site); |
|
|
|
|
|
refreshRequest.setPalletId(palletId); |
|
|
|
|
|
refreshRequest.setLocationCode(locationCode); |
|
|
|
|
|
haiAnWcsApiService.errorPalletRefresh(refreshRequest); |
|
|
|
|
|
log.info("强制置空后立库同步成功:site={}, palletId={}, locationCode={} - rqrq", site, palletId, locationCode); |
|
|
|
|
|
return true; |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
log.error("强制置空后立库同步失败,本地置空不回滚:site={}, palletId={}, locationCode={}, err={} - rqrq", |
|
|
|
|
|
site, palletId, locationCode, e.getMessage()); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|