拆分顺序:数据库 → 实体/VO/DTO → Mapper/XML → Service → Controller → 前端 API → 前端页面 每个任务 = 可独立提交的原子变更
forge-server/db/migration/V1.0.143__add_hotel_reconciliation_module.sql — 新建CREATE TABLE IF NOT EXISTS hotel_reconciliation(主表,含逻辑删除 del_flag)CREATE TABLE IF NOT EXISTS hotel_reconciliation_item(明细表)hotel_reconciliation_status(0=待确认/1=已确认/2=已结算)hotel_reconciliation_export + 列配置NOT EXISTS 防重复,tenant_id = 1reconciliation/ 子包下):
domain/HotelReconciliation.java — 新建,extends TenantEntity,含 @TableLogicdomain/HotelReconciliationItem.java — 新建,extends TenantEntitydto/ReconciliationGenerateDTO.java — 新建(yearMonth 字段)vo/HotelReconciliationVO.java — 新建,纯 @Data POJOvo/ReconciliationDetailVO.java — 新建,含主表信息 + List 明细
mapper/HotelReconciliationMapper.java — 新建mapper/HotelReconciliationItemMapper.java — 新建resources/mapper/business/hotel/reconciliation/HotelReconciliationMapper.xml — 新建resources/mapper/business/hotel/reconciliation/HotelReconciliationItemMapper.xml — 新建selectPage:对账单分页查询(支持 status 筛选)selectPartnerPage:餐厅端分页(仅 status IN (1,2))selectMaxNo:查当月最大编号(生成编号用)selectOrdersByMonth:查指定月份已完成订单(生成对账单数据源)selectDetailByReconciliationId:按对账单 ID 查明细列表selectExportList:导出查询(供 Excel 导出配置调用)service/HotelReconciliationService.java — 新建service/impl/HotelReconciliationServiceImpl.java — 新建IPage<HotelReconciliationVO> reconciliationPage(PageQuery, HotelReconciliation query) — 酒店端分页IPage<HotelReconciliationVO> partnerPage(PageQuery, HotelReconciliation query) — 餐厅端分页(跨租户)ReconciliationDetailVO detail(Long id) — 详情ReconciliationDetailVO partnerDetail(Long id) — 餐厅端详情(跨租户)void generate(ReconciliationGenerateDTO dto) — 生成对账单void excludeItem(Long itemId, String reason) — 排除/恢复明细void submit(Long id) — 提交给餐厅(待确认→已确认的前置步骤,或直接改为可确认)void confirm(Long id) — 餐厅确认(跨租户)void settle(Long id, String remark) — 标记已结算List<HotelReconciliationVO> queryExportList(Map<String, Object> params) — 导出查询controller/HotelReconciliationController.java — 新建,基路径 /hotel/reconciliationcontroller/HotelReconciliationPartnerController.java — 新建,基路径 /hotel/reconciliation/partnerGET /page — 分页列表GET /detail — 详情POST /generate — 生成对账单POST /excludeItem — 排除/恢复POST /submit — 提交给餐厅POST /settle — 标记结算GET /export — 导出GET /page — 分页列表(跨租户,仅已确认+已结算)GET /detail — 详情(跨租户)POST /confirm — 确认(跨租户)GET /export — 导出(跨租户)forge-admin-ui/src/api/hotel.js — 修改getReconciliationPage(params) — 酒店端分页getReconciliationDetail(id) — 酒店端详情generateReconciliation(data) — 生成对账单excludeReconciliationItem(itemId, reason) — 排除明细submitReconciliation(id) — 提交settleReconciliation(id, remark) — 标记结算exportReconciliation(params) — 导出getPartnerReconciliationPage(params) — 餐厅端分页getPartnerReconciliationDetail(id) — 餐厅端详情confirmReconciliation(id) — 餐厅确认exportPartnerReconciliation(params) — 餐厅端导出forge-admin-ui/src/views/hotel/reconciliation.vue — 新建forge-admin-ui/src/views/hotel/reconciliationPartner.vue — 新建mvn compile -pl forge-business/forge-hotel -am -DskipTestspnpm.cmd lint:fix(forge-admin-ui)