浏览代码

查询游客名单导出完善

caotao 1 周之前
父节点
当前提交
7b40d6adf4

+ 16 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java

@@ -627,7 +627,7 @@ public class OtcTradeOrderController {
     }
 
     /**
-     * 导出游客名单
+     * 导出游客名单-计调
      */
     @GetMapping("/export-touristExcel")
     @Operation(summary = "导出游客名单 Excel")
@@ -640,4 +640,19 @@ public class OtcTradeOrderController {
         InputStream is = Files.newInputStream(tempFile.toPath());
         IOUtils.copy(is, response.getOutputStream());
     }
+
+    /**
+     * 导出游客名单-代理商
+     */
+    @GetMapping("/export-touristExcel-agent")
+    @Operation(summary = "导出游客名单 Excel")
+    @OperateLog(type = EXPORT, enable = false)
+    @PlatTenantEnv
+    public void exportTouristListToAgent(@Valid TradeOrderPageReqVO pageReqVO, HttpServletResponse response) throws IOException {
+        File tempFile = otcTradeOrderService.exportTouristListToAgent(pageReqVO);
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        response.setHeader("Content-Disposition", "attachment; filename=" + tempFile.getName());
+        InputStream is = Files.newInputStream(tempFile.toPath());
+        IOUtils.copy(is, response.getOutputStream());
+    }
 }

+ 7 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java

@@ -17,6 +17,7 @@ import com.yc.ship.module.trade.dal.dataobject.contract.ContractDO;
 import com.yc.ship.module.trade.dal.dataobject.insurance.InsuranceDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeDetailBaseDO;
 
+import javax.validation.Valid;
 import java.io.File;
 import java.math.BigDecimal;
 import java.util.List;
@@ -152,7 +153,12 @@ public interface OtcTradeOrderService {
     OrderTotalRespVO getOrderTotal(OrderTotalQueryVO queryVO);
 
     /**
-     * 导出游客名单
+     * 导出游客名单-计调
      */
     File exportTouristList(TradeOrderPageReqVO pageReqVO);
+
+    /**
+     * 导出游客名单-代理商
+     */
+    File exportTouristListToAgent(@Valid TradeOrderPageReqVO pageReqVO);
 }

+ 30 - 3
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -2703,7 +2703,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
 
     /**
-     * 导出游客名单列表(按订单和房间分组)
+     * 导出游客名单列表-计调
      *
      * 功能说明:
      * 1. 查询订单基础信息(船名、航期、航向)
@@ -2721,6 +2721,34 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
      */
     @Override
     public File exportTouristList(TradeOrderPageReqVO reqVO) {
+        InputStream template = getClass().getClassLoader().getResourceAsStream("templates/tourist_template_operator.xlsx");
+        return getFile(reqVO,template);
+    }
+
+    /**
+     * 导出游客名单列表-计调
+     *
+     * 功能说明:
+     * 1. 查询订单基础信息(船名、航期、航向)
+     * 2. 查询游客列表(包含订单、房间、游客详细信息)
+     * 3. 使用Excel模板进行数据填充
+     * 4. 按订单和房间自动合并单元格
+     *
+     * 导出结构:
+     * - 订单详情(8列):代理商、订单号、团号、航向、航期、应收款、实收款、定金
+     * - 房间详情(3列):序号、房型、入住类型
+     * - 游客详情(8列):姓名、性别、证件类型、证件号、游客类型、国籍、增值服务、备注
+     *
+     * @param reqVO 查询条件
+     * @return 导出的Excel文件
+     */
+    @Override
+    public File exportTouristListToAgent(TradeOrderPageReqVO reqVO) {
+        InputStream template = getClass().getClassLoader().getResourceAsStream("templates/tourist_template_angent.xlsx");
+        return getFile(reqVO,template);
+    }
+
+    private File getFile(TradeOrderPageReqVO reqVO,InputStream template) {
         // 1. 查询订单基础信息(船名、航期、航向)
         Map<String, Object> baseInfo = tradeOrderMapper.selectTouristExportBase(reqVO);
         // 查询订单表头信息
@@ -2729,7 +2757,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         List<TouristExportVisitorVO> visitorList = tradeVisitorMapper.selectTouristExportVisitor(reqVO);
 
         // 3. 加载Excel模板
-        InputStream template = getClass().getClassLoader().getResourceAsStream("templates/tourist_template.xlsx");
         String fileName = String.valueOf(System.currentTimeMillis());
 //        String tmpFile = "/tmp/" + fileName + "_tourist.xlsx";
         String tmpFile = "D:/tmp/" + fileName + "_tourist.xlsx";
@@ -2740,7 +2767,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         ExcelWriter excelWriter = EasyExcel.write(tmpFile).withTemplate(template).build();
         WriteSheet writeSheet = EasyExcelFactory.writerSheet()
                 .registerWriteHandler(new ExcelStyleHandler(visitorList))
-               /* .registerWriteHandler(new TouristListMergeStrategy(visitorList))*/
+                /* .registerWriteHandler(new TouristListMergeStrategy(visitorList))*/
                 .build();
         FillConfig fillConfig = FillConfig.builder().forceNewRow(true).autoStyle(true).build();
 

二进制
ship-module-trade/ship-module-trade-biz/src/main/resources/templates/tourist_template.xlsx


二进制
ship-module-trade/ship-module-trade-biz/src/main/resources/templates/tourist_template_operator.xlsx