whyclxw
2022-01-11 b0414ed99a8025b7d8aa493958142c3585c2f1c4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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.github.pagehelper.PageInfo;
import com.whyc.dto.FBS9100_ComBase;
import com.whyc.dto.Response;
import com.whyc.mapper.Ld9SetparamMapper;
import com.whyc.pojo.Ld9Setparam;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.List;
 
@Service
public class Ld9SetparamService {
    @Resource
    private Ld9SetparamMapper mapper;
 
 
    //LD9启停功能
    public Response serchbyDev_id(int num,int devId) {
        boolean bl=sendCmdToLd9Dev(num,devId);
        List list=mapper.serchbyDev_id(devId);
        PageInfo pageInfo=new PageInfo(list);
        return new Response().setII(1,pageInfo,bl,bl==true?"查询成功!":"设置9100参数失败,请检查网络!");
    }
    //获取LD9放电参数
    public Response serchByCondition(int num, int devId,int battGroupid) {
        boolean bl=sendCmdToLd9Dev(num,devId);
        List<Ld9Setparam> list=mapper.serchByCondition(battGroupid);
        PageInfo pageInfo=new PageInfo(list);
        return new Response().setII(1,bl,pageInfo,bl==true?"读取参数成功!":"设置ld9参数失败,请检查网络!");
    }
 
    //设置LD9放电参数
    public Response update(Ld9Setparam ld9Setparam) {
        Boolean b=mapper.updateParam(ld9Setparam);
        boolean bl=false;
        if(b){
            bl=sendCmdToLd9Dev(ld9Setparam.getNum().intValue(),ld9Setparam.getDevId().intValue());
        }
        return new Response().set(1,bl,bl==true?"修改参数成功!":"设置ld参数失败,请检查网络!");
    }
    //机房命令操作设备时的cmd和ack校验
    public boolean sendCmdToLd9Dev(int cmd,int dev_id)
    {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch(m_cmd) {
            case FBS9100_ComBase.CMD_Start: m_cmd_ack = FBS9100_ComBase.CMD_StartAck; break;
            case FBS9100_ComBase.CMD_Stop: m_cmd_ack = FBS9100_ComBase.CMD_StopAck; break;
            case FBS9100_ComBase.CMD_SetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_SetDischargeParmAck; break;
            case FBS9100_ComBase.CMD_StartRES: m_cmd_ack = FBS9100_ComBase.CMD_StartRES_ACK; break;
            case FBS9100_ComBase.CMD_GetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_GetDischargeParmAck; break;
            default: return false;
        }
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("op_cmd",m_cmd);
        updateWrapper.eq("dev_id",dev_id);
        int flag=mapper.update(null,updateWrapper);
        boolean res_exe = false;
        if(flag>0)
        {
            PageHelper.startPage(1,1);
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",dev_id);
            for(int n=0; n<40; n++)
            {
                Ld9Setparam ld9Setparam=mapper.selectOne(queryWrapper);
                if(ld9Setparam.getOpCmd()==m_cmd_ack){
                    res_exe = true;
                    break;
                }
                try {
                    Thread.sleep(250);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        return res_exe;
    }
 
}