package com.dy.pipIrrRemote.rtuUpgrage; import com.dy.common.softUpgrade.state.UpgradeRtu; import com.dy.pipIrrGlobal.daoRm.UgRtuControllerMapper; import com.dy.pipIrrGlobal.daoRm.UgRtuProgramMapper; import com.dy.pipIrrGlobal.daoRm.UgRtuTaskMapper; import com.dy.pipIrrGlobal.pojoUg.UgRtuProgram; import com.dy.pipIrrGlobal.pojoUg.UgRtuTask; import com.dy.pipIrrGlobal.voUg.VoUpgradeDetail; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; import java.util.Map; /** * @Author: liurunyu * @Date: 2024/11/12 8:33 * @Description */ @Slf4j @Service public class RtuUpgradeSv { @Autowired private UgRtuTaskMapper tdao ; @Autowired private UgRtuProgramMapper pdao ; @Autowired private UgRtuControllerMapper cdao ; /** * 通信主键查询一个升级任务 * @param taskId 主键 * @return */ public UgRtuTask selectTaskById(String taskId){ return tdao.selectByPrimaryKey(Long.valueOf(taskId)); } /** * 通信主键查询一个升级程序 * @param id 主键 * @return */ public UgRtuProgram selectProgramById(Long id){ return pdao.selectByPrimaryKey(id); } /** * 查询一个升级任务所有控制器地址 * @return 一些一些控制器地址 */ public List selectAllRtuAddrByTask(String taskId){ return this.cdao.selectAllRtuAddrByTask(Long.valueOf(taskId)) ; } /** * 保存RTU升级结束状态 * @param taskId * @param rtu */ public void saveRtuUpgradeState(Long taskId, UpgradeRtu rtu){ Map params = (Map) PojoUtils.generalize(rtu) ; params.put("taskId", taskId) ; params.put("overDt", new Date()) ; cdao.updateRtuUpgradeState(params) ; } /** * 查询一个升级任务有关信息 * @return 升级任务有关信息 */ public VoUpgradeDetail selectTaskDetail(String taskId){ List list = this.tdao.selectTaskDetail(Long.valueOf(taskId)) ; if(list != null && list.size() > 0){ return list.get(0) ; } return null ; } /** * 保存升级任务为执行状态 * @param taskId 任务ID */ public void setUpgradeTaskExecuted(String taskId){ this.tdao.executeById(Long.valueOf(taskId)) ; } ///////////////////////////////////////////////////// // // 以下演示升级功能用到 // ///////////////////////////////////////////////////// /** * 查询最新一个升级任务 * @return */ public UgRtuTask selectLastTask(){ return tdao.selectLastTask(); } }