Ver código fonte

Merge branch 'main' of http://git.wisesoft.net.cn/lishiqiang/ship-ota-server

lishiqiang 1 mês atrás
pai
commit
fb22c19801

+ 7 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyage/VoyageController.java

@@ -113,6 +113,13 @@ public class VoyageController {
         return success(BeanUtils.toBean(list, VoyageRespVO.class));
     }
 
+    @GetMapping("/list-calendar")
+    @Operation(summary = "获得资源管理-航次列表-日历")
+    public CommonResult<List<VoyageRespVO>> getVoyageListCalendar(VoyageCalendarReqVO reqVO) {
+        List<VoyageDO> list = voyageService.getListCalendar(reqVO);
+        return success(BeanUtils.toBean(list, VoyageRespVO.class));
+    }
+
     //根据游轮ID获取上架的航次列表
     @GetMapping("/on-shelf-list-by-ship-id")
     @Operation(summary = "根据游轮ID获取上架的航次列表,给旅行社下单时调用")

+ 22 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyage/vo/VoyageCalendarReqVO.java

@@ -0,0 +1,22 @@
+package com.yc.ship.module.product.controller.admin.voyage.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Schema(description = "航次日历查询参数")
+@Data
+public class VoyageCalendarReqVO {
+
+    @Schema(description = "开始时间")
+    private LocalDateTime startDate;
+
+    @Schema(description = "结束时间")
+    private LocalDateTime endDate;
+
+    @Schema(description = "船ID列表")
+    private List<Long> shipIds;
+
+}

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

