lxw
2023-07-29 d1675cea759f0090c43860efabdeb9448d25c41d
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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.FBS9100_ComBase;
import com.whyc.dto.Response;
import com.whyc.mapper.Fbs9100sFodParamMapper;
import com.whyc.pojo.Fbs9100Sysparam;
import com.whyc.pojo.Fbs9100sFodParam;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
 
@Service
public class Fbs9100sFodParamService {
    @Resource
    private Fbs9100sFodParamMapper mapper;
 
    //停止养护/除硫
    public Response update(Fbs9100sFodParam fod) {
        boolean b=mapper.replace(fod);
        int flag=0;
        String msg="";
        if(b){
            boolean bl=sendCmdToFBS9100FOD(fod.getOpCmd(), fod.getDevId());
            if(bl){
                flag=1;
                msg="发送命令成功!";
            }else{
                flag=0;
                msg="发送命令失败,请检查网络!";
            }
        }else{
            flag=0;
            msg="修改失败!";
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
    //启动和停止命令
    public Response startOrStopTest(Fbs9100sFodParam fod) {
       boolean b=mapper.startOrStopTest(fod);
       int flag=0;
       String msg="";
       if(b){
           boolean bl=sendCmdToFBS9100FOD(fod.getOpCmd(), fod.getDevId());
           if(bl){
               flag=1;
               msg="发送命令成功!";
           }else{
               flag=0;
               msg="发送命令失败,请检查网络!";
           }
       }else{
           flag=0;
           msg="修改失败!";
       }
       return new Response().set(1,flag>0?true:false,msg);
    }
 
    //系统参数命令操作设备时的cmd和ack校验
    public boolean sendCmdToFBS9100FOD(int cmd,int dev_id)
    {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch(m_cmd) {
            case FBS9100_ComBase.CMD_ReadFodParam: m_cmd_ack = FBS9100_ComBase.CMD_ReadFodParamAck; break;
            case FBS9100_ComBase.CMD_WriteFodParam: m_cmd_ack = FBS9100_ComBase.CMD_WriteFodParamAck; break;
            case FBS9100_ComBase.CMD_Start_FODCL_test: m_cmd_ack = FBS9100_ComBase.CMD_Start_FODCL_testAck; break;
            case FBS9100_ComBase.CMD_Start_FODYH_test: m_cmd_ack = FBS9100_ComBase.CMD_Start_FODYH_testAck; break;
            case FBS9100_ComBase.CMD_Stop_FOD_test: m_cmd_ack = FBS9100_ComBase.CMD_Stop_FOD_testAck; 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++)
            {
                Fbs9100sFodParam fodParam=mapper.selectOne(queryWrapper);
                if(fodParam!=null){
                    if(fodParam.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 serchByCondition(int devId) {
        PageHelper.startPage(1,1);
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        Fbs9100sFodParam fodParam=mapper.selectOne(wrapper);
        return new Response().set(1,fodParam);
    }
}