Ver Fonte

新增播报内容和播报任务

zmj há 4 semanas atrás
pai
commit
a885f40d5a

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/RobotOpsBroadcastContentController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.base;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.base.domain.RobotOpsBroadcastContent;
+import com.ruoyi.base.service.IRobotOpsBroadcastContentService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 播报内容Controller
+ *
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+@RestController
+@RequestMapping("/base/broadcastContent")
+public class RobotOpsBroadcastContentController extends BaseController
+{
+    @Autowired
+    private IRobotOpsBroadcastContentService robotOpsBroadcastContentService;
+
+    /**
+     * 查询播报内容列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastContent:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(RobotOpsBroadcastContent robotOpsBroadcastContent)
+    {
+        startPage();
+        List<RobotOpsBroadcastContent> list = robotOpsBroadcastContentService.selectRobotOpsBroadcastContentList(robotOpsBroadcastContent);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出播报内容列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastContent:export')")
+    @Log(title = "播报内容", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, RobotOpsBroadcastContent robotOpsBroadcastContent)
+    {
+        List<RobotOpsBroadcastContent> list = robotOpsBroadcastContentService.selectRobotOpsBroadcastContentList(robotOpsBroadcastContent);
+        ExcelUtil<RobotOpsBroadcastContent> util = new ExcelUtil<RobotOpsBroadcastContent>(RobotOpsBroadcastContent.class);
+        util.exportExcel(response, list, "播报内容数据");
+    }
+
+    /**
+     * 获取播报内容详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastContent:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(robotOpsBroadcastContentService.selectRobotOpsBroadcastContentById(id));
+    }
+
+    /**
+     * 新增播报内容
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastContent:add')")
+    @Log(title = "播报内容", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody RobotOpsBroadcastContent robotOpsBroadcastContent)
+    {
+        return toAjax(robotOpsBroadcastContentService.insertRobotOpsBroadcastContent(robotOpsBroadcastContent));
+    }
+
+    /**
+     * 修改播报内容
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastContent:edit')")
+    @Log(title = "播报内容", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody RobotOpsBroadcastContent robotOpsBroadcastContent)
+    {
+        return toAjax(robotOpsBroadcastContentService.updateRobotOpsBroadcastContent(robotOpsBroadcastContent));
+    }
+
+    /**
+     * 删除播报内容
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastContent:remove')")
+    @Log(title = "播报内容", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(robotOpsBroadcastContentService.deleteRobotOpsBroadcastContentByIds(ids));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/RobotOpsBroadcastTaskController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.base;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.base.domain.RobotOpsBroadcastTask;
+import com.ruoyi.base.service.IRobotOpsBroadcastTaskService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 播报任务Controller
+ *
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+@RestController
+@RequestMapping("/base/broadcastTask")
+public class RobotOpsBroadcastTaskController extends BaseController
+{
+    @Autowired
+    private IRobotOpsBroadcastTaskService robotOpsBroadcastTaskService;
+
+    /**
+     * 查询播报任务列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastTask:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(RobotOpsBroadcastTask robotOpsBroadcastTask)
+    {
+        startPage();
+        List<RobotOpsBroadcastTask> list = robotOpsBroadcastTaskService.selectRobotOpsBroadcastTaskList(robotOpsBroadcastTask);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出播报任务列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastTask:export')")
+    @Log(title = "播报任务", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, RobotOpsBroadcastTask robotOpsBroadcastTask)
+    {
+        List<RobotOpsBroadcastTask> list = robotOpsBroadcastTaskService.selectRobotOpsBroadcastTaskList(robotOpsBroadcastTask);
+        ExcelUtil<RobotOpsBroadcastTask> util = new ExcelUtil<RobotOpsBroadcastTask>(RobotOpsBroadcastTask.class);
+        util.exportExcel(response, list, "播报任务数据");
+    }
+
+    /**
+     * 获取播报任务详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastTask:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(robotOpsBroadcastTaskService.selectRobotOpsBroadcastTaskById(id));
+    }
+
+    /**
+     * 新增播报任务
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastTask:add')")
+    @Log(title = "播报任务", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody RobotOpsBroadcastTask robotOpsBroadcastTask)
+    {
+        return toAjax(robotOpsBroadcastTaskService.insertRobotOpsBroadcastTask(robotOpsBroadcastTask));
+    }
+
+    /**
+     * 修改播报任务
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastTask:edit')")
+    @Log(title = "播报任务", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody RobotOpsBroadcastTask robotOpsBroadcastTask)
+    {
+        return toAjax(robotOpsBroadcastTaskService.updateRobotOpsBroadcastTask(robotOpsBroadcastTask));
+    }
+
+    /**
+     * 删除播报任务
+     */
+    @PreAuthorize("@ss.hasPermi('base:broadcastTask:remove')")
+    @Log(title = "播报任务", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(robotOpsBroadcastTaskService.deleteRobotOpsBroadcastTaskByIds(ids));
+    }
+}

