|
|
@@ -1,18 +1,25 @@
|
|
|
package com.yc.ship.module.product.service.voyagestockdistribute;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.yc.ship.framework.common.pojo.PageResult;
|
|
|
import com.yc.ship.framework.common.util.collection.CollectionUtils;
|
|
|
import com.yc.ship.framework.common.util.object.BeanUtils;
|
|
|
+import com.yc.ship.framework.mybatis.core.util.MyBatisUtils;
|
|
|
import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.QueryCanSelectRoomListReqVO;
|
|
|
-import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.QueryCanSelectRoomListNewReqVO;
|
|
|
-import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewRespVO;
|
|
|
-import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewSaveReqVO;
|
|
|
-import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributorRoomRespVO;
|
|
|
+import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.VoyageStockDistributeRespVO;
|
|
|
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.*;
|
|
|
+import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
|
|
|
+import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeDO;
|
|
|
import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeNewDO;
|
|
|
import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeRoomDO;
|
|
|
import com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeNewMapper;
|
|
|
import com.yc.ship.module.product.enums.DistributorOrStoreEnum;
|
|
|
+import com.yc.ship.module.product.service.voyage.VoyageService;
|
|
|
import com.yc.ship.module.resource.api.room.RoomApi;
|
|
|
import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
|
|
|
+import com.yc.ship.module.resource.dal.dataobject.roommodel.ResourceRoomModelDO;
|
|
|
+import com.yc.ship.module.resource.service.roommodel.ResourceRoomModelService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
@@ -33,6 +40,10 @@ import java.util.Map;
|
|
|
@Validated
|
|
|
public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistributeNewService {
|
|
|
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private VoyageService voyageService;
|
|
|
+
|
|
|
@Resource
|
|
|
private VoyageStockDistributeNewMapper voyageStockDistributeNewMapper;
|
|
|
|
|
|
@@ -43,6 +54,9 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
@Resource
|
|
|
private RoomApi roomApi;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ResourceRoomModelService resourceRoomModelService;
|
|
|
+
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -143,4 +157,44 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
//TODO: 待完善,此处应该去掉已被选了的房间
|
|
|
return roomRespList;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageResult<VoyageStockDistributeNewPageRespVO> getPage(VoyageStockDistributeNewPageReqVO reqVO) {
|
|
|
+ IPage<VoyageStockDistributeNewPageRespVO> page = MyBatisUtils.buildPage(reqVO);
|
|
|
+ IPage iPage = voyageStockDistributeNewMapper.selectPage(page, reqVO);
|
|
|
+ return new PageResult<>(iPage.getRecords(), iPage.getTotal());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<VoyageStockDistributeNewRespVO> getDetail(VoyageStockDistributeNewDetailReqVO reqVO) {
|
|
|
+ List<VoyageStockDistributeNewDO> list = voyageStockDistributeNewMapper.selectListByVoyageIdAndObjectId(reqVO);
|
|
|
+ List<VoyageStockDistributeNewRespVO> respVO = BeanUtils.toBean(list, VoyageStockDistributeNewRespVO.class);
|
|
|
+
|
|
|
+ List<VoyageStockDistributeRoomDO> roomList = voyageStockDistributeRoomService.getListByVoyageIdAndObjectId(reqVO);
|
|
|
+ List<VoyageStockDistributorRoomRespVO> roomRespList = BeanUtils.toBean(roomList, VoyageStockDistributorRoomRespVO.class);
|
|
|
+ List<Long> roomIds = CollectionUtils.convertList(roomRespList, VoyageStockDistributorRoomRespVO::getRoomId);
|
|
|
+ List<RoomRespDTO> roomListByIds = roomApi.getRoomListByIds(roomIds);
|
|
|
+ Map<Long, RoomRespDTO> roomMap = CollectionUtils.convertMap(roomListByIds, RoomRespDTO::getId);
|
|
|
+ roomRespList.stream().forEach(item -> {
|
|
|
+ if(roomMap.get(item.getRoomId()) != null) {
|
|
|
+ item.setRoomNum(roomMap.get(item.getRoomId()).getRoomNum());
|
|
|
+ }else {
|
|
|
+ item.setRoomNum(0);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ Map<String, List<VoyageStockDistributorRoomRespVO>> map = CollectionUtils.convertMultiMap(roomRespList, (item) -> item.getObjectId() + "_" + item.getRoomModelId() + "_" + item.getFloor());
|
|
|
+
|
|
|
+ List<Long> roomModelIds = CollectionUtils.convertList(respVO, VoyageStockDistributeNewRespVO::getRoomModelId);
|
|
|
+ List<ResourceRoomModelDO> roomModelList = resourceRoomModelService.getList(roomModelIds);
|
|
|
+ Map<Long, ResourceRoomModelDO> roomModelDOMap = CollectionUtils.convertMap(roomModelList, ResourceRoomModelDO::getId);
|
|
|
+ respVO.stream().forEach(item -> {
|
|
|
+ if(roomModelDOMap.get(item.getRoomModelId()) == null) {
|
|
|
+ item.setRoomModelName("已删除");
|
|
|
+ }else {
|
|
|
+ item.setRoomModelName(roomModelDOMap.get(item.getRoomModelId()).getName());
|
|
|
+ }
|
|
|
+ item.setRoomList(map.get(item.getObjectId() + "_" + item.getRoomModelId() + "_" + item.getFloor()));
|
|
|
+ });
|
|
|
+ return respVO;
|
|
|
+ }
|
|
|
}
|