| 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<String> selectAllRtuAddrByTask(String taskId){ | 
|         return this.cdao.selectAllRtuAddrByTask(Long.valueOf(taskId)) ; | 
|     } | 
|   | 
|     /** | 
|      * 保存RTU升级结束状态 | 
|      * @param taskId | 
|      * @param rtu | 
|      */ | 
|     public void saveRtuUpgradeState(Long taskId, UpgradeRtu rtu){ | 
|         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(rtu) ; | 
|         params.put("taskId", taskId) ; | 
|         params.put("overDt", new Date()) ; | 
|         cdao.updateRtuUpgradeState(params) ; | 
|     } | 
|   | 
|     /** | 
|      * 查询一个升级任务有关信息 | 
|      * @return 升级任务有关信息 | 
|      */ | 
|     public VoUpgradeDetail selectTaskDetail(String taskId){ | 
|         List<VoUpgradeDetail> 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)) ; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 设置升级任务已经完成 | 
|      * @param taskId | 
|      */ | 
|     public void updateTaskOver(String taskId){ | 
|         tdao.overById(Long.valueOf(taskId)) ; | 
|     } | 
|   | 
|     ///////////////////////////////////////////////////// | 
|     // | 
|     // 以下演示升级功能用到 | 
|     // | 
|     ///////////////////////////////////////////////////// | 
|   | 
|     /** | 
|      * 查询最新一个升级任务 | 
|      * @return | 
|      */ | 
|     public UgRtuTask selectLastTask(){ | 
|         return tdao.selectLastTask(); | 
|     } | 
| } |