@@ -1,5 +1,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 org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -38,6 +40,9 @@ public class VoyageStockDistributeController {
     @Resource
     private VoyageStockDistributeService voyageStockDistributeService;
 
+    @Resource
+    private OtaDistributorApi distributorApi;
+
     @PostMapping("/create")
     @Operation(summary = "创建航次库存分配")
     @PreAuthorize("@ss.hasPermission('product:voyage-stock-distribute:create')")
@@ -83,7 +88,8 @@ public class VoyageStockDistributeController {
     @Operation(summary = "根据航次ID获取给旅行社分配航次库存列表")
     public CommonResult<List<VoyageStockDistributeRespVO>> getVoyageStockDistributeListByVoyageId(@RequestParam("voyageId") Long voyageId) {
         List<VoyageStockDistributeDO> list = voyageStockDistributeService.getListByVoyageId(voyageId);
-        return success(BeanUtils.toBean(list, VoyageStockDistributeRespVO.class));
+        List<VoyageStockDistributeRespVO> respVOS = BeanUtils.toBean(list, VoyageStockDistributeRespVO.class);
+        return success(respVOS);
     }
 
     @GetMapping("/export-excel")

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

@@ -15,15 +15,30 @@ public class VoyageStockDistributeRespVO {
     @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13019")
     @ExcelProperty("ID")
     private Long id;
+    /**
+     * 分销商类型
+     */
+    @Schema(description = "分销商类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @ExcelProperty("分销商类型")
+    private Integer distributorType;
+    private String distributorTypeName;
 
     @Schema(description = "分销商ID", example = "2991")
     @ExcelProperty("分销商ID")
     private Long distributorId;
 
+    @Schema(description = "分销商名称", example = "王五")
+    @ExcelProperty("分销商名称")
+    private String distributorName;
+
     @Schema(description = "门店ID", example = "5290")
     @ExcelProperty("门店ID")
     private Long storeId;
 
+    @Schema(description = "门店名称", example = "王五")
+    @ExcelProperty("门店名称")
+    private String storeName;
+
     @Schema(description = "游轮ID", example = "25510")
     @ExcelProperty("游轮ID")
     private Long shipId;
@@ -35,6 +50,9 @@ public class VoyageStockDistributeRespVO {
     @Schema(description = "房型ID", example = "30594")
     @ExcelProperty("房型ID")
     private Long roomModelId;
+    @Schema(description = "房型名称", example = "王五")
+    @ExcelProperty("房型名称")
+    private String roomModelName;
 
     @Schema(description = "楼层号")
     @ExcelProperty("楼层号")

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

@@ -32,14 +32,31 @@ public class VoyageStockDistributeDO extends TenantBaseDO {
      * 分销商类型
      */
     private Integer distributorType;
+
+    /**
+     * 分销商类型名称
+     */
+    @TableField(exist = false)
+    private String distributorTypeName;
     /**
      * 分销商ID
      */
     private Long distributorId;
+
+    /**
+     * 分销商名称
+     */
+    @TableField(exist = false)
+    private String distributorName;
     /**
      * 门店ID
      */
     private Long storeId;
+    /**
+     * 门店名称
+     */
+    @TableField(exist = false)
+    private String storeName;
     /**
      * 游轮ID
      */
@@ -52,6 +69,11 @@ public class VoyageStockDistributeDO extends TenantBaseDO {
      * 房型ID
      */
     private Long roomModelId;
+    /**
+     * 房型名称
+     */
+    @TableField(exist = false)
+    private String roomModelName;
     /**
      * 楼层号
      */

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

@@ -3,6 +3,7 @@ package com.yc.ship.module.product.dal.mysql.voyage;
 import com.yc.ship.framework.common.pojo.PageResult;
 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.voyage.vo.VoyageCalendarReqVO;
 import com.yc.ship.module.product.controller.admin.voyage.vo.VoyagePageReqVO;
 import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageReqVO;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
@@ -64,4 +65,17 @@ public interface VoyageMapper extends BaseMapperX<VoyageDO> {
                 .eq(VoyageDO::getShipId, shipId)
                 .eq(VoyageDO::getRouteId, routeId));
     }
+
+    /**
+     * 获取资源管理-航次列表-日历
+     * @param reqVO
+     * @return
+     */
+    default List<VoyageDO> selectListCalendar(VoyageCalendarReqVO reqVO) {
+        return selectList(new LambdaQueryWrapperX<VoyageDO>()
+                .inIfPresent(VoyageDO::getShipId, reqVO.getShipIds())
+                .betweenIfPresent(VoyageDO::getStartTime, reqVO.getStartDate(), reqVO.getEndDate())
+                .eq(VoyageDO::getShelfStatus, VoyageShelfStatusEnum.ON_SHELF.getValue())
+                .orderByAsc(VoyageDO::getStartTime));
+    }
 }

+ 8 - 4
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyage/VoyageService.java

@@ -1,10 +1,7 @@
 package com.yc.ship.module.product.service.voyage;
 
 import com.yc.ship.framework.common.pojo.PageResult;
-import com.yc.ship.module.product.controller.admin.voyage.vo.VoyagePageReqVO;
-import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageReqVO;
-import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageSaveBatchReqVO;
-import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageSaveReqVO;
+import com.yc.ship.module.product.controller.admin.voyage.vo.*;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
 
 import javax.validation.Valid;
@@ -74,4 +71,11 @@ public interface VoyageService {
      * @param createReqVO
      */
     void createVoyageBatch(VoyageSaveBatchReqVO createReqVO);
+
+    /**
+     * 获取航次列表-日历
+     * @param reqVO
+     * @return
+     */
+    List<VoyageDO> getListCalendar(VoyageCalendarReqVO reqVO);
 }

+ 6 - 4
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyage/VoyageServiceImpl.java

@@ -7,10 +7,7 @@ import cn.hutool.core.util.IdUtil;
 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.voyage.vo.VoyagePageReqVO;
-import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageReqVO;
-import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageSaveBatchReqVO;
-import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageSaveReqVO;
+import com.yc.ship.module.product.controller.admin.voyage.vo.*;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
 import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockDO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdetail.VoyageStockDetailDO;
@@ -278,4 +275,9 @@ public class VoyageServiceImpl implements VoyageService {
         saveOrUpdateVoyageStockBatch(voyageDOList, shipId);
     }
 
+    @Override
+    public List<VoyageDO> getListCalendar(VoyageCalendarReqVO reqVO) {
+        return voyageMapper.selectListCalendar(reqVO);
+    }
+
 }

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

@@ -1,5 +1,6 @@
 package com.yc.ship.module.product.service.voyagestockdistribute;
 
+import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.module.ota.api.OtaDistributorApi;
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
 import com.yc.ship.module.ota.enums.DistributorTypeEnum;
@@ -98,9 +99,11 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
                 VoyageStockDistributeDO stockDistributeDO = new VoyageStockDistributeDO();
                 stockDistributeDO.setVoyageId(item.getVoyageId());
                 stockDistributeDO.setRoomModelId(item.getRoomModelId());
+                stockDistributeDO.setRoomModelName(item.getRoomModelName());
                 stockDistributeDO.setFloor(item.getFloor());
                 stockDistributeDO.setNum(0);
                 stockDistributeDO.setDistributorType(DistributorTypeEnum.OTA.getType());
+                stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTA.getName());
                 stockDistributeDO.setDistributorId(null);
                 stockDistributeDO.setStoreId(null);
                 stockDistributeDO.setShipId(voyage.getShipId());
@@ -111,9 +114,11 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
                 VoyageStockDistributeDO stockDistributeDO = new VoyageStockDistributeDO();
                 stockDistributeDO.setVoyageId(item.getVoyageId());
                 stockDistributeDO.setRoomModelId(item.getRoomModelId());
+                stockDistributeDO.setRoomModelName(item.getRoomModelName());
                 stockDistributeDO.setFloor(item.getFloor());
                 stockDistributeDO.setNum(0);
                 stockDistributeDO.setDistributorType(DistributorTypeEnum.OTC.getType());
+                stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTC.getName());
                 stockDistributeDO.setDistributorId(null);
                 stockDistributeDO.setStoreId(null);
                 stockDistributeDO.setShipId(voyage.getShipId());
@@ -127,10 +132,13 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
                     VoyageStockDistributeDO stockDistributeDO = new VoyageStockDistributeDO();
                     stockDistributeDO.setVoyageId(item.getVoyageId());
                     stockDistributeDO.setRoomModelId(item.getRoomModelId());
+                    stockDistributeDO.setRoomModelName(item.getRoomModelName());
                     stockDistributeDO.setFloor(item.getFloor());
                     stockDistributeDO.setNum(0);
                     stockDistributeDO.setDistributorType(DistributorTypeEnum.OTA.getType());
+                    stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTA.getName());
                     stockDistributeDO.setDistributorId(distributor.getId());
+                    stockDistributeDO.setDistributorName(distributor.getName());
                     stockDistributeDO.setStoreId(null);
                     stockDistributeDO.setShipId(voyage.getShipId());
                     list.add(stockDistributeDO);
@@ -138,15 +146,19 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
             });
             //旅行社分销商类型的分销商数据
             List<DistributorRespDTO> otcDistributorList = otaDistributorApi.getDistributorList(DistributorTypeEnum.OTC.getType());