+ 100 - 0
ruoyi-system/src/main/java/com/ruoyi/base/domain/RobotOpsBroadcastContent.java

@@ -0,0 +1,100 @@
+package com.ruoyi.base.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 播报内容对象 robot_ops_broadcast_content
+ * 
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+public class RobotOpsBroadcastContent extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键ID */
+    private Long id;
+
+    /** 播报内容名称 */
+    @Excel(name = "播报内容名称")
+    private String contentName;
+
+    /** 内容分类 */
+    @Excel(name = "内容分类")
+    private Long contentType;
+
+    /** 播报文本 */
+    @Excel(name = "播报文本")
+    private String broadcastText;
+
+    /** 启用状态:0停用,1启用 */
+    @Excel(name = "启用状态:0停用,1启用")
+    private String status;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public void setContentName(String contentName) 
+    {
+        this.contentName = contentName;
+    }
+
+    public String getContentName() 
+    {
+        return contentName;
+    }
+
+    public void setContentType(Long contentType) 
+    {
+        this.contentType = contentType;
+    }
+
+    public Long getContentType() 
+    {
+        return contentType;
+    }
+
+    public void setBroadcastText(String broadcastText) 
+    {
+        this.broadcastText = broadcastText;
+    }
+
+    public String getBroadcastText() 
+    {
+        return broadcastText;
+    }
+
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("contentName", getContentName())
+            .append("contentType", getContentType())
+            .append("broadcastText", getBroadcastText())
+            .append("status", getStatus())
+            .append("remark", getRemark())
+            .append("createTime", getCreateTime())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 160 - 0
ruoyi-system/src/main/java/com/ruoyi/base/domain/RobotOpsBroadcastTask.java

