Files
baiyue-firstleg/lastleg-service/src/test/resources/architecture/lastleg-slice-dependencies.json
T

331 lines
19 KiB
JSON

{
"schemaVersion": 1,
"forbidPackageCycles": true,
"description": "Development-stage Lastleg slice dependency baseline. Existing edges may be removed; new edges require architecture review.",
"allowedSliceEdges": [
"fleet->shared-technical",
"fleet->overseas-master-data",
"dispatch-delivery->dropship",
"dispatch-delivery->fleet",
"dispatch-delivery->inbound-pda",
"dispatch-delivery->inventory",
"dispatch-delivery->relabel-transfer-discard",
"dispatch-delivery->shared-technical",
"dispatch-delivery->tailleg-handoff",
"dropship->inbound-pda",
"dropship->shared-technical",
"dropship->tailleg-handoff",
"inbound-pda->dropship",
"inbound-pda->inventory",
"inbound-pda->relabel-transfer-discard",
"inbound-pda->shared-technical",
"inbound-pda->tailleg-handoff",
"inventory->inbound-pda",
"inventory->shared-technical",
"overseas-master-data->shared-technical",
"procurement-trucking-looseboard->shared-technical",
"procurement-trucking-looseboard->tailleg-handoff",
"relabel-transfer-discard->dispatch-delivery",
"relabel-transfer-discard->dropship",
"shared-technical->tailleg-handoff",
"relabel-transfer-discard->inventory",
"relabel-transfer-discard->shared-technical",
"relabel-transfer-discard->tailleg-handoff",
"tailleg-handoff->dispatch-delivery",
"tailleg-handoff->dropship",
"tailleg-handoff->inbound-pda",
"tailleg-handoff->inventory",
"tailleg-handoff->shared-technical"
],
"requiredClassLocations": {
"com.baiyue.lastleg.masterdata.vehicle.adapter.in.web.PlatformVehicleController": "src/main/java/com/baiyue/lastleg/masterdata/vehicle/adapter/in/web/PlatformVehicleController.java",
"com.baiyue.lastleg.masterdata.vehicle.adapter.out.persistence.VehicleMapper": "src/main/java/com/baiyue/lastleg/masterdata/vehicle/adapter/out/persistence/VehicleMapper.java",
"com.baiyue.lastleg.masterdata.vehicle.adapter.out.persistence.VehiclePersistenceAdapter": "src/main/java/com/baiyue/lastleg/masterdata/vehicle/adapter/out/persistence/VehiclePersistenceAdapter.java",
"com.baiyue.lastleg.masterdata.vehicle.adapter.out.persistence.VehicleRecord": "src/main/java/com/baiyue/lastleg/masterdata/vehicle/adapter/out/persistence/VehicleRecord.java",
"com.baiyue.lastleg.masterdata.vehicle.application.VehicleApplicationService": "src/main/java/com/baiyue/lastleg/masterdata/vehicle/application/VehicleApplicationService.java",
"com.baiyue.lastleg.masterdata.vehicle.application.model.VehicleModels": "src/main/java/com/baiyue/lastleg/masterdata/vehicle/application/model/VehicleModels.java",
"com.baiyue.lastleg.masterdata.vehicle.application.port.out.VehicleRepository": "src/main/java/com/baiyue/lastleg/masterdata/vehicle/application/port/out/VehicleRepository.java"
},
"forbiddenSlices": [
"security-projection"
],
"forbiddenTypePrefixes": [
"com.baiyue.lastleg.security.controller.LastlegSecurity",
"com.baiyue.lastleg.security.dto.LastlegSecurity",
"com.baiyue.lastleg.security.service.LastlegSecurity",
"com.baiyue.lastleg.security.service.SecurityProjectionMonotonicity"
],
"reviewedClassDependencies": [
{
"source": "com.baiyue.lastleg.transfer.repository.TransferForecastRepository",
"target": "com.baiyue.lastleg.inboundplan.entity.InboundPlanLine",
"reason": "转运测量完成前补充预报箱,在同一锁单事务按客户及关联订单同步该转运自建计划行的预报箱数;仅批准这两个既有类型引用,不开放其他入仓实现或实收库存写入。"
},
{
"source": "com.baiyue.lastleg.transfer.repository.TransferForecastRepository",
"target": "com.baiyue.lastleg.inboundplan.mapper.InboundPlanLineMapper",
"reason": "转运测量完成前补充预报箱,在同一锁单事务按客户及关联订单同步该转运自建计划行的预报箱数;仅批准这两个既有类型引用,不开放其他入仓实现或实收库存写入。"
},
{
"source": "com.baiyue.lastleg.relabel.service.ReturnRelabelPackingService",
"target": "com.baiyue.lastleg.pda.security.PdaWarehouseIdentity",
"reason": "退货换标合箱沿用PDA冻结仓身份作为操作人与仓库约束,不引用入仓业务服务或持久化。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferReceiptCoordinator",
"target": "com.baiyue.lastleg.inboundplan.pda.gateway.WarehouseResourceGateway",
"reason": "转仓实收复用仓储资源HTTP网关,校验及预留目标托盘库位;资源权威仍在Warehouse,不读取入仓持久化。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.fleet.quote.FleetQuoteModels",
"reason": "平台车队报价导出仅组合公开分页查询和投影,沿用列表筛选,不访问车队实体或Mapper。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.fleet.quote.FleetQuoteService",
"reason": "平台车队报价导出仅组合公开分页查询和投影,沿用列表筛选,不访问车队实体或Mapper。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.fleet.reporting.TripOperationsModels",
"reason": "平台出车记录导出仅组合公开报表查询及返回投影,成本可见性仍由导出上下文传递,不访问车队持久化。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.fleet.reporting.TripOperationsService",
"reason": "平台出车记录导出仅组合公开报表查询及返回投影,成本可见性仍由导出上下文传递,不访问车队持久化。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.inventory.query.dto.InventoryQueryRequests",
"reason": "平台库存导出复用库存公开查询与筛选DTO,客户范围及业务投影与列表一致,不读取库存Mapper。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.inventory.query.service.InventoryQueryService",
"reason": "平台库存导出复用库存公开查询与筛选DTO,客户范围及业务投影与列表一致,不读取库存Mapper。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.masterdata.exchange.dto.MonthlyExchangeRateDtos",
"reason": "平台月度汇率导出复用既有分页查询和DTO,不直接访问主数据持久化。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.masterdata.exchange.service.MonthlyExchangeRateService",
"reason": "平台月度汇率导出复用既有分页查询和DTO,不直接访问主数据持久化。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.masterdata.quote.dto.OverseasQuoteRequests",
"reason": "平台海外报价导出复用既有分页查询和筛选DTO,不直接访问主数据持久化。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.masterdata.quote.service.OverseasQuoteService",
"reason": "平台海外报价导出复用既有分页查询和筛选DTO,不直接访问主数据持久化。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.masterdata.vehicle.application.model.VehicleModels",
"reason": "平台车辆导出仅使用车辆应用层公开分页查询及模型,禁止访问车辆持久化适配器。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.masterdata.vehicle.application.VehicleApplicationService",
"reason": "平台车辆导出仅使用车辆应用层公开分页查询及模型,禁止访问车辆持久化适配器。"
},
{
"source": "com.baiyue.lastleg.selfoperated.analytics.request.SelfopEgressController",
"target": "com.baiyue.lastleg.security.InternalServiceTokenGuard",
"reason": "内部出口许可端点复用现行服务令牌校验,不复制认证实现;只允许该控制器依赖该基础校验器,不开放客户业务或共享技术切片的其他引用。"
},
{
"source": "com.baiyue.lastleg.export.LastlegExportProviderService",
"target": "com.baiyue.lastleg.selfoperated.analytics.query.InventoryTurnoverExport",
"reason": "统一导出装配器只调用自营周转的公开导出投影,复用固定版本查询;不开放自营Mapper或客户WMS库存访问,不产生反向依赖。"
},
{
"source": "com.baiyue.lastleg.financefee.fleet.VehicleCareFinanceAdapter",
"target": "com.baiyue.lastleg.fleet.maintenance.VehicleCareFinanceGateway",
"reason": "费用适配器仅实现Fleet公司成本换算与Outbox端口,Fleet不读取费用模块或Outbox持久化实现;同事务发布且不新增package循环。"
},
{
"source": "com.baiyue.lastleg.transfer.fleet.FleetIncomingAdapter",
"target": "com.baiyue.lastleg.fleet.trip.FleetBookingIncomingGateway",
"reason": "转运适配器实现外接来货端口,仅传登记与实测证据;车队不读取转运Mapper或库存表。"
},
{
"source": "com.baiyue.lastleg.transfer.fleet.FleetIncomingAdapter",
"target": "com.baiyue.lastleg.fleet.trip.FleetDispatchGateway",
"reason": "仅复用端口定义的稳定卸货目的地匹配键,禁止放宽整个转运切片对车队实现的引用。"
},
{
"source": "com.baiyue.lastleg.controller.LastlegOrderController",
"target": "com.baiyue.lastleg.relabel.dto.RelabelRequests",
"reason": "尾程订单直接换标审核入口委托既有换标服务和DTO,业务状态仍由换标服务维护。"
},
{
"source": "com.baiyue.lastleg.controller.LastlegOrderController",
"target": "com.baiyue.lastleg.relabel.dto.RelabelResponses",
"reason": "尾程订单直接换标审核入口委托既有换标服务和DTO,业务状态仍由换标服务维护。"
},
{
"source": "com.baiyue.lastleg.controller.LastlegOrderController",
"target": "com.baiyue.lastleg.relabel.service.RelabelApplicationService",
"reason": "尾程订单直接换标审核入口委托既有换标服务和DTO,业务状态仍由换标服务维护。"
},
{
"source": "com.baiyue.lastleg.discard.pda.controller.PdaCargoDiscardController",
"target": "com.baiyue.lastleg.pda.security.PdaWarehouseIdentity",
"reason": "PDA废弃入口复用统一Token身份与绑定仓解析,不另建本地安全投影。"
},
{
"source": "com.baiyue.lastleg.discard.pda.service.PdaCargoDiscardService",
"target": "com.baiyue.lastleg.pda.security.PdaWarehouseIdentity",
"reason": "PDA废弃作业使用同一已验证身份范围。"
},
{
"source": "com.baiyue.lastleg.transfer.controller.PdaWarehouseTransferController",
"target": "com.baiyue.lastleg.pda.security.PdaWarehouseIdentity",
"reason": "转运PDA入口复用同一绑定仓身份解析。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.entity.InboundPlan",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.entity.InboundPlanLine",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.entity.InboundPlanPallet",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.entity.InboundPlanPalletAllocation",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.mapper.InboundPlanMapper",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.mapper.InboundPlanLineMapper",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.mapper.InboundPlanPalletMapper",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.mapper.InboundPlanPalletAllocationMapper",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.pda.entity.InboundStockReceipt",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.pda.mapper.InboundStockReceiptMapper",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.transfer.service.WarehouseTransferService",
"target": "com.baiyue.lastleg.inboundplan.pda.gateway.WarehouseResourceGateway",
"reason": "仓储转运实收打托同步本服务入仓计划、分配和收货事实,资源仍经Warehouse网关;仅冻结这些既有引用,不开放其他转运类直接读取入仓实现。"
},
{
"source": "com.baiyue.lastleg.financefee.service.OverseasFeeCurrencyConverter",
"target": "com.baiyue.lastleg.masterdata.exchange.entity.MonthlyExchangeRate",
"reason": "海外费用按业务月份读取当前正式月度汇率,缺失或未生效拒绝;仅此换算器可使用这两项现有实现引用。"
},
{
"source": "com.baiyue.lastleg.financefee.service.OverseasFeeCurrencyConverter",
"target": "com.baiyue.lastleg.masterdata.exchange.mapper.MonthlyExchangeRateMapper",
"reason": "海外费用按业务月份读取当前正式月度汇率,缺失或未生效拒绝;仅此换算器可使用这两项现有实现引用。"
},
{
"source": "com.baiyue.lastleg.returnreceipt.controller.PdaReturnReceiptController",
"target": "com.baiyue.lastleg.relabel.pda.gateway.RelabelPhotoFileGateway",
"reason": "退货签收照片复用当前业务文件网关。"
},
{
"source": "com.baiyue.lastleg.returnreceipt.service.ReturnReceiptService",
"target": "com.baiyue.lastleg.relabel.entity.RelabelApplication",
"reason": "退货实收后按本客户可用退货箱创建换标申请及明细,照片复用原网关;保留同服务事务内稳定关联。"
},
{
"source": "com.baiyue.lastleg.returnreceipt.service.ReturnReceiptService",
"target": "com.baiyue.lastleg.relabel.entity.RelabelItem",
"reason": "退货实收后按本客户可用退货箱创建换标申请及明细,照片复用原网关;保留同服务事务内稳定关联。"
},
{
"source": "com.baiyue.lastleg.returnreceipt.service.ReturnReceiptService",
"target": "com.baiyue.lastleg.relabel.mapper.RelabelApplicationMapper",
"reason": "退货实收后按本客户可用退货箱创建换标申请及明细,照片复用原网关;保留同服务事务内稳定关联。"
},
{
"source": "com.baiyue.lastleg.returnreceipt.service.ReturnReceiptService",
"target": "com.baiyue.lastleg.relabel.mapper.RelabelItemMapper",
"reason": "退货实收后按本客户可用退货箱创建换标申请及明细,照片复用原网关;保留同服务事务内稳定关联。"
},
{
"source": "com.baiyue.lastleg.returnreceipt.service.ReturnReceiptService",
"target": "com.baiyue.lastleg.relabel.pda.gateway.RelabelPhotoFileGateway",
"reason": "退货实收后按本客户可用退货箱创建换标申请及明细,照片复用原网关;保留同服务事务内稳定关联。"
},
{
"source": "com.baiyue.lastleg.relabel.service.RelabelPalletMeasurementService",
"target": "com.baiyue.lastleg.pda.security.PdaWarehouseIdentity",
"reason": "换标托盘测量沿用PDA冻结仓身份限制原业务操作仓,不导入入仓服务或Mapper。"
},
{
"source": "com.baiyue.lastleg.selfoperated.analytics.diagnostic.QuantityDiagnosticController",
"target": "com.baiyue.lastleg.security.InternalServiceTokenGuard",
"reason": "内部只读数量诊断复用服务间身份守卫,不依赖客户库存与出库业务。"
}
],
"applicationDependencyRule": {
"packagePrefix": "com.baiyue.lastleg.masterdata.vehicle.application",
"allowedInternalPrefix": "com.baiyue.lastleg.masterdata.vehicle.application",
"forbiddenImportPrefixes": [
"org.springframework.web",
"org.apache.ibatis",
"com.baomidou.mybatisplus",
"com.baiyue.lastleg.client",
"com.baiyue.lastleg.config"
]
},
"sliceSpecificRules": {
"fleet": {
"allowedOutgoing": [
"overseas-master-data",
"shared-technical"
],
"allowedIncoming": [
"dispatch-delivery"
]
},
"overseas-master-data": {
"allowedOutgoing": [
"shared-technical"
],
"allowedIncoming": [
"fleet"
]
}
}
}