Junjie
2026-04-27 b27fc4dbb568067b6e8901e5c305d63fdbb1827f
feat: add auto tune persistence and domain models
20个文件已添加
453 ■■■■■ 已修改文件
src/main/java/com/zy/ai/domain/autotune/AutoTuneApplyRequest.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/domain/autotune/AutoTuneApplyResult.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/domain/autotune/AutoTuneChangeCommand.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/domain/autotune/AutoTuneFlowTopologyItem.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/domain/autotune/AutoTuneParameterSnapshot.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/domain/autotune/AutoTuneSnapshot.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/domain/autotune/AutoTuneStationRuntimeItem.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/domain/autotune/AutoTuneTaskSnapshot.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/entity/AiAutoTuneChange.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/entity/AiAutoTuneJob.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/mapper/AiAutoTuneChangeMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/mapper/AiAutoTuneJobMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/service/AiAutoTuneChangeService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/service/AiAutoTuneJobService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/service/impl/AiAutoTuneChangeServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/service/impl/AiAutoTuneJobServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/StationFlowCapacity.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/StationFlowCapacityMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/StationFlowCapacityService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/StationFlowCapacityServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/domain/autotune/AutoTuneApplyRequest.java
New file
@@ -0,0 +1,21 @@
package com.zy.ai.domain.autotune;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class AutoTuneApplyRequest implements Serializable {
    private static final long serialVersionUID = 1L;
    private String reason;
    private Integer analysisIntervalMinutes;
    private String triggerType;
    private Boolean dryRun;
    private List<AutoTuneChangeCommand> changes;
}
src/main/java/com/zy/ai/domain/autotune/AutoTuneApplyResult.java
New file
@@ -0,0 +1,26 @@
package com.zy.ai.domain.autotune;
import com.zy.ai.entity.AiAutoTuneChange;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class AutoTuneApplyResult implements Serializable {
    private static final long serialVersionUID = 1L;
    private Boolean dryRun;
    private Boolean success;
    private Long jobId;
    private String summary;
    private Integer successCount;
    private Integer rejectCount;
    private List<AiAutoTuneChange> changes;
}
src/main/java/com/zy/ai/domain/autotune/AutoTuneChangeCommand.java
New file
@@ -0,0 +1,20 @@
package com.zy.ai.domain.autotune;
import lombok.Data;
import java.io.Serializable;
@Data
public class AutoTuneChangeCommand implements Serializable {
    private static final long serialVersionUID = 1L;
    private String targetType;
    private String targetId;
    private String targetKey;
    private String newValue;
    private String reason;
}
src/main/java/com/zy/ai/domain/autotune/AutoTuneFlowTopologyItem.java
New file
@@ -0,0 +1,33 @@
package com.zy.ai.domain.autotune;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class AutoTuneFlowTopologyItem implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer targetStationId;
    private String direction;
    private List<Integer> upstreamStationIds;
    private List<Integer> downstreamStationIds;
    private List<Integer> flowStationIds;
    private Integer bufferCapacity;
    private Integer occupiedCount;
    private Integer freeCount;
    private Integer nonAutoingCount;
    private Integer loadingCount;
    private Integer taskHoldingCount;
}
src/main/java/com/zy/ai/domain/autotune/AutoTuneParameterSnapshot.java
New file
@@ -0,0 +1,27 @@
package com.zy.ai.domain.autotune;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
@Data
public class AutoTuneParameterSnapshot implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer crnOutBatchRunningLimit;
    private Integer conveyorStationTaskLimit;
    private Integer aiAutoTuneIntervalMinutes;
    private Map<String, Integer> stationOutTaskLimits;
    private Map<String, Integer> crnMaxOutTask;
    private Map<String, Integer> crnMaxInTask;
    private Map<String, Integer> dualCrnMaxOutTask;
    private Map<String, Integer> dualCrnMaxInTask;
}
src/main/java/com/zy/ai/domain/autotune/AutoTuneSnapshot.java
New file
@@ -0,0 +1,25 @@
package com.zy.ai.domain.autotune;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
public class AutoTuneSnapshot implements Serializable {
    private static final long serialVersionUID = 1L;
    private AutoTuneTaskSnapshot taskSnapshot;
    private List<AutoTuneStationRuntimeItem> stationRuntimeSnapshot;
    private Map<String, Object> cycleLoadSnapshot;
    private List<AutoTuneFlowTopologyItem> flowTopologySnapshot;
    private AutoTuneParameterSnapshot currentParameterSnapshot;
    private Date snapshotTime;
}
src/main/java/com/zy/ai/domain/autotune/AutoTuneStationRuntimeItem.java
New file
@@ -0,0 +1,20 @@
package com.zy.ai.domain.autotune;
import lombok.Data;
import java.io.Serializable;
@Data
public class AutoTuneStationRuntimeItem implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer stationId;
    private Integer autoing;
    private Integer loading;
    private Integer taskNo;
    private String ioMode;
}
src/main/java/com/zy/ai/domain/autotune/AutoTuneTaskSnapshot.java
New file
@@ -0,0 +1,23 @@
package com.zy.ai.domain.autotune;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
@Data
public class AutoTuneTaskSnapshot implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer activeTaskCount;
    private Map<String, Integer> byTargetStation;
    private Map<String, Integer> byBatch;
    private Map<String, Integer> byCrn;
    private Map<String, Integer> byDualCrn;
    private Map<String, Integer> byIoType;
}
src/main/java/com/zy/ai/entity/AiAutoTuneChange.java
New file
@@ -0,0 +1,52 @@
package com.zy.ai.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("sys_ai_auto_tune_change")
public class AiAutoTuneChange implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableField("job_id")
    private Long jobId;
    @TableField("target_type")
    private String targetType;
    @TableField("target_id")
    private String targetId;
    @TableField("target_key")
    private String targetKey;
    @TableField("old_value")
    private String oldValue;
    @TableField("requested_value")
    private String requestedValue;
    @TableField("applied_value")
    private String appliedValue;
    @TableField("result_status")
    private String resultStatus;
    @TableField("reject_reason")
    private String rejectReason;
    @TableField("cooldown_expire_time")
    private Date cooldownExpireTime;
    @TableField("create_time")
    private Date createTime;
}
src/main/java/com/zy/ai/entity/AiAutoTuneJob.java
New file
@@ -0,0 +1,74 @@
package com.zy.ai.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("sys_ai_auto_tune_job")
public class AiAutoTuneJob implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableField("trigger_type")
    private String triggerType;
    private String status;
    @TableField("start_time")
    private Date startTime;
    @TableField("finish_time")
    private Date finishTime;
    @TableField("has_active_tasks")
    private Integer hasActiveTasks;
    @TableField("prompt_scene_code")
    private String promptSceneCode;
    private String summary;
    @TableField("reasoning_digest")
    private String reasoningDigest;
    @TableField("snapshot_digest")
    private String snapshotDigest;
    @TableField("interval_before")
    private Integer intervalBefore;
    @TableField("interval_after")
    private Integer intervalAfter;
    @TableField("success_count")
    private Integer successCount;
    @TableField("reject_count")
    private Integer rejectCount;
    @TableField("error_message")
    private String errorMessage;
    @TableField("llm_call_count")
    private Integer llmCallCount;
    @TableField("prompt_tokens")
    private Integer promptTokens;
    @TableField("completion_tokens")
    private Integer completionTokens;
    @TableField("total_tokens")
    private Integer totalTokens;
    @TableField("create_time")
    private Date createTime;
}
src/main/java/com/zy/ai/mapper/AiAutoTuneChangeMapper.java
New file
@@ -0,0 +1,11 @@
package com.zy.ai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zy.ai.entity.AiAutoTuneChange;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface AiAutoTuneChangeMapper extends BaseMapper<AiAutoTuneChange> {
}
src/main/java/com/zy/ai/mapper/AiAutoTuneJobMapper.java
New file
@@ -0,0 +1,11 @@
package com.zy.ai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zy.ai.entity.AiAutoTuneJob;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface AiAutoTuneJobMapper extends BaseMapper<AiAutoTuneJob> {
}
src/main/java/com/zy/ai/service/AiAutoTuneChangeService.java
New file
@@ -0,0 +1,7 @@
package com.zy.ai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.ai.entity.AiAutoTuneChange;
public interface AiAutoTuneChangeService extends IService<AiAutoTuneChange> {
}
src/main/java/com/zy/ai/service/AiAutoTuneJobService.java
New file
@@ -0,0 +1,7 @@
package com.zy.ai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.ai.entity.AiAutoTuneJob;
public interface AiAutoTuneJobService extends IService<AiAutoTuneJob> {
}
src/main/java/com/zy/ai/service/impl/AiAutoTuneChangeServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.ai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.ai.entity.AiAutoTuneChange;
import com.zy.ai.mapper.AiAutoTuneChangeMapper;
import com.zy.ai.service.AiAutoTuneChangeService;
import org.springframework.stereotype.Service;
@Service("aiAutoTuneChangeService")
public class AiAutoTuneChangeServiceImpl extends ServiceImpl<AiAutoTuneChangeMapper, AiAutoTuneChange>
        implements AiAutoTuneChangeService {
}
src/main/java/com/zy/ai/service/impl/AiAutoTuneJobServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.ai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.ai.entity.AiAutoTuneJob;
import com.zy.ai.mapper.AiAutoTuneJobMapper;
import com.zy.ai.service.AiAutoTuneJobService;
import org.springframework.stereotype.Service;
@Service("aiAutoTuneJobService")
public class AiAutoTuneJobServiceImpl extends ServiceImpl<AiAutoTuneJobMapper, AiAutoTuneJob>
        implements AiAutoTuneJobService {
}
src/main/java/com/zy/asrs/entity/StationFlowCapacity.java
New file
@@ -0,0 +1,42 @@
package com.zy.asrs.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("asr_station_flow_capacity")
public class StationFlowCapacity implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableField("station_id")
    private Integer stationId;
    @TableField("direction_code")
    private String directionCode;
    @TableField("buffer_capacity")
    private Integer bufferCapacity;
    private String memo;
    @TableField(exist = false)
    private Long createBy;
    @TableField("create_time")
    private Date createTime;
    @TableField(exist = false)
    private Long updateBy;
    @TableField("update_time")
    private Date updateTime;
}
src/main/java/com/zy/asrs/mapper/StationFlowCapacityMapper.java
New file
@@ -0,0 +1,11 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zy.asrs.entity.StationFlowCapacity;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface StationFlowCapacityMapper extends BaseMapper<StationFlowCapacity> {
}
src/main/java/com/zy/asrs/service/StationFlowCapacityService.java
New file
@@ -0,0 +1,7 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.entity.StationFlowCapacity;
public interface StationFlowCapacityService extends IService<StationFlowCapacity> {
}
src/main/java/com/zy/asrs/service/impl/StationFlowCapacityServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.asrs.entity.StationFlowCapacity;
import com.zy.asrs.mapper.StationFlowCapacityMapper;
import com.zy.asrs.service.StationFlowCapacityService;
import org.springframework.stereotype.Service;
@Service("stationFlowCapacityService")
public class StationFlowCapacityServiceImpl extends ServiceImpl<StationFlowCapacityMapper, StationFlowCapacity>
        implements StationFlowCapacityService {
}