@@ -0,0 +1,160 @@
+package com.ruoyi.base.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 播报任务对象 robot_ops_broadcast_task
+ * 
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+public class RobotOpsBroadcastTask extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键ID */
+    private Long id;
+
+    /** 播报任务名称 */
+    @Excel(name = "播报任务名称")
+    private String taskName;
+
+    /** 播报内容ID,关联robot_ops_broadcast_content.id */
+    @Excel(name = "播报内容ID,关联robot_ops_broadcast_content.id")
+    private Long contentId;
+
+    /** 开始时间,格式HH:mm:ss */
+    @Excel(name = "开始时间,格式HH:mm:ss")
+    private String startTime;
+
+    /** 结束时间,格式HH:mm:ss */
+    @Excel(name = "结束时间,格式HH:mm:ss")
+    private String endTime;
+
+    /** 播报频率,单位分钟 */
+    @Excel(name = "播报频率,单位分钟")
+    private Long frequencyMinutes;
+
+    /** 循环类型  */
+    @Excel(name = "循环类型 ")
+    private Long cycleType;
+
+    /** 循环取值,指定日期或星期配置 */
+    @Excel(name = "循环取值,指定日期或星期配置")
+    private String cycleValue;
+
+    /** 启用状态:0停用,1启用 */
+    @Excel(name = "启用状态:0停用,1启用")
+    private String status;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public void setTaskName(String taskName) 
+    {
+        this.taskName = taskName;
+    }
+
+    public String getTaskName() 
+    {
+        return taskName;
+    }
+
+    public void setContentId(Long contentId) 
+    {
+        this.contentId = contentId;
+    }
+
+    public Long getContentId() 
+    {
+        return contentId;
+    }
+
+    public void setStartTime(String startTime) 
+    {
+        this.startTime = startTime;
+    }
+
+    public String getStartTime() 
+    {
+        return startTime;
+    }
+
+    public void setEndTime(String endTime) 
+    {
+        this.endTime = endTime;
+    }
+
+    public String getEndTime() 
+    {
+        return endTime;
+    }
+
+    public void setFrequencyMinutes(Long frequencyMinutes) 
+    {
+        this.frequencyMinutes = frequencyMinutes;
+    }
+
+    public Long getFrequencyMinutes() 
+    {
+        return frequencyMinutes;
+    }
+
+    public void setCycleType(Long cycleType) 
+    {
+        this.cycleType = cycleType;
+    }
+
+    public Long getCycleType() 
+    {
+        return cycleType;
+    }
+
+    public void setCycleValue(String cycleValue) 
+    {
+        this.cycleValue = cycleValue;
+    }
+
+    public String getCycleValue() 
+    {
+        return cycleValue;
+    }
+
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("taskName", getTaskName())
+            .append("contentId", getContentId())
+            .append("startTime", getStartTime())
+            .append("endTime", getEndTime())
+            .append("frequencyMinutes", getFrequencyMinutes())
+            .append("cycleType", getCycleType())
+            .append("cycleValue", getCycleValue())
+            .append("status", getStatus())
+            .append("remark", getRemark())
+            .append("createTime", getCreateTime())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/base/mapper/RobotOpsBroadcastContentMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.base.mapper;
+
+import java.util.List;
+import com.ruoyi.base.domain.RobotOpsBroadcastContent;
+
+/**
+ * 播报内容Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+public interface RobotOpsBroadcastContentMapper 
+{
+    /**
+     * 查询播报内容
+     * 
+     * @param id 播报内容主键
+     * @return 播报内容
+     */
+    public RobotOpsBroadcastContent selectRobotOpsBroadcastContentById(Long id);
+
+    /**
+     * 查询播报内容列表
+     * 
+     * @param robotOpsBroadcastContent 播报内容
+     * @return 播报内容集合
+     */
+    public List<RobotOpsBroadcastContent> selectRobotOpsBroadcastContentList(RobotOpsBroadcastContent robotOpsBroadcastContent);
+
+    /**
+     * 新增播报内容
+     * 
+     * @param robotOpsBroadcastContent 播报内容
+     * @return 结果
+     */
+    public int insertRobotOpsBroadcastContent(RobotOpsBroadcastContent robotOpsBroadcastContent);
+
+    /**
+     * 修改播报内容
+     * 
+     * @param robotOpsBroadcastContent 播报内容
+     * @return 结果
+     */
+    public int updateRobotOpsBroadcastContent(RobotOpsBroadcastContent robotOpsBroadcastContent);
+
+    /**
+     * 删除播报内容
+     * 
+     * @param id 播报内容主键
+     * @return 结果
+     */
+    public int deleteRobotOpsBroadcastContentById(Long id);
+
+    /**
+     * 批量删除播报内容
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteRobotOpsBroadcastContentByIds(Long[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/base/mapper/RobotOpsBroadcastTaskMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.base.mapper;
+
+import java.util.List;
+import com.ruoyi.base.domain.RobotOpsBroadcastTask;
+
+/**
+ * 播报任务Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+public interface RobotOpsBroadcastTaskMapper 
+{
+    /**
+     * 查询播报任务
+     * 
+     * @param id 播报任务主键
+     * @return 播报任务
+     */
+    public RobotOpsBroadcastTask selectRobotOpsBroadcastTaskById(Long id);
+
+    /**
+     * 查询播报任务列表
+     * 
+     * @param robotOpsBroadcastTask 播报任务
+     * @return 播报任务集合
+     */
+    public List<RobotOpsBroadcastTask> selectRobotOpsBroadcastTaskList(RobotOpsBroadcastTask robotOpsBroadcastTask);
+
+    /**
+     * 新增播报任务
+     * 
+     * @param robotOpsBroadcastTask 播报任务
+     * @return 结果
+     */
+    public int insertRobotOpsBroadcastTask(RobotOpsBroadcastTask robotOpsBroadcastTask);
+
+    /**
+     * 修改播报任务
+     * 
+     * @param robotOpsBroadcastTask 播报任务
+     * @return 结果
+     */
+    public int updateRobotOpsBroadcastTask(RobotOpsBroadcastTask robotOpsBroadcastTask);
+
+    /**
+     * 删除播报任务
+     * 
+     * @param id 播报任务主键
+     * @return 结果
+     */
+    public int deleteRobotOpsBroadcastTaskById(Long id);
+
+    /**
+     * 批量删除播报任务
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteRobotOpsBroadcastTaskByIds(Long[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/base/service/IRobotOpsBroadcastContentService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.base.service;
+
+import java.util.List;
+import com.ruoyi.base.domain.RobotOpsBroadcastContent;
+
+/**
+ * 播报内容Service接口
+ * 
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+public interface IRobotOpsBroadcastContentService 
+{
+    /**
+     * 查询播报内容
+     * 
+     * @param id 播报内容主键
+     * @return 播报内容
+     */
+    public RobotOpsBroadcastContent selectRobotOpsBroadcastContentById(Long id);
+
+    /**
+     * 查询播报内容列表
+     * 
+     * @param robotOpsBroadcastContent 播报内容
+     * @return 播报内容集合
+     */
+    public List<RobotOpsBroadcastContent> selectRobotOpsBroadcastContentList(RobotOpsBroadcastContent robotOpsBroadcastContent);
+
+    /**
+     * 新增播报内容
+     * 
+     * @param robotOpsBroadcastContent 播报内容
+     * @return 结果
+     */
+    public int insertRobotOpsBroadcastContent(RobotOpsBroadcastContent robotOpsBroadcastContent);
+
+    /**
+     * 修改播报内容
+     * 
+     * @param robotOpsBroadcastContent 播报内容
+     * @return 结果
+     */
+    public int updateRobotOpsBroadcastContent(RobotOpsBroadcastContent robotOpsBroadcastContent);
+
+    /**
+     * 批量删除播报内容
+     * 
+     * @param ids 需要删除的播报内容主键集合
+     * @return 结果
+     */
+    public int deleteRobotOpsBroadcastContentByIds(Long[] ids);
+
+    /**
+     * 删除播报内容信息
+     * 
+     * @param id 播报内容主键
+     * @return 结果
+     */
+    public int deleteRobotOpsBroadcastContentById(Long id);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/base/service/IRobotOpsBroadcastTaskService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.base.service;
+
+import java.util.List;
+import com.ruoyi.base.domain.RobotOpsBroadcastTask;
+
+/**
+ * 播报任务Service接口
+ * 
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+public interface IRobotOpsBroadcastTaskService 
+{
+    /**
+     * 查询播报任务
+     * 
+     * @param id 播报任务主键
+     * @return 播报任务
+     */
+    public RobotOpsBroadcastTask selectRobotOpsBroadcastTaskById(Long id);
+
+    /**
+     * 查询播报任务列表
+     * 
+     * @param robotOpsBroadcastTask 播报任务
+     * @return 播报任务集合
+     */
+    public List<RobotOpsBroadcastTask> selectRobotOpsBroadcastTaskList(RobotOpsBroadcastTask robotOpsBroadcastTask);
+
+    /**
+     * 新增播报任务
+     * 
+     * @param robotOpsBroadcastTask 播报任务
+     * @return 结果
+     */
+    public int insertRobotOpsBroadcastTask(RobotOpsBroadcastTask robotOpsBroadcastTask);
+
+    /**
+     * 修改播报任务
+     * 
+     * @param robotOpsBroadcastTask 播报任务
+     * @return 结果
+     */
+    public int updateRobotOpsBroadcastTask(RobotOpsBroadcastTask robotOpsBroadcastTask);
+
+    /**
+     * 批量删除播报任务
+     * 
+     * @param ids 需要删除的播报任务主键集合
+     * @return 结果
+     */
+    public int deleteRobotOpsBroadcastTaskByIds(Long[] ids);
+
+    /**
+     * 删除播报任务信息
+     * 
+     * @param id 播报任务主键
+     * @return 结果
+     */
+    public int deleteRobotOpsBroadcastTaskById(Long id);
+}

