Browse Source

feat: 添加旅行社端查看库存和给门店分配库存,未完善

luofeiyun 2 months ago
parent
commit
bac5234a84
14 changed files with 265 additions and 11 deletions
  1. 1 1
      ship-module-product/ship-module-product-api/src/main/java/com/yc/ship/module/product/enums/ErrorCodeConstants.java
  2. 23 3
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/VoyageStockDistributeNewController.java
  3. 20 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewDetailReqVO.java
  4. 37 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewPageReqVO.java
  5. 43 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewPageRespVO.java
  6. 3 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewRespVO.java
  7. 4 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributorRoomRespVO.java
  8. 14 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdistribute/VoyageStockDistributeNewMapper.java
  9. 8 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdistribute/VoyageStockDistributeRoomMapper.java
  10. 6 3
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewService.java
  11. 58 4
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewServiceImpl.java
  12. 3 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeRoomService.java
  13. 6 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeRoomServiceImpl.java
  14. 39 0
      ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyagestockdistribute/VoyageStockDistributeNewMapper.xml

+ 1 - 1
ship-module-product/ship-module-product-api/src/main/java/com/yc/ship/module/product/enums/ErrorCodeConstants.java

@@ -39,7 +39,7 @@ public interface ErrorCodeConstants {
     ErrorCode PRICE_VOYAGE_NOT_EXISTS = new ErrorCode(10_026, "该航次未设置价格");
     ErrorCode PRICE_VOYAGE_EXISTS = new ErrorCode(10_026, "该航次已设置价格");
 
-    ErrorCode USER_NOT_DISTRIBUTOR = new ErrorCode(10_027, "该用户不属于分销商");
+    ErrorCode USER_NOT_DISTRIBUTOR = new ErrorCode(10_027, "该用户不分销商");
 
 
 }

+ 23 - 3
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/VoyageStockDistributeNewController.java

@@ -1,11 +1,16 @@
 package com.yc.ship.module.product.controller.admin.voyagestockdistributeNew;
 
 import com.yc.ship.framework.common.pojo.CommonResult;
-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.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.module.product.controller.admin.voyagestockdistribute.vo.VoyageStockDistributeReqVO;
+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.voyagestockdistribute.VoyageStockDistributeDO;
 import com.yc.ship.module.product.service.voyagestockdistribute.VoyageStockDistributeNewService;
 import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
+import com.yc.ship.module.resource.dal.dataobject.roommodel.ResourceRoomModelDO;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -15,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.List;
+import java.util.Map;
 
 import static com.yc.ship.framework.common.pojo.CommonResult.success;
 
@@ -57,5 +63,19 @@ public class VoyageStockDistributeNewController {
         return success(list);
     }
 
+    @GetMapping("/page")
+    @Operation(summary = "获取分销商或门店航次库存分页")
+    public CommonResult<PageResult<VoyageStockDistributeNewPageRespVO>> getVoyageStockDistributePage(@Validated VoyageStockDistributeNewPageReqVO reqVO) {
+        PageResult<VoyageStockDistributeNewPageRespVO> page = voyageStockDistributeNewService.getPage(reqVO);
+        return success(page);
+    }
+
+    @GetMapping("/detail")
+    @Operation(summary = "获取航次库存分配详情")
+    public CommonResult<List<VoyageStockDistributeNewRespVO>> getDetail(@Valid VoyageStockDistributeNewDetailReqVO reqVO) {
+        List<VoyageStockDistributeNewRespVO> list = voyageStockDistributeNewService.getDetail(reqVO);
+        return success(list);
+    }
+
 
 }

+ 20 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewDetailReqVO.java

@@ -0,0 +1,20 @@
+package com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 航次库存分配详情 Request VO")
+@Data
+@ToString(callSuper = true)
+public class VoyageStockDistributeNewDetailReqVO {
+
+    @Schema(description = "分销商或门店ID", example = "2991")
+    private Long objectId;
+
+    @Schema(description = "航次ID", example = "6756")
+    private Long voyageId;
+
+    @Schema(description = "1分销商 2门店", example = "1")
+    private Integer type;
+}

+ 37 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewPageReqVO.java

