| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | @Service |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public class LGoodsUserRecordCoreService { |
| | | |
| | | @Resource |
| | | private GoodsBaseServiceImpl goodsBaseService; |
| | | @Resource |
| | |
| | | Long inWarehouseId = whFormTransfer.getInWarehouseId(); |
| | | // 将所有物品设置为未分发 |
| | | List<Long> srappedGoodsIds = lWhGoodsService.queryScrappedGoodsIds(inWarehouseType, inWarehouseId, transBusinessId, null, null, null, null); |
| | | lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, (short) 3); |
| | | lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, 3); |
| | | // 删除该调拨单旧有使用记录 |
| | | lGoodsUserRecordService.delete(new LGoodsUserRecord(), "where TRANS_BUSINESS_ID =" + transBusinessId, new HashMap<>()); |
| | | // 设置旧的LAST_RECORD= 0 |
| | | lGoodsUserRecordService.updSetNotLast(srappedGoodsIds); |
| | | //插入新的 |
| | |
| | | //通过LockManage获得锁 |
| | | Object warehouseModelLockObj = LockManage.acquireLock(inWarehouseType, inWarehouseId, baseGoodsModelsId); |
| | | synchronized (warehouseModelLockObj) { |
| | | List<Long> toUserGoodsIds = lWhGoodsService.queryScrappedGoodsIds(inWarehouseType, inWarehouseId, transBusinessId, null, baseGoodsModelsId, (short) 1, goodsNum); |
| | | List<Long> toUserGoodsIds = lWhGoodsService.queryScrappedGoodsIds(inWarehouseType, inWarehouseId, transBusinessId, null, baseGoodsModelsId, |
| | | (short) 1, goodsNum); |
| | | if (CollectionUtils.isEmpty(toUserGoodsIds)) { |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | throw new RuntimeException("操作失败!型号数量不足"); |
| | |
| | | tmp.setLastRecord(1); |
| | | goodsUserRecords.add(tmp); |
| | | } |
| | | lWhGoodsService.modGoodsTransfering(toUserGoodsIds, null, null, null, (short) 2); |
| | | lWhGoodsService.modGoodsTransfering(toUserGoodsIds, null, null, null, 2); |
| | | lGoodsUserRecordService.insertBatch(goodsUserRecords); |
| | | } |
| | | } |