|
@@ -75,7 +75,6 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
private VoyageStockRoomUsedMapper voyageStockRoomUsedMapper;
|
|
private VoyageStockRoomUsedMapper voyageStockRoomUsedMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void createVoyageStockDistributeNew(Long voyageId, Integer type, List<VoyageStockDistributeNewSaveReqVO> createReqVO) {
|
|
public void createVoyageStockDistributeNew(Long voyageId, Integer type, List<VoyageStockDistributeNewSaveReqVO> createReqVO) {
|
|
|
BigDecimal zero = BigDecimal.ZERO;
|
|
BigDecimal zero = BigDecimal.ZERO;
|
|
@@ -96,17 +95,14 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
voyageStockDistributeRoomService.createVoyageStockDistributeRoomBatch(roomList);
|
|
voyageStockDistributeRoomService.createVoyageStockDistributeRoomBatch(roomList);
|
|
|
//修改或插入库存表
|
|
//修改或插入库存表
|
|
|
List<VoyageStockDistributeNewDO> list = voyageStockDistributeNewMapper.selectListByVoyageId(voyageId, type);
|
|
List<VoyageStockDistributeNewDO> list = voyageStockDistributeNewMapper.selectListByVoyageId(voyageId, type);
|
|
|
- List<VoyageStockDistributeNewDO> totalList = new ArrayList<>();
|
|
|
|
|
if(CollectionUtils.isAnyEmpty(list)) { // 为空则新增
|
|
if(CollectionUtils.isAnyEmpty(list)) { // 为空则新增
|
|
|
list = BeanUtils.toBean(createReqVO, VoyageStockDistributeNewDO.class);
|
|
list = BeanUtils.toBean(createReqVO, VoyageStockDistributeNewDO.class);
|
|
|
list.stream().forEach(item -> {
|
|
list.stream().forEach(item -> {
|
|
|
item.setBookNum(zero);
|
|
item.setBookNum(zero);
|
|
|
- item.setTotalNum(zero);
|
|
|
|
|
});
|
|
});
|
|
|
if(!CollectionUtils.isAnyEmpty(list)) {
|
|
if(!CollectionUtils.isAnyEmpty(list)) {
|
|
|
voyageStockDistributeNewMapper.insertBatch(list);
|
|
voyageStockDistributeNewMapper.insertBatch(list);
|
|
|
}
|
|
}
|
|
|
- totalList.addAll(list);
|
|
|
|
|
}else {
|
|
}else {
|
|
|
Map<String, BigDecimal> map = CollectionUtils.convertMap(createReqVO, item -> item.getObjectId() + "_" + item.getRoomModelId() + "_" + item.getFloor(), item -> item.getNum());
|
|
Map<String, BigDecimal> map = CollectionUtils.convertMap(createReqVO, item -> item.getObjectId() + "_" + item.getRoomModelId() + "_" + item.getFloor(), item -> item.getNum());
|
|
|
Map<String, VoyageStockDistributeNewSaveReqVO> mapVO = CollectionUtils.convertMap(createReqVO, item -> item.getObjectId() + "_" + item.getRoomModelId() + "_" + item.getFloor());
|
|
Map<String, VoyageStockDistributeNewSaveReqVO> mapVO = CollectionUtils.convertMap(createReqVO, item -> item.getObjectId() + "_" + item.getRoomModelId() + "_" + item.getFloor());
|
|
@@ -117,28 +113,24 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
map.keySet().stream().forEach(key -> {
|
|
map.keySet().stream().forEach(key -> {
|
|
|
if(existList.contains(key)) { //存在,做修改
|
|
if(existList.contains(key)) { //存在,做修改
|
|
|
VoyageStockDistributeNewDO voyageStockDistributeNewDO = existMap.get(key);
|
|
VoyageStockDistributeNewDO voyageStockDistributeNewDO = existMap.get(key);
|
|
|
- VoyageStockDistributeNewDO voyageStockDistributeNewDOBak = BeanUtils.toBean(existMap.get(key), VoyageStockDistributeNewDO.class);
|
|
|
|
|
- voyageStockDistributeNewDO.setTotalNum(voyageStockDistributeNewDOBak.getNum());
|
|
|
|
|
voyageStockDistributeNewDO.setNum(map.get(key));
|
|
voyageStockDistributeNewDO.setNum(map.get(key));
|
|
|
voyageStockDistributeNewDO.setRoomModelNum(mapVO.get(key).getRoomModelNum());
|
|
voyageStockDistributeNewDO.setRoomModelNum(mapVO.get(key).getRoomModelNum());
|
|
|
updateList.add(voyageStockDistributeNewDO);
|
|
updateList.add(voyageStockDistributeNewDO);
|
|
|
}else { //不存在,做插入
|
|
}else { //不存在,做插入
|
|
|
VoyageStockDistributeNewDO voyageStockDistributeNewDO = BeanUtils.toBean(mapVO.get(key), VoyageStockDistributeNewDO.class);
|
|
VoyageStockDistributeNewDO voyageStockDistributeNewDO = BeanUtils.toBean(mapVO.get(key), VoyageStockDistributeNewDO.class);
|
|
|
- voyageStockDistributeNewDO.setTotalNum(zero);
|
|
|
|
|
insertList.add(voyageStockDistributeNewDO);
|
|
insertList.add(voyageStockDistributeNewDO);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
if(!CollectionUtils.isAnyEmpty(updateList)) {
|
|
if(!CollectionUtils.isAnyEmpty(updateList)) {
|
|
|
- totalList.addAll(updateList);
|
|
|
|
|
voyageStockDistributeNewMapper.updateBatch(updateList);
|
|
voyageStockDistributeNewMapper.updateBatch(updateList);
|
|
|
}
|
|
}
|
|
|
if(!CollectionUtils.isAnyEmpty(insertList)) {
|
|
if(!CollectionUtils.isAnyEmpty(insertList)) {
|
|
|
- totalList.addAll(insertList);
|
|
|
|
|
voyageStockDistributeNewMapper.insertBatch(insertList);
|
|
voyageStockDistributeNewMapper.insertBatch(insertList);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
BigDecimal distributeNum = getDistributeNum(voyageId);
|
|
BigDecimal distributeNum = getDistributeNum(voyageId);
|
|
|
- voyageStockDetailService.handleShareNum(voyageId, distributeNum, totalList);
|
|
|
|
|
|
|
+ List<VoyageStockDistributeNewDO> newList = voyageStockDistributeNewMapper.selectListByVoyageId(voyageId, type);
|
|
|
|
|
+ voyageStockDetailService.handleShareNum(voyageId, distributeNum, newList);
|
|
|
}finally {
|
|
}finally {
|
|
|
if(lock.isHeldByCurrentThread() && lock.isLocked()){
|
|
if(lock.isHeldByCurrentThread() && lock.isLocked()){
|
|
|
lock.unlock();
|
|
lock.unlock();
|