+ 96 - 0
ruoyi-system/src/main/java/com/ruoyi/base/service/impl/RobotOpsBroadcastContentServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.base.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.base.mapper.RobotOpsBroadcastContentMapper;
+import com.ruoyi.base.domain.RobotOpsBroadcastContent;
+import com.ruoyi.base.service.IRobotOpsBroadcastContentService;
+
+/**
+ * 播报内容Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+@Service
+public class RobotOpsBroadcastContentServiceImpl implements IRobotOpsBroadcastContentService 
+{
+    @Autowired
+    private RobotOpsBroadcastContentMapper robotOpsBroadcastContentMapper;
+
+    /**
+     * 查询播报内容
+     * 
+     * @param id 播报内容主键
+     * @return 播报内容
+     */
+    @Override
+    public RobotOpsBroadcastContent selectRobotOpsBroadcastContentById(Long id)
+    {
+        return robotOpsBroadcastContentMapper.selectRobotOpsBroadcastContentById(id);
+    }
+
+    /**
+     * 查询播报内容列表
+     * 
+     * @param robotOpsBroadcastContent 播报内容
+     * @return 播报内容
+     */
+    @Override
+    public List<RobotOpsBroadcastContent> selectRobotOpsBroadcastContentList(RobotOpsBroadcastContent robotOpsBroadcastContent)
+    {
+        return robotOpsBroadcastContentMapper.selectRobotOpsBroadcastContentList(robotOpsBroadcastContent);
+    }
+
+    /**
+     * 新增播报内容
+     * 
+     * @param robotOpsBroadcastContent 播报内容
+     * @return 结果
+     */
+    @Override
+    public int insertRobotOpsBroadcastContent(RobotOpsBroadcastContent robotOpsBroadcastContent)
+    {
+        robotOpsBroadcastContent.setCreateTime(DateUtils.getNowDate());
+        return robotOpsBroadcastContentMapper.insertRobotOpsBroadcastContent(robotOpsBroadcastContent);
+    }
+
+    /**
+     * 修改播报内容
+     * 
+     * @param robotOpsBroadcastContent 播报内容
+     * @return 结果
+     */
+    @Override
+    public int updateRobotOpsBroadcastContent(RobotOpsBroadcastContent robotOpsBroadcastContent)
+    {
+        robotOpsBroadcastContent.setUpdateTime(DateUtils.getNowDate());
+        return robotOpsBroadcastContentMapper.updateRobotOpsBroadcastContent(robotOpsBroadcastContent);
+    }
+
+    /**
+     * 批量删除播报内容
+     * 
+     * @param ids 需要删除的播报内容主键
+     * @return 结果
+     */
+    @Override
+    public int deleteRobotOpsBroadcastContentByIds(Long[] ids)
+    {
+        return robotOpsBroadcastContentMapper.deleteRobotOpsBroadcastContentByIds(ids);
+    }
+
+    /**
+     * 删除播报内容信息
+     * 
+     * @param id 播报内容主键
+     * @return 结果
+     */
+    @Override
+    public int deleteRobotOpsBroadcastContentById(Long id)
+    {
+        return robotOpsBroadcastContentMapper.deleteRobotOpsBroadcastContentById(id);
+    }
+}

