|
@@ -8,6 +8,7 @@ import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
|
|
import com.yc.ship.module.ota.enums.DistributorTypeEnum;
|
|
import com.yc.ship.module.ota.enums.DistributorTypeEnum;
|
|
import com.yc.ship.module.otc.api.store.StoreApi;
|
|
import com.yc.ship.module.otc.api.store.StoreApi;
|
|
import com.yc.ship.module.otc.api.store.dto.StoreInfoRespDTO;
|
|
import com.yc.ship.module.otc.api.store.dto.StoreInfoRespDTO;
|
|
|
|
+import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.QueryCanSelectRoomListReqVO;
|
|
import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.VoyageStockDistributePageReqVO;
|
|
import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.VoyageStockDistributePageReqVO;
|
|
import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.VoyageStockDistributeSaveReqVO;
|
|
import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.VoyageStockDistributeSaveReqVO;
|
|
import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.VoyageStockDistributeTotalRespVO;
|
|
import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.VoyageStockDistributeTotalRespVO;
|
|
@@ -84,7 +85,7 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
list.stream().forEach(item -> {
|
|
list.stream().forEach(item -> {
|
|
item.setBookNum(0);
|
|
item.setBookNum(0);
|
|
item.setSurplusNum(item.getNum());
|
|
item.setSurplusNum(item.getNum());
|
|
- item.setRoomModelNum(item.getNum());
|
|
|
|
|
|
+ item.setRoomModelNum(item.getRoomModelNum());
|
|
});
|
|
});
|
|
voyageStockDistributeMapper.insertBatch(list);
|
|
voyageStockDistributeMapper.insertBatch(list);
|
|
}else { //不为空则修改库存
|
|
}else { //不为空则修改库存
|
|
@@ -101,6 +102,13 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
+ "_" + item.getRoomModelId() + "_" + item.getFloor();
|
|
+ "_" + item.getRoomModelId() + "_" + item.getFloor();
|
|
}, item -> item.getRoomModelNum());
|
|
}, item -> item.getRoomModelNum());
|
|
|
|
|
|
|
|
+ Map<String, List<Integer>> roomNumsMap = CollectionUtils.convertMap(createReqVO, item -> {
|
|
|
|
+ //key为航次ID_分销商类型_分销商ID_门店ID_房型ID_楼层号作为唯一
|
|
|
|
+ return item.getVoyageId() + "_" + item.getDistributorType()
|
|
|
|
+ + "_" + item.getDistributorId() + "_" + item.getStoreId()
|
|
|
|
+ + "_" + item.getRoomModelId() + "_" + item.getFloor();
|
|
|
|
+ }, item -> item.getRoomNums());
|
|
|
|
+
|
|
|
|
|
|
list.stream().forEach(item -> {
|
|
list.stream().forEach(item -> {
|
|
String key = item.getVoyageId() + "_" + item.getDistributorType()
|
|
String key = item.getVoyageId() + "_" + item.getDistributorType()
|
|
@@ -108,7 +116,8 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
+ "_" + item.getRoomModelId() + "_" + item.getFloor();
|
|
+ "_" + item.getRoomModelId() + "_" + item.getFloor();
|
|
item.setNum(item.getNum()+roomNumMap.get(key));
|
|
item.setNum(item.getNum()+roomNumMap.get(key));
|
|
item.setSurplusNum(item.getSurplusNum()+roomNumMap.get(key));
|
|
item.setSurplusNum(item.getSurplusNum()+roomNumMap.get(key));
|
|
- item.setRoomModelNum(item.getRoomModelNum()+roomModelNumMap.get(key));
|
|
|
|
|
|
+ item.setRoomModelNum(roomModelNumMap.get(key));
|
|
|
|
+ item.setRoomNums(roomNumsMap.get(key));
|
|
});
|
|
});
|
|
voyageStockDistributeMapper.updateBatch(list);
|
|
voyageStockDistributeMapper.updateBatch(list);
|
|
|
|
|
|
@@ -129,7 +138,7 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
addList.stream().forEach(item -> {
|
|
addList.stream().forEach(item -> {
|
|
item.setBookNum(0);
|
|
item.setBookNum(0);
|
|
item.setSurplusNum(item.getNum());
|
|
item.setSurplusNum(item.getNum());
|
|
- item.setRoomModelNum(item.getNum());
|
|
|
|
|
|
+ item.setRoomModelNum(item.getRoomModelNum());
|
|
});
|
|
});
|
|
voyageStockDistributeMapper.insertBatch(addList);
|
|
voyageStockDistributeMapper.insertBatch(addList);
|
|
}
|
|
}
|
|
@@ -291,4 +300,26 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
return roomList;
|
|
return roomList;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public List<RoomRespDTO> getCanSelectRoomList(QueryCanSelectRoomListReqVO reqVO) {
|
|
|
|
+ Long voyageId = reqVO.getVoyageId();
|
|
|
|
+ VoyageDO voyage = voyageService.getVoyage(voyageId);
|
|
|
|
+ if(voyage == null) {
|
|
|
|
+ throw exception(ErrorCodeConstants.VOYAGE_NOT_EXISTS);
|
|
|
|
+ }
|
|
|
|
+ List<RoomRespDTO> roomList = roomApi.getRoomList(voyage.getShipId());
|
|
|
|
+ List<VoyageStockDistributeDO> list = voyageStockDistributeMapper.selectList(reqVO);
|
|
|
|
+ List<Integer> canSelectList = list.stream().flatMap(list1 -> {
|
|
|
|
+ List<Integer> roomNums = list1.getRoomNums();
|
|
|
|
+ if(roomNums != null) {
|
|
|
|
+ return roomNums.stream();
|
|
|
|
+ }
|
|
|
|
+ return new ArrayList<Integer>().stream();
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ List<RoomRespDTO> result = roomList.stream().filter(room -> canSelectList.contains(room.getRoomNum())).collect(Collectors.toList());
|
|
|
|
+ //TODO:还要去掉订单中已被选择的房间号
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|