Quellcode durchsuchen

feat: 添加获取房间号列表的接口

luofeiyun vor 1 Monat
Ursprung
Commit
d744b39482
11 geänderte Dateien mit 164 neuen und 4 gelöschten Zeilen
  1. 8 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistribute/VoyageStockDistributeController.java
  2. 6 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistribute/vo/VoyageStockDistributeRespVO.java
  3. 3 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistribute/vo/VoyageStockDistributeSaveReqVO.java
  4. 7 3
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyagestockdistribute/VoyageStockDistributeDO.java
  5. 9 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyagestockdistribute/VoyageStockDistributeLogDO.java
  6. 8 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeService.java
  7. 23 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeServiceImpl.java
  8. 15 1
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/utils/VoyageUUCodeUtils.java
  9. 10 0
      ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/room/RoomApi.java
  10. 34 0
      ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/room/dto/RoomRespDTO.java
  11. 41 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/api/room/RoomApiImpl.java

+ 8 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistribute/VoyageStockDistributeController.java

@@ -2,6 +2,7 @@ package com.yc.ship.module.product.controller.admin.voyagestockdistribute;
 
 import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.module.ota.api.OtaDistributorApi;
+import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -100,6 +101,13 @@ public class VoyageStockDistributeController {
         return success(total);
     }
 
+    @GetMapping("/getRoomList")
+    @Operation(summary = "获取航次库存分配房间列表")
+    public CommonResult<List<RoomRespDTO>> getRoomList(@RequestParam("voyageId") Long voyageId) {
+        List<RoomRespDTO> list = voyageStockDistributeService.getRoomList(voyageId);
+        return success(list);
+    }
+
     @GetMapping("/export-excel")
     @Operation(summary = "导出航次库存分配 Excel")
     @PreAuthorize("@ss.hasPermission('product:voyage-stock-distribute:export')")

+ 6 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistribute/vo/VoyageStockDistributeRespVO.java

@@ -62,6 +62,12 @@ public class VoyageStockDistributeRespVO {
     @ExcelProperty("分配房间数")
     private Integer num;
 
+    /**
+     * 分配的房间号
+     */
+    @Schema(description = "分配的房间号", example = "1,2,3")
+    private List<Integer> roomNums;
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;

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

@@ -36,4 +36,7 @@ public class VoyageStockDistributeSaveReqVO {
     @Schema(description = "房型分配房间数")
     private Integer roomModelNum;
 
+    @Schema(description = "分配的房间号", example = "1,2,3")
+    private List<Integer> roomNums;
+
 }

+ 7 - 3
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyagestockdistribute/VoyageStockDistributeDO.java

@@ -1,12 +1,10 @@
 package com.yc.ship.module.product.dal.dataobject.voyagestockdistribute;
 
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.*;
-import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
 
 /**
  * 航次库存分配 DO
@@ -97,4 +95,10 @@ public class VoyageStockDistributeDO extends TenantBaseDO {
      * 房型房间数
      */
     private Integer roomModelNum;
+
+    /**
+     * 分配的房间号
+     */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private List<Integer> roomNums;
 }

+ 9 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyagestockdistribute/VoyageStockDistributeLogDO.java

@@ -1,9 +1,12 @@
 package com.yc.ship.module.product.dal.dataobject.voyagestockdistribute;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 
+import java.util.List;
+
 /**
  * 航次库存分配记录 DO
  *
@@ -78,4 +81,10 @@ public class VoyageStockDistributeLogDO extends TenantBaseDO {
      * 分配房间数
      */
     private Integer num;
+
+    /**
+     * 分配的房间号
+     */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private List<Integer> roomNums;
 }

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

@@ -4,6 +4,7 @@ import javax.validation.*;
 import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.*;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeDO;
 import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
 
 import java.util.List;
 
@@ -65,4 +66,11 @@ public interface VoyageStockDistributeService {
      * @return
      */
     VoyageStockDistributeTotalRespVO getVoyageStockDistributeTotal(Long voyageId);
+
+    /**
+     * 获取可选择的房间号
+     * @param voyageId
+     * @return
+     */
+    List<RoomRespDTO> getRoomList(Long voyageId);
 }

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

@@ -17,8 +17,11 @@ import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageSto
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeLogDO;
 import com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeLogMapper;
 import com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeMapper;
+import com.yc.ship.module.product.enums.ErrorCodeConstants;
 import com.yc.ship.module.product.service.voyage.VoyageService;
 import com.yc.ship.module.product.service.voyagestockdetail.VoyageStockDetailService;