+ 96 - 0
ruoyi-system/src/main/java/com/ruoyi/base/service/impl/RobotOpsBroadcastTaskServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.base.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.base.mapper.RobotOpsBroadcastTaskMapper;
+import com.ruoyi.base.domain.RobotOpsBroadcastTask;
+import com.ruoyi.base.service.IRobotOpsBroadcastTaskService;
+
+/**
+ * 播报任务Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2026-04-27
+ */
+@Service
+public class RobotOpsBroadcastTaskServiceImpl implements IRobotOpsBroadcastTaskService 
+{
+    @Autowired
+    private RobotOpsBroadcastTaskMapper robotOpsBroadcastTaskMapper;
+
+    /**
+     * 查询播报任务
+     * 
+     * @param id 播报任务主键
+     * @return 播报任务
+     */
+    @Override
+    public RobotOpsBroadcastTask selectRobotOpsBroadcastTaskById(Long id)
+    {
+        return robotOpsBroadcastTaskMapper.selectRobotOpsBroadcastTaskById(id);
+    }
+
+    /**
+     * 查询播报任务列表
+     * 
+     * @param robotOpsBroadcastTask 播报任务
+     * @return 播报任务
+     */
+    @Override
+    public List<RobotOpsBroadcastTask> selectRobotOpsBroadcastTaskList(RobotOpsBroadcastTask robotOpsBroadcastTask)
+    {
+        return robotOpsBroadcastTaskMapper.selectRobotOpsBroadcastTaskList(robotOpsBroadcastTask);
+    }
+
+    /**
+     * 新增播报任务
+     * 
+     * @param robotOpsBroadcastTask 播报任务
+     * @return 结果
+     */
+    @Override
+    public int insertRobotOpsBroadcastTask(RobotOpsBroadcastTask robotOpsBroadcastTask)
+    {
+        robotOpsBroadcastTask.setCreateTime(DateUtils.getNowDate());
+        return robotOpsBroadcastTaskMapper.insertRobotOpsBroadcastTask(robotOpsBroadcastTask);
+    }
+
+    /**
+     * 修改播报任务
+     * 
+     * @param robotOpsBroadcastTask 播报任务
+     * @return 结果
+     */
+    @Override
+    public int updateRobotOpsBroadcastTask(RobotOpsBroadcastTask robotOpsBroadcastTask)
+    {
+        robotOpsBroadcastTask.setUpdateTime(DateUtils.getNowDate());
+        return robotOpsBroadcastTaskMapper.updateRobotOpsBroadcastTask(robotOpsBroadcastTask);
+    }
+
+    /**
+     * 批量删除播报任务
+     * 
+     * @param ids 需要删除的播报任务主键
+     * @return 结果
+     */
+    @Override
+    public int deleteRobotOpsBroadcastTaskByIds(Long[] ids)
+    {
+        return robotOpsBroadcastTaskMapper.deleteRobotOpsBroadcastTaskByIds(ids);
+    }
+
+    /**
+     * 删除播报任务信息
+     * 
+     * @param id 播报任务主键
+     * @return 结果
+     */
+    @Override
+    public int deleteRobotOpsBroadcastTaskById(Long id)
+    {
+        return robotOpsBroadcastTaskMapper.deleteRobotOpsBroadcastTaskById(id);
+    }
+}

