From b11f1640a75c5f21ef678de2c526ab44d9af2991 Mon Sep 17 00:00:00 2001 From: dzq Date: Thu, 15 May 2025 16:59:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=9F=9C=E6=A0=BC?= =?UTF-8?q?=E5=85=B3=E8=81=94=E4=B8=BB=E6=9D=BFID=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=B9=B6=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在CabinetCellDTO和CabinetCellEntity中添加mainboardId字段,用于关联柜格与主板。更新CabinetCellController和OrderApplicationService中的逻辑,使用主板ID获取锁控编号,确保开柜指令的正确生成。 --- .../api/controller/CabinetCellController.java | 10 ++++++++-- .../domain/cabinet/cell/db/CabinetCellEntity.java | 4 ++++ .../domain/cabinet/cell/dto/CabinetCellDTO.java | 3 +++ .../domain/shop/order/OrderApplicationService.java | 9 ++++++++- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java index dab58c7..e625881 100644 --- a/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java @@ -7,6 +7,8 @@ import com.agileboot.common.exception.ApiException; import com.agileboot.common.exception.error.ErrorCode; import com.agileboot.domain.cabinet.cell.model.CabinetCellModel; import com.agileboot.domain.cabinet.cell.model.CabinetCellModelFactory; +import com.agileboot.domain.cabinet.mainboard.model.CabinetMainboardModel; +import com.agileboot.domain.cabinet.mainboard.model.CabinetMainboardModelFactory; import com.agileboot.domain.cabinet.operation.command.AddCabinetCellOperationCommand; import com.agileboot.domain.cabinet.operation.model.CabinetCellOperationModel; import com.agileboot.domain.cabinet.operation.model.CabinetCellOperationModelFactory; @@ -36,6 +38,7 @@ public class CabinetCellController { private final CabinetCellModelFactory cabinetCellModelFactory; private final GoodsModelFactory goodsModelFactory; private final SmartCabinetModelFactory smartCabinetModelFactory; + private final CabinetMainboardModelFactory cabinetMainboardModelFactory; @GetMapping("/detail") public ResponseDTO> getCabinetDetail() { @@ -54,7 +57,11 @@ public class CabinetCellController { CabinetCellOperationModel cellOperationModel = cabinetCellOperationModelFactory.create(); SmartCabinetModel smartCabinetModel = smartCabinetModelFactory.loadById(cabinetId); - Integer lockControlNo = smartCabinetModel.getLockControlNo(); + + CabinetCellModel cabinetCellModel = cabinetCellModelFactory.loadById(operationCommand.getCellId()); + CabinetMainboardModel cabinetMainboardModel = cabinetMainboardModelFactory.loadById(cabinetCellModel.getMainboardId()); + Integer lockControlNo = cabinetMainboardModel.getLockControlNo(); + // 发送指令 String mqttDate = "8A"; mqttDate += String.format("%02X", lockControlNo); @@ -72,7 +79,6 @@ public class CabinetCellController { if (operationCommand.getCellId() == null) { log.error("openCabinet 格口ID为空"); } else { - CabinetCellModel cabinetCellModel = cabinetCellModelFactory.loadById(operationCommand.getCellId()); operationCommand.setGoodsId(cabinetCellModel.getGoodsId()); operationCommand.setGoodsName(""); diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/db/CabinetCellEntity.java b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/db/CabinetCellEntity.java index 3b52a46..f5f10e5 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/db/CabinetCellEntity.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/db/CabinetCellEntity.java @@ -35,6 +35,10 @@ public class CabinetCellEntity extends BaseEntity { @TableField("cabinet_id") private Long cabinetId; + @ApiModelProperty("关联主板ID") + @TableField("mainboard_id") + private Long mainboardId; + @ApiModelProperty("格口号") @TableField("cell_no") private Integer cellNo; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/dto/CabinetCellDTO.java b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/dto/CabinetCellDTO.java index 2b5741c..5b4adc8 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/dto/CabinetCellDTO.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/dto/CabinetCellDTO.java @@ -37,6 +37,9 @@ public class CabinetCellDTO { @ExcelColumn(name = "关联柜机ID") private Long cabinetId; + @ExcelColumn(name = "关联主板ID") + private Long mainboardId; + @ExcelColumn(name = "格口号") private Integer cellNo; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java index d800d5b..1edd24e 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java @@ -8,6 +8,10 @@ import com.agileboot.common.exception.ApiException; import com.agileboot.common.exception.error.ErrorCode; import com.agileboot.domain.cabinet.cell.db.CabinetCellEntity; import com.agileboot.domain.cabinet.cell.db.CabinetCellService; +import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardEntity; +import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardService; +import com.agileboot.domain.cabinet.mainboard.model.CabinetMainboardModel; +import com.agileboot.domain.cabinet.mainboard.model.CabinetMainboardModelFactory; import com.agileboot.domain.cabinet.operation.command.AddCabinetCellOperationCommand; import com.agileboot.domain.cabinet.operation.model.CabinetCellOperationModel; import com.agileboot.domain.cabinet.operation.model.CabinetCellOperationModelFactory; @@ -75,6 +79,7 @@ public class OrderApplicationService { private final QyUserModelFactory qyUserModelFactory; private final CabinetCellOperationModelFactory cabinetCellOperationModelFactory; private final PaymentOperationLogApplicationService paymentOperationLogApplicationService; + private final CabinetMainboardService cabinetMainboardService; public PageDTO getOrderList(SearchShopOrderQuery query) { Page page = orderService.getOrderList(query); @@ -111,6 +116,8 @@ public class OrderApplicationService { throw new ApiException(ErrorCode.Client.COMMON_FORBIDDEN_TO_CALL, "柜子不存在"); } + CabinetMainboardEntity cabinetMainboard = cabinetMainboardService.getById(cabinetCellEntity.getMainboardId()); + operationCommand.setCellId(goodsEntity.getCellId()); operationCommand.setGoodsId(goodsEntity.getGoodsId()); operationCommand.setGoodsName(goodsEntity.getGoodsName()); @@ -120,7 +127,7 @@ public class OrderApplicationService { // 构造MQTT开柜指令: // 指令格式:8A + 锁控编号(2位HEX) + 引脚号(2位HEX) + 操作码11 String mqttDate = "8A"; - mqttDate += String.format("%02X", smartCabinet.getLockControlNo()); + mqttDate += String.format("%02X", cabinetMainboard.getLockControlNo()); mqttDate += String.format("%02X", cabinetCellEntity.getPinNo()); mqttDate += "11"; try {