|
@@ -29,6 +29,7 @@ import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -64,8 +65,9 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
public void createVoyageStockDistributeNew(List<VoyageStockDistributeNewSaveReqVO> createReqVO) {
|
|
|
BigDecimal zero = BigDecimal.ZERO;
|
|
|
Long voyageId = createReqVO.get(0).getVoyageId();
|
|
|
+ Integer type = createReqVO.get(0).getType();
|
|
|
//删除分配的房间
|
|
|
- voyageStockDistributeRoomService.deleteByVoyageId(voyageId);
|
|
|
+ voyageStockDistributeRoomService.deleteByVoyageId(voyageId, type);
|
|
|
// 分配的房间列表
|
|
|
List<VoyageStockDistributeRoomDO> roomList = new ArrayList<>();
|
|
|
createReqVO.stream().forEach(item -> {
|
|
@@ -75,7 +77,7 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
});
|
|
|
voyageStockDistributeRoomService.createVoyageStockDistributeRoomBatch(roomList);
|
|
|
//修改或插入库存表
|
|
|
- List<VoyageStockDistributeNewDO> list = voyageStockDistributeNewMapper.selectListByVoyageId(voyageId);
|
|
|
+ List<VoyageStockDistributeNewDO> list = voyageStockDistributeNewMapper.selectListByVoyageId(voyageId, type);
|
|
|
if(CollectionUtils.isAnyEmpty(list)) { // 为空则新增
|
|
|
list = BeanUtils.toBean(createReqVO, VoyageStockDistributeNewDO.class);
|
|
|
list.stream().forEach(item -> {
|
|
@@ -113,10 +115,10 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<VoyageStockDistributeNewRespVO> getByVoyageId(Long voyageId) {
|
|
|
- List<VoyageStockDistributeNewDO> list = voyageStockDistributeNewMapper.selectListByVoyageId(voyageId);
|
|
|
+ public List<VoyageStockDistributeNewRespVO> getByVoyageId(Long voyageId, Integer type) {
|
|
|
+ List<VoyageStockDistributeNewDO> list = voyageStockDistributeNewMapper.selectListByVoyageId(voyageId, type);
|
|
|
List<VoyageStockDistributeNewRespVO> respList = BeanUtils.toBean(list, VoyageStockDistributeNewRespVO.class);
|
|
|
- List<VoyageStockDistributeRoomDO> roomList = voyageStockDistributeRoomService.getListByVoyageId(voyageId);
|
|
|
+ List<VoyageStockDistributeRoomDO> roomList = voyageStockDistributeRoomService.getListByVoyageId(voyageId, type);
|
|
|
Map<String, List<VoyageStockDistributeRoomDO>> map = CollectionUtils.convertMultiMap(roomList, (item) -> item.getObjectId() + "_" + item.getRoomModelId() + "_" + item.getFloor());
|
|
|
respList.stream().forEach(item -> {
|
|
|
item.setRoomList(BeanUtils.toBean(map.get(item.getObjectId() + "_" + item.getRoomModelId() + "_" + item.getFloor()), VoyageStockDistributorRoomRespVO.class));
|
|
@@ -129,7 +131,7 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
//获取该游轮的所有房间
|
|
|
List<RoomRespDTO> roomList = roomApi.getRoomList(shipId);
|
|
|
// 获取已被分配的房间
|
|
|
- List<VoyageStockDistributeRoomDO> distributeRoomList = voyageStockDistributeRoomService.getListByVoyageId(voyageId);
|
|
|
+ List<VoyageStockDistributeRoomDO> distributeRoomList = voyageStockDistributeRoomService.getListByVoyageId(voyageId, DistributorOrStoreEnum.DISTRIBUTOR.getValue());
|
|
|
List<Long> selectedRoomIds = CollectionUtils.convertList(distributeRoomList, VoyageStockDistributeRoomDO::getRoomId);
|
|
|
roomList.stream().forEach(item -> {
|
|
|
item.setIsSelected(selectedRoomIds.contains(item.getId()));
|
|
@@ -197,4 +199,29 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
});
|
|
|
return respVO;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<RoomRespDTO> getDistributorRoomList(Long voyageId, Long shipId, Long distributorId) {
|
|
|
+ //获取该游轮的所有房间
|
|
|
+ List<RoomRespDTO> roomList = roomApi.getRoomList(shipId);
|
|
|
+ // 获取当前分销商已被分配的房间
|
|
|
+ VoyageStockDistributeNewDetailReqVO reqVO = new VoyageStockDistributeNewDetailReqVO();
|
|
|
+ reqVO.setVoyageId(voyageId);
|
|
|
+ reqVO.setObjectId(distributorId);
|
|
|
+ reqVO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());
|
|
|
+ List<VoyageStockDistributeRoomDO> distributeRoomList = voyageStockDistributeRoomService.getListByVoyageIdAndObjectId(reqVO);
|
|
|
+ List<Long> selectedRoomIds = CollectionUtils.convertList(distributeRoomList, VoyageStockDistributeRoomDO::getRoomId);
|
|
|
+ roomList = roomList.stream().filter(item -> selectedRoomIds.contains(item.getId())).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //获取已被门店选择的房间
|
|
|
+ List<VoyageStockDistributeRoomDO> storeRoomList = voyageStockDistributeRoomService.getListByVoyageId(voyageId, DistributorOrStoreEnum.STORE.getValue());
|
|
|
+ List<Long> selectedStoreRoomIds = CollectionUtils.convertList(storeRoomList, VoyageStockDistributeRoomDO::getRoomId);
|
|
|
+
|
|
|
+ roomList.stream().forEach(item -> {
|
|
|
+ item.setIsSelected(selectedStoreRoomIds.contains(item.getId()));
|
|
|
+ //TODO 待完善,已被销售的房间不可操作
|
|
|
+ item.setDisabled(false);//当前全部都可操作
|
|
|
+ });
|
|
|
+ return roomList;
|
|
|
+ }
|
|
|
}
|