Преглед изворни кода

feat(d2-02-t3): well/update支持范围字段+补sendUpdateSettingEvent(修well更新不发MQTT缺口)

huangjie пре 2 дана
родитељ
комит
38f7da7e15

+ 7 - 0
aivof-tl-control/aivfo-tl-control-entity/src/main/java/com/aivfo/tl/control/entity/param/housewellsetting/HouseWellSettingUpdate.java

@@ -33,4 +33,11 @@ public class HouseWellSettingUpdate extends HouseWellSettingBaseDTO {
     @ApiModelProperty(value = "对焦起点下移层数(手调拍摄层;携带即视为手调保存请求)")
     private Integer moveDownLayer;
 
+    // 自动对焦重构 D2-02-T3:well 级对焦范围覆盖(留空=继承设备级)。携带任一即调 updateFocusRange 写库并发 MQTT 通知 control 重拉。
+    @ApiModelProperty(value = "well级水平对焦半幅覆盖(空=继承设备级)")
+    private Integer horizontalFocusRange;
+
+    @ApiModelProperty(value = "well级垂直对焦半幅覆盖(空=继承设备级)")
+    private Integer verticalFocusRange;
+
 }

+ 9 - 0
aivof-tl-control/aivfo-tl-control-manage/src/main/java/com/aivfo/tl/control/manage/impl/tl/TimeLapseSettingManageImpl.java

@@ -291,6 +291,15 @@ public class TimeLapseSettingManageImpl implements TimeLapseSettingManage {
                     houseWellSettingUpdate.getFocusLayerCount(),
                     moveDownLayer);
         }
+        // 自动对焦重构 D2-02-T3:调试页改 well 对焦范围保存。携带任一(水平/垂直)即写 well 级覆盖
+        //   (null=留空继承设备级)。两者皆未传则不动该 well 的范围列。
+        Integer horizontalFocusRange = houseWellSettingUpdate.getHorizontalFocusRange();
+        Integer verticalFocusRange = houseWellSettingUpdate.getVerticalFocusRange();
+        if (ObjectUtils.isNotNull(horizontalFocusRange) || ObjectUtils.isNotNull(verticalFocusRange)) {
+            houseWellSettingService.updateFocusRange(tlSn, houseSn, wellSn, horizontalFocusRange, verticalFocusRange);
+        }
+        // 修复 well/update 不发 MQTT 缺口:保存后即时通知 control 重拉,否则只能等其自发重拉才生效。
+        this.sendUpdateSettingEvent(tlSn);
     }
 
     /**

+ 19 - 0
aivof-tl-control/aivfo-tl-control-service-impl/src/main/java/com/aivfo/tl/control/service/impl/house/HouseWellSettingServiceImpl.java

@@ -174,6 +174,25 @@ public class HouseWellSettingServiceImpl extends BaseServiceImpl<HouseWellSettin
         this.update(wrapper);
     }
 
+    /**
+     * 自动对焦重构 D2-02-T3:写 well 级对焦范围覆盖(留空=null 继承设备级)。
+     *
+     * @param horizontalFocusRange well级水平对焦半幅覆盖(null=继承设备级)
+     * @param verticalFocusRange   well级垂直对焦半幅覆盖(null=继承设备级)
+     */
+    @Override
+    public void updateFocusRange(String tlSn, Integer houseSn, Integer wellSn,
+                                 Integer horizontalFocusRange, Integer verticalFocusRange) {
+        LambdaUpdateWrapper<HouseWellSetting> wrapper = new LambdaUpdateWrapper<>();
+        // LambdaUpdateWrapper.set 对 null 也生成 SET col=null,实现"留空继承设备级"(well 级覆盖清空)。
+        wrapper.set(HouseWellSetting::getHorizontalFocusRange, horizontalFocusRange)
+                .set(HouseWellSetting::getVerticalFocusRange, verticalFocusRange)
+                .eq(HouseWellSetting::getTlSn, tlSn)
+                .eq(HouseWellSetting::getHouseSn, houseSn)
+                .eq(HouseWellSetting::getWellSn, wellSn);
+        this.update(wrapper);
+    }
+
     /**
      * 获取舱室和well的对焦配置
      *

+ 9 - 0
aivof-tl-control/aivfo-tl-control-service/src/main/java/com/aivfo/tl/control/service/house/HouseWellSettingService.java

@@ -129,6 +129,15 @@ public interface HouseWellSettingService extends IService<HouseWellSetting> {
     void updateManualLayerTune(String tlSn, Integer houseSn, Integer wellSn,
                                Integer focusLayerSpacingPulse, Integer focusLayerCount, Integer moveDownLayer);
 
+    /**
+     * 自动对焦重构 D2-02-T3:写 well 级对焦范围覆盖(留空=null 继承设备级)。
+     *
+     * @param horizontalFocusRange well级水平对焦半幅覆盖(null=继承设备级)
+     * @param verticalFocusRange   well级垂直对焦半幅覆盖(null=继承设备级)
+     */
+    void updateFocusRange(String tlSn, Integer houseSn, Integer wellSn,
+                          Integer horizontalFocusRange, Integer verticalFocusRange);
+
     /**
      * 获取舱室和well的对焦配置
      *