whyclxw
2024-12-02 b9b396b7df56fd8c76005b3856fc1fd8fbc02ee7
src/main/java/com/whyc/service/PowerSetparmService.java
@@ -1,7 +1,184 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.whyc.dto.PowerParamCmd;
import com.whyc.dto.Response;
import com.whyc.mapper.PowerSetparmMapper;
import com.whyc.pojo.db_power_fk_rt.PowerSetparm;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@Service
public class PowerSetparmService {
    @Autowired(required = false)
    private PowerSetparmMapper mapper;
    //机房命令操作设备时的cmd和ack校验
    public boolean sendCmdToParam(int cmd, int powerId) {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch (m_cmd) {
            case PowerParamCmd.CMD_WritePowerOpen:
                m_cmd_ack = PowerParamCmd.CMD_WritePowerOpen_Ack;
                break;
            case PowerParamCmd.CMD_WriteClearAlm:
                m_cmd_ack = PowerParamCmd.CMD_WriteClearAlm_Ack;
                break;
            case PowerParamCmd.CMD_WriteVBus_Vref:
                m_cmd_ack = PowerParamCmd.CMD_WriteVBus_Vref_Ack;
                break;
            case PowerParamCmd.CMD_WritePowerClose:
                m_cmd_ack = PowerParamCmd.CMD_WritePowerClose_Ack;
                break;
            case PowerParamCmd.CMD_WriteLLC_BuckVol:
                m_cmd_ack = PowerParamCmd.CMD_WriteLLC_BuckVol_Ack;
                break;
            case PowerParamCmd.CMD_WriteLLC_BuckCurr:
                m_cmd_ack = PowerParamCmd.CMD_WriteLLC_BuckCurr_Ack;
                break;
            case PowerParamCmd.CMD_WriteTestModel:
                m_cmd_ack = PowerParamCmd.CMD_WriteTestModel_Ack;
                break;
            default:
                return false;
        }
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("op_cmd",m_cmd);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        boolean res_exe = false;
        if(flag>0)
        {
            PageHelper.startPage(1,1);
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",powerId);
            for(int n=0; n<40; n++)
            {
                PowerSetparm param=mapper.selectOne(queryWrapper);
                if(param!=null){
                    if(param.getOpCmd()==m_cmd_ack){
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(250);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }else {
                    break;
                }
            }
        }
        return res_exe;
    }
    //控制电源开机
    public Response controllPowerOpen(Integer powerId) {
        boolean bl=sendCmdToParam(PowerParamCmd.CMD_WritePowerOpen,powerId);
        return new Response().set(1,bl, bl == true ? "电源开机成功!" : "电源开机失败,请检查网络!");
    }
    //清除变换器故障
    public Response controllClearAlm(Integer powerId) {
        boolean bl=sendCmdToParam(PowerParamCmd.CMD_WriteClearAlm,powerId);
        return new Response().set(1,bl, bl == true ? "清除变换器故障成功!" : "清除变换器故障失败,请检查网络!");
    }
    //设置电源工作模式:testModeSet(03-逆变并网06-PFC工作)
    public Response controllTestModel(Integer powerId, Integer testModeSet) {
        boolean bl = false;
        String msg = "";
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("testmode_set",testModeSet);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        if (flag>0) {
            bl=sendCmdToParam(PowerParamCmd.CMD_WriteVBus_Vref,powerId);
            if (bl) {
                flag = 1;
                msg = "修改模式参数成功!";
            } else {
                flag = 0;
                msg = "设置电源工作模式失败,请检查网络!";
            }
        } else {
            flag = 0;
            msg = "修改模式参数失败!";
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
    //设置PFC模式VBus电压
    public Response controllVBusVref(Integer powerId, Integer vbusIrefSet) {
        boolean bl = false;
        String msg = "";
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("vbus_iref_set",vbusIrefSet);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        if (flag>0) {
            bl=sendCmdToParam(PowerParamCmd.CMD_WriteVBus_Vref,powerId);
            if (bl) {
                flag = 1;
                msg = "修改模式参数成功!";
            } else {
                flag = 0;
                msg = "设置PFC模式VBus电压失败,请检查网络!";
            }
        } else {
            flag = 0;
            msg = "修改模式参数失败!";
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
    //设置LLCBuck电压
    public Response controllLLCBuckVol(Integer powerId, Integer llcBuckvolSet) {
        boolean bl = false;
        String msg = "";
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("llc_buckvol_set",llcBuckvolSet);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        if (flag>0) {
            bl=sendCmdToParam(PowerParamCmd.CMD_WriteVBus_Vref,powerId);
            if (bl) {
                flag = 1;
                msg = "修改模式参数成功!";
            } else {
                flag = 0;
                msg = "设置LLCBuck电压失败,请检查网络!";
            }
        } else {
            flag = 0;
            msg = "修改模式参数失败!";
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
    //设置LLCBuck电流
    public Response controllLLCBuckCurr(Integer powerId, Integer llcBuckcurrSet) {
        boolean bl = false;
        String msg = "";
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("llc_buckcurr_set",llcBuckcurrSet);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        if (flag>0) {
            bl=sendCmdToParam(PowerParamCmd.CMD_WriteVBus_Vref,powerId);
            if (bl) {
                flag = 1;
                msg = "修改模式参数成功!";
            } else {
                flag = 0;
                msg = "设置LLCBuck电流失败,请检查网络!";
            }
        } else {
            flag = 0;
            msg = "修改模式参数失败!";
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
}