+ 83 - 0
ruoyi-system/src/main/resources/mapper/base/RobotOpsBroadcastContentMapper.xml

@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.base.mapper.RobotOpsBroadcastContentMapper">
+    
+    <resultMap type="RobotOpsBroadcastContent" id="RobotOpsBroadcastContentResult">
+        <result property="id"    column="id"    />
+        <result property="contentName"    column="content_name"    />
+        <result property="contentType"    column="content_type"    />
+        <result property="broadcastText"    column="broadcast_text"    />
+        <result property="status"    column="status"    />
+        <result property="remark"    column="remark"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectRobotOpsBroadcastContentVo">
+        select id, content_name, content_type, broadcast_text, status, remark, create_time, update_time from robot_ops_broadcast_content
+    </sql>
+
+    <select id="selectRobotOpsBroadcastContentList" parameterType="RobotOpsBroadcastContent" resultMap="RobotOpsBroadcastContentResult">
+        <include refid="selectRobotOpsBroadcastContentVo"/>
+        <where>  
+            <if test="contentName != null  and contentName != ''"> and content_name like concat('%', #{contentName}, '%')</if>
+            <if test="contentType != null "> and content_type = #{contentType}</if>
+            <if test="broadcastText != null  and broadcastText != ''"> and broadcast_text = #{broadcastText}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+        </where>
+    </select>
+    
+    <select id="selectRobotOpsBroadcastContentById" parameterType="Long" resultMap="RobotOpsBroadcastContentResult">
+        <include refid="selectRobotOpsBroadcastContentVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertRobotOpsBroadcastContent" parameterType="RobotOpsBroadcastContent" useGeneratedKeys="true" keyProperty="id">
+        insert into robot_ops_broadcast_content
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="contentName != null and contentName != ''">content_name,</if>
+            <if test="contentType != null">content_type,</if>
+            <if test="broadcastText != null and broadcastText != ''">broadcast_text,</if>
+            <if test="status != null and status != ''">status,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="contentName != null and contentName != ''">#{contentName},</if>
+            <if test="contentType != null">#{contentType},</if>
+            <if test="broadcastText != null and broadcastText != ''">#{broadcastText},</if>
+            <if test="status != null and status != ''">#{status},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateRobotOpsBroadcastContent" parameterType="RobotOpsBroadcastContent">
+        update robot_ops_broadcast_content
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="contentName != null and contentName != ''">content_name = #{contentName},</if>
+            <if test="contentType != null">content_type = #{contentType},</if>
+            <if test="broadcastText != null and broadcastText != ''">broadcast_text = #{broadcastText},</if>
+            <if test="status != null and status != ''">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteRobotOpsBroadcastContentById" parameterType="Long">
+        delete from robot_ops_broadcast_content where id = #{id}
+    </delete>
+
+    <delete id="deleteRobotOpsBroadcastContentByIds" parameterType="String">
+        delete from robot_ops_broadcast_content where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 103 - 0
ruoyi-system/src/main/resources/mapper/base/RobotOpsBroadcastTaskMapper.xml

@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.base.mapper.RobotOpsBroadcastTaskMapper">
+    
+    <resultMap type="RobotOpsBroadcastTask" id="RobotOpsBroadcastTaskResult">
+        <result property="id"    column="id"    />
+        <result property="taskName"    column="task_name"    />
+        <result property="contentId"    column="content_id"    />
+        <result property="startTime"    column="start_time"    />
+        <result property="endTime"    column="end_time"    />
+        <result property="frequencyMinutes"    column="frequency_minutes"    />
+        <result property="cycleType"    column="cycle_type"    />
+        <result property="cycleValue"    column="cycle_value"    />
+        <result property="status"    column="status"    />
+        <result property="remark"    column="remark"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectRobotOpsBroadcastTaskVo">
+        select id, task_name, content_id, start_time, end_time, frequency_minutes, cycle_type, cycle_value, status, remark, create_time, update_time from robot_ops_broadcast_task
+    </sql>
+
+    <select id="selectRobotOpsBroadcastTaskList" parameterType="RobotOpsBroadcastTask" resultMap="RobotOpsBroadcastTaskResult">
+        <include refid="selectRobotOpsBroadcastTaskVo"/>
+        <where>  
+            <if test="taskName != null  and taskName != ''"> and task_name like concat('%', #{taskName}, '%')</if>
+            <if test="contentId != null "> and content_id = #{contentId}</if>
+            <if test="startTime != null  and startTime != ''"> and start_time = #{startTime}</if>
+            <if test="endTime != null  and endTime != ''"> and end_time = #{endTime}</if>
+            <if test="frequencyMinutes != null "> and frequency_minutes = #{frequencyMinutes}</if>
+            <if test="cycleType != null "> and cycle_type = #{cycleType}</if>
+            <if test="cycleValue != null  and cycleValue != ''"> and cycle_value = #{cycleValue}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+        </where>
+    </select>
+    
+    <select id="selectRobotOpsBroadcastTaskById" parameterType="Long" resultMap="RobotOpsBroadcastTaskResult">
+        <include refid="selectRobotOpsBroadcastTaskVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertRobotOpsBroadcastTask" parameterType="RobotOpsBroadcastTask" useGeneratedKeys="true" keyProperty="id">
+        insert into robot_ops_broadcast_task
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="taskName != null and taskName != ''">task_name,</if>
+            <if test="contentId != null">content_id,</if>
+            <if test="startTime != null">start_time,</if>
+            <if test="endTime != null">end_time,</if>
+            <if test="frequencyMinutes != null">frequency_minutes,</if>
+            <if test="cycleType != null">cycle_type,</if>
+            <if test="cycleValue != null">cycle_value,</if>
+            <if test="status != null and status != ''">status,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="taskName != null and taskName != ''">#{taskName},</if>
+            <if test="contentId != null">#{contentId},</if>
+            <if test="startTime != null">#{startTime},</if>
+            <if test="endTime != null">#{endTime},</if>
+            <if test="frequencyMinutes != null">#{frequencyMinutes},</if>
+            <if test="cycleType != null">#{cycleType},</if>
+            <if test="cycleValue != null">#{cycleValue},</if>
+            <if test="status != null and status != ''">#{status},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateRobotOpsBroadcastTask" parameterType="RobotOpsBroadcastTask">
+        update robot_ops_broadcast_task
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="taskName != null and taskName != ''">task_name = #{taskName},</if>
+            <if test="contentId != null">content_id = #{contentId},</if>
+            <if test="startTime != null">start_time = #{startTime},</if>
+            <if test="endTime != null">end_time = #{endTime},</if>
+            <if test="frequencyMinutes != null">frequency_minutes = #{frequencyMinutes},</if>
+            <if test="cycleType != null">cycle_type = #{cycleType},</if>
+            <if test="cycleValue != null">cycle_value = #{cycleValue},</if>
+            <if test="status != null and status != ''">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteRobotOpsBroadcastTaskById" parameterType="Long">
+        delete from robot_ops_broadcast_task where id = #{id}
+    </delete>
+
+    <delete id="deleteRobotOpsBroadcastTaskByIds" parameterType="String">
+        delete from robot_ops_broadcast_task where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>