Bladeren bron

库存根据房型排序

caotao 1 week geleden
bovenliggende
commit
5853aecd91

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

@@ -23,6 +23,10 @@ public class VoyageStockDetailNewRespVO {
      * 房型名称
      */
     private String roomModelName;
+    /**
+     * 房型排序
+     */
+    private String roomModelSort;
     /**
      * 航次ID
      */

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

@@ -16,6 +16,9 @@ public class VoyageStockDetailSaveReqVO {
     @Schema(description = "房型名称", example = "李四")
     private String roomModelName;
 
+    @Schema(description = "房型排序")
+    private Integer roomModelSort;
+
     @Schema(description = "航次ID", example = "3260")
     private Long voyageId;
 

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyagestockdetail/VoyageStockDetailDO.java

@@ -38,6 +38,10 @@ public class VoyageStockDetailDO extends TenantBaseDO {
      * 房型名称
      */
     private String roomModelName;
+    /**
+     * 房型排序
+     */
+    private Integer roomModelSort;
     /**
      * 航次ID
      */

+ 1 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdetail/VoyageStockDetailMapper.java

@@ -25,7 +25,7 @@ public interface VoyageStockDetailMapper extends BaseMapperX<VoyageStockDetailDO
     default List<VoyageStockDetailDO> selectListByVoyageId(Long voyageId) {
         return selectList(new LambdaQueryWrapperX<VoyageStockDetailDO>()
                 .eq(VoyageStockDetailDO::getVoyageId, voyageId)
-                .orderByAsc(VoyageStockDetailDO::getRoomModelId)
+                .orderByAsc(VoyageStockDetailDO::getRoomModelSort)
                 .orderByAsc(VoyageStockDetailDO::getFloor));
     }
 

+ 8 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdetail/VoyageStockDetailServiceImpl.java

@@ -17,6 +17,7 @@ import com.yc.ship.module.product.enums.ProductStockStaticsName;
 import com.yc.ship.module.product.framework.lock.ProductRedisKeyConstants;
 import com.yc.ship.module.resource.api.ship.ShipApi;
 import com.yc.ship.module.resource.api.ship.dto.RoomModelFloorNumDTO;
+import com.yc.ship.module.resource.dal.dataobject.room.ResourceRoomDO;
 import com.yc.ship.module.resource.dal.mysql.room.ResourceRoomMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RLock;
@@ -267,9 +268,14 @@ public class VoyageStockDetailServiceImpl implements VoyageStockDetailService {
         List<VoyageStockDetailDO> list = BeanUtils.toBean(createReqVO.getList(), VoyageStockDetailDO.class);
         List<VoyageStockDetailDO> insertList = new ArrayList<>();
         voyageStockDetailMapper.deleteByVoyageIds(voyageIds);
+        List<RoomModelFloorNumDTO> roomModelFloorNumList = resourceRoomMapper.selectRoomModelFloorToNum(createReqVO.getShipId());
         voyageIds.stream().forEach(voyageId -> {
             list.stream().forEach(item -> {
-
+                Integer sort = roomModelFloorNumList.stream()
+                        .filter(room -> room.getRoomModelId().equals(item.getRoomModelId()))
+                        .map(RoomModelFloorNumDTO::getSort)
+                        .findFirst()
+                        .orElse(0);
                 item.setVoyageId(voyageId);
                 if(ProductStockStaticsName.TOTAL.equals(item.getRoomModelName())) {
                     VoyageStockDO stockDO = BeanUtils.toBean(item, VoyageStockDO.class);
@@ -283,6 +289,7 @@ public class VoyageStockDetailServiceImpl implements VoyageStockDetailService {
                             .setVirtualNum(item.getVirtualNum())
                             .setRoomModelId(item.getRoomModelId())
                             .setRoomModelName(item.getRoomModelName())
+                            .setRoomModelSort(sort)
                             .setTotalNum(item.getTotalNum())
                             .setShelfNum(item.getShelfNum())
                             .setNotShelfNum(item.getNotShelfNum())

+ 2 - 0
ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/ship/dto/RoomModelFloorNumDTO.java

@@ -14,4 +14,6 @@ public class RoomModelFloorNumDTO {
     private Integer floor;
 
     private Integer num;
+
+    private Integer sort;
 }

+ 1 - 1
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/mysql/room/ResourceRoomMapper.java

@@ -56,7 +56,7 @@ public interface ResourceRoomMapper extends BaseMapperX<ResourceRoomDO> {
         return list.stream().map(ResourceRoomDO::getRoomNum).map(String::valueOf).collect(Collectors.toList());
     }
 
-    @Select("select t1.room_model_id as roomModelId, t1.floors as floor, count(t1.id) as num, t2.name as room_model_name,t2.short_name as  shortName from resource_room t1 left JOIN resource_room_model t2 on t1.room_model_id = t2.id where t1.ship_id = #{shipId} and t2.can_sale = 1 and t1.deleted = 0 and t2.deleted = 0 group by t1.room_model_id, t1.floors ORDER BY t2.id ASC,t1.floors ASC")
+    @Select("select t1.room_model_id as roomModelId, t1.floors as floor, count(t1.id) as num,t2.sort, t2.name as room_model_name,t2.short_name as  shortName from resource_room t1 left JOIN resource_room_model t2 on t1.room_model_id = t2.id where t1.ship_id = #{shipId} and t2.can_sale = 1 and t1.deleted = 0 and t2.deleted = 0 group by t1.room_model_id, t1.floors ORDER BY t2.sort ASC,t2.id ASC,t1.floors ASC")
     List<RoomModelFloorNumDTO> selectRoomModelFloorToNum(Long shipId);
 
     List<ResourceRoomDO> selectRoomListByRoomModelIdAndFloor(@Param("shipId") Long shipId, @Param("roomModelIdFloorList") List<String> roomModelIdFloorList);