@@ -0,0 +1,37 @@
+package com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo;
+
+import com.yc.ship.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 航次库存分配保存 Request VO")
+@Data
+public class VoyageStockDistributeNewPageReqVO extends PageParam {
+
+    @Schema(description = "航次名称", example = "1")
+    private String voyageName;
+
+    @Schema(description = "船ID",  example = "1")
+    private Long shipId;
+
+    @Schema(description = "分销商或者门店ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @NotNull(message = "分销商或者门店ID不能为空")
+    private Long objectId;
+
+    @Schema(description = "1分销商 2门店", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @NotNull(message = "分销商或者门店类型不能为空")
+    private Integer type;
+
+    @Schema(description = "是否启用共享库存", example = "1")
+    private Integer enableShare;
+
+
+
+
+
+
+
+}

+ 43 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewPageRespVO.java

@@ -0,0 +1,43 @@
+package com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo;
+
+import com.yc.ship.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 航次库存分配保存 Request VO")
+@Data
+public class VoyageStockDistributeNewPageRespVO {
+
+    @Schema(description = "航次ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private Long voyageId;
+
+    @Schema(description = "航次名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private String voyageName;
+
+    @Schema(description = "船ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private Long shipId;
+
+    @Schema(description = "船名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private String shipName;
+
+    @Schema(description = "库存数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private BigDecimal num;
+
+    @Schema(description = "分配的房型房间数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private BigDecimal roomModelNum;
+
+    @Schema(description = "已预订数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private BigDecimal bookNum;
+
+    @Schema(description = "是否启用共享库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private Integer enableShare;
+
+
+
+
+
+
+
+}

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewRespVO.java

@@ -28,6 +28,9 @@ public class VoyageStockDistributeNewRespVO {
     @Schema(description = "房型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Long roomModelId;
 
+    @Schema(description = "房型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private String roomModelName;
+
     @Schema(description = "楼层", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Integer floor;
 

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributorRoomRespVO.java

@@ -1,9 +1,13 @@
 package com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo;
 
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeRoomDO;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 @Data
 public class VoyageStockDistributorRoomRespVO extends VoyageStockDistributeRoomDO {
 
+    @Schema(description = "房间号", example = "1")
+    private Integer roomNum;
+
 }

+ 14 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdistribute/VoyageStockDistributeNewMapper.java

@@ -1,10 +1,16 @@
 package com.yc.ship.module.product.dal.mysql.voyagestockdistribute;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewDetailReqVO;
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewPageReqVO;
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewPageRespVO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeNewDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -21,4 +27,12 @@ public interface VoyageStockDistributeNewMapper extends BaseMapperX<VoyageStockD
         return selectList(new LambdaQueryWrapperX<VoyageStockDistributeNewDO>()
                 .eq(VoyageStockDistributeNewDO::getVoyageId, voyageId));
     }
+
+    IPage<VoyageStockDistributeNewPageRespVO> selectPage(IPage<VoyageStockDistributeNewPageRespVO> page, @Param("params") VoyageStockDistributeNewPageReqVO reqVO);
+
+    default List<VoyageStockDistributeNewDO> selectListByVoyageIdAndObjectId(VoyageStockDistributeNewDetailReqVO reqVO) {
+        return selectList(new LambdaQueryWrapperX<VoyageStockDistributeNewDO>()
+                .eq(VoyageStockDistributeNewDO::getVoyageId, reqVO.getVoyageId())
+                .eqIfPresent(VoyageStockDistributeNewDO::getObjectId, reqVO.getObjectId()));
+    }
 }

+ 8 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdistribute/VoyageStockDistributeRoomMapper.java

@@ -1,8 +1,10 @@
 package com.yc.ship.module.product.dal.mysql.voyagestockdistribute;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewDetailReqVO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeRoomDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -29,4 +31,10 @@ public interface VoyageStockDistributeRoomMapper extends BaseMapperX<VoyageStock
     }
 
     List<VoyageStockDistributeRoomDO> selectListByRoomModelIdAndFloor(@Param("objectId") Long objectId, @Param("roomModelIdFloorList") List<String> roomModelIdFloorList);
+
+    default List<VoyageStockDistributeRoomDO> selectListByVoyageIdAndObjectId(VoyageStockDistributeNewDetailReqVO reqVO) {
+        return selectList(new LambdaQueryWrapper<VoyageStockDistributeRoomDO>()
+                .eq(VoyageStockDistributeRoomDO::getVoyageId, reqVO.getVoyageId())
+                .eq(VoyageStockDistributeRoomDO::getObjectId, reqVO.getObjectId()));
+    }
 }

+ 6 - 3
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewService.java

@@ -1,9 +1,8 @@
 package com.yc.ship.module.product.service.voyagestockdistribute;
 
+import com.yc.ship.framework.common.pojo.PageResult;
 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.*;
 import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
 
 import java.util.List;
@@ -42,4 +41,8 @@ public interface VoyageStockDistributeNewService {
      * @return
      */
     List<RoomRespDTO> getCanSelectRoomList(QueryCanSelectRoomListNewReqVO reqVO);
+
+    PageResult<VoyageStockDistributeNewPageRespVO> getPage(VoyageStockDistributeNewPageReqVO reqVO);
+
+    List<VoyageStockDistributeNewRespVO> getDetail(VoyageStockDistributeNewDetailReqVO reqVO);
 }

+ 58 - 4
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewServiceImpl.java

@@ -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;
+    }
 }

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeRoomService.java

@@ -1,6 +1,7 @@
 package com.yc.ship.module.product.service.voyagestockdistribute;
 
 
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewDetailReqVO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeRoomDO;
 
 import java.util.List;
@@ -34,4 +35,6 @@ public interface VoyageStockDistributeRoomService {
      * @return
      */
     List<VoyageStockDistributeRoomDO> getRoomListByRoomModelIdAndFloor(Long objectId, List<String> roomModelIdFloorList);
+
+    List<VoyageStockDistributeRoomDO> getListByVoyageIdAndObjectId(VoyageStockDistributeNewDetailReqVO reqVO);
 }

+ 6 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeRoomServiceImpl.java

@@ -1,6 +1,7 @@
 package com.yc.ship.module.product.service.voyagestockdistribute;
 
 import com.yc.ship.framework.common.util.collection.CollectionUtils;
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewDetailReqVO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeRoomDO;
 import com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeRoomMapper;
 import org.springframework.stereotype.Service;
@@ -44,4 +45,9 @@ public class VoyageStockDistributeRoomServiceImpl implements VoyageStockDistribu
     public List<VoyageStockDistributeRoomDO> getRoomListByRoomModelIdAndFloor(Long objectId, List<String> roomModelIdFloorList) {
         return voyageStockDistributeRoomMapper.selectListByRoomModelIdAndFloor(objectId, roomModelIdFloorList);
     }
+
+    @Override
+    public List<VoyageStockDistributeRoomDO> getListByVoyageIdAndObjectId(VoyageStockDistributeNewDetailReqVO reqVO) {
+        return voyageStockDistributeRoomMapper.selectListByVoyageIdAndObjectId(reqVO);
+    }
 }

+ 39 - 0
ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyagestockdistribute/VoyageStockDistributeNewMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeNewMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+    <select id="selectPage" resultType="com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewPageRespVO">
+        SELECT
+            t1.voyage_id,
+            t3.NAME voyage_name,
+            t1.ship_id,
+            t2.NAME ship_name,
+            sum( num ) num,
+            sum( room_model_num ) room_model_num,
+        sum(ifnull(book_num,0)) book_num,
+            t1.enable_share
+        FROM
+            product_voyage_stock_distribute_new t1
+                LEFT JOIN resource_ship t2 ON t1.ship_id = t2.id
+                LEFT JOIN product_voyage t3 ON t1.voyage_id = t3.id
+        WHERE
+            t1.deleted = 0 and t2.deleted = 0 and t3.deleted = 0
+          <if test="params.shipId != null">
+            AND t1.ship_id = #{params.shipId}
+          </if>
+          <if test="params.voyageName != null and params.voyageName != ''">
+              AND t3.NAME LIKE CONCAT('%', #{params.voyageName}, '%')
+          </if>
+          AND t1.object_id = #{params.objectId}
+          AND t1.type = #{params.type}
+        GROUP BY
+            voyage_id
+    </select>
+</mapper>