+            Map<Long, DistributorRespDTO> otcIdDistributorMap = CollectionUtils.convertMap(otcDistributorList, DistributorRespDTO::getId);
             otcDistributorList.stream().forEach(distributor -> {
                 stockDetailDOS.stream().forEach(item -> {
                     VoyageStockDistributeDO stockDistributeDO = new VoyageStockDistributeDO();
                     stockDistributeDO.setVoyageId(item.getVoyageId());
                     stockDistributeDO.setRoomModelId(item.getRoomModelId());
+                    stockDistributeDO.setRoomModelName(item.getRoomModelName());
                     stockDistributeDO.setFloor(item.getFloor());
                     stockDistributeDO.setNum(0);
                     stockDistributeDO.setDistributorType(DistributorTypeEnum.OTC.getType());
+                    stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTC.getName());
                     stockDistributeDO.setDistributorId(distributor.getId());
+                    stockDistributeDO.setDistributorName(distributor.getName());
                     stockDistributeDO.setStoreId(null);
                     stockDistributeDO.setShipId(voyage.getShipId());
                     list.add(stockDistributeDO);
@@ -159,11 +171,15 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
                     VoyageStockDistributeDO stockDistributeDO = new VoyageStockDistributeDO();
                     stockDistributeDO.setVoyageId(item.getVoyageId());
                     stockDistributeDO.setRoomModelId(item.getRoomModelId());
+                    stockDistributeDO.setRoomModelName(item.getRoomModelName());
                     stockDistributeDO.setFloor(item.getFloor());
                     stockDistributeDO.setNum(0);
                     stockDistributeDO.setDistributorType(DistributorTypeEnum.OTC.getType());
+                    stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTC.getName());
                     stockDistributeDO.setDistributorId(store.getAgencyId());
+                    stockDistributeDO.setDistributorName(otcIdDistributorMap.get(store.getAgencyId()).getName());
                     stockDistributeDO.setStoreId(store.getId());
+                    stockDistributeDO.setStoreName(store.getName());
                     stockDistributeDO.setShipId(voyage.getShipId());
                     list.add(stockDistributeDO);
                 });