+import com.yc.ship.module.resource.api.room.RoomApi;
+import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -29,6 +32,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
+
 /**
  * 航次库存分配 Service 实现类
  *
@@ -56,6 +61,9 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
     @Resource
     private StoreApi storeApi;
 
+    @Resource
+    private RoomApi roomApi;
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void createVoyageStockDistribute(List<VoyageStockDistributeSaveReqVO> createReqVO) {
@@ -262,4 +270,19 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
         return resp;
     }
 
+    @Override
+    public List<RoomRespDTO> getRoomList(Long voyageId) {
+        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.selectListByVoyageId(voyageId);
+        List<Integer> selectedList = list.stream().flatMap(list1 -> list1.getRoomNums().stream()).collect(Collectors.toList());
+        roomList.stream().forEach(room -> {
+            room.setIsSelected(selectedList.contains(room.getRoomNum()));
+        });
+        return roomList;
+    }
+
 }

+ 15 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/utils/VoyageUUCodeUtils.java

@@ -8,6 +8,8 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
 
 import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 航次编码生成
@@ -66,7 +68,19 @@ public class VoyageUUCodeUtils {
         return pybf.toString().replaceAll("\\W", "").trim().toUpperCase();
     }
     public static void main(String[] args) {
-        System.out.println(generateVoyageNo("CJXLY", LocalDateTime.now(), "宜昌", "重庆"));
+//        System.out.println(generateVoyageNo("CJXLY", LocalDateTime.now(), "宜昌", "重庆"));
+        List<Map<String, List<String>>> list = new ArrayList<>();
+        Map<String, List< String>> map = new HashMap<>();
+        map.put("ad",Arrays.asList("1", "2", "3", "4"));
+        list.add(map);
+
+        Map<String, List< String>> map1 = new HashMap<>();
+        map1.put("ad", Arrays.asList("5", "6", "7", "8"));
+        list.add(map1);
+
+        List<String> collect = list.stream().flatMap(map3 -> map3.values().stream().flatMap(list1 -> list1.stream())).collect(Collectors.toList());
+        System.out.println(collect);
+
     }
 
 }

+ 10 - 0
ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/room/RoomApi.java

@@ -0,0 +1,10 @@
+package com.yc.ship.module.resource.api.room;
+
+import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
+
+import java.util.List;
+
+public interface RoomApi {
+
+    List<RoomRespDTO> getRoomList(Long shipId);
+}

+ 34 - 0
ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/room/dto/RoomRespDTO.java

@@ -0,0 +1,34 @@
+package com.yc.ship.module.resource.api.room.dto;
+
+import lombok.Data;
+
+@Data
+public class RoomRespDTO {
+
+    /**
+     * 房间号
+     */
+    private Integer roomNum;
+    /**
+     * 房型ID
+     */
+    private Long roomModelId;
+    /**
+     * 船ID
+     */
+    private Long shipId;
+    /**
+     * 楼层数
+     */
+    private Integer floors;
+
+    /**
+     * 房型名称
+     */
+    private String roomModelName;
+
+    /**
+     * 是否已被选
+     */
+    private Boolean isSelected;
+}

+ 41 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/api/room/RoomApiImpl.java

@@ -0,0 +1,41 @@
+package com.yc.ship.module.resource.api.room;
+
+import com.yc.ship.framework.common.util.collection.CollectionUtils;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
+import com.yc.ship.module.resource.dal.dataobject.room.ResourceRoomDO;
+import com.yc.ship.module.resource.dal.dataobject.roommodel.ResourceRoomModelDO;
+import com.yc.ship.module.resource.service.room.ResourceRoomService;
+import com.yc.ship.module.resource.service.roommodel.ResourceRoomModelService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class RoomApiImpl implements RoomApi {
+
+    @Resource
+    private ResourceRoomService resourceRoomService;
+
+    @Resource
+    private ResourceRoomModelService resourceRoomModelService;
+    @Override
+    public List<RoomRespDTO> getRoomList(Long shipId) {
+        List<ResourceRoomDO> list = resourceRoomService.getRoomListByShipId(String.valueOf(shipId));
+        List<RoomRespDTO> respList = BeanUtils.toBean(list, RoomRespDTO.class);
+        List<Long> roomModelIds = CollectionUtils.convertList(respList, RoomRespDTO::getRoomModelId);
+        List<ResourceRoomModelDO> roomModelList = resourceRoomModelService.getList(roomModelIds);
+        Map<Long, ResourceRoomModelDO> roomModelDOMap = CollectionUtils.convertMap(roomModelList, ResourceRoomModelDO::getId);
+        respList.stream().forEach(item -> {
+            if(roomModelDOMap.get(item.getRoomModelId()) != null) {
+                item.setRoomModelName(roomModelDOMap.get(item.getRoomModelId()).getName());
+            }else {
+                item.setRoomModelName("已删除");
+            }
+            item.setIsSelected(false);
+        });
+        return respList;
+    }
+}