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(); 
 | 
    } 
 | 
} 
 |