whycrzg
2021-02-23 351b9a53cb9ecebdf8f79db0117f540d9c42c2a4
src/main/java/com/fgkj/services/Ld9/LD9_setparamService.java
@@ -3,35 +3,33 @@
import com.fgkj.dto.BattInf;
import com.fgkj.dto.LD9_setparam;
import com.fgkj.dto.ServiceModel;
import com.fgkj.mapper.FBS9100_ComBase;
import com.fgkj.mapper.impl.BattInfMapper;
import com.fgkj.mapper.impl.Batt_rtdataMapper;
import com.fgkj.mapper.impl.Ld9.LD9_setparamMapper;
import org.springframework.beans.factory.annotation.Autowired;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class LD9_setparamService {
   @Autowired
   @Resource
   private LD9_setparamMapper mapper;
   @Autowired
   @Resource
   private Batt_rtdataMapper battRtDataMapper;
   @Autowired
   @Resource
   private BattInfMapper battInfMapper;
   private ServiceModel model;
   
    //弹出框的确定操作
   public ServiceModel update(Object obj) {
      LD9_setparam ld9=(LD9_setparam) obj;
      Boolean b=mapper.update(obj);
   public ServiceModel update(LD9_setparam ld9) {
      ServiceModel model = new ServiceModel();
      Boolean b=mapper.update(ld9);
      if(b){
         boolean bl=mapper.sendCmdToLd9Dev(ld9.getNum(), ld9.getDev_id());
         boolean bl=sendCmdToLd9Dev(ld9.getNum(), ld9.getDev_id());
         if(bl){
            model.setCode(1);
            model.setMsg("修改成功!");
@@ -46,37 +44,68 @@
      return model;   
   }
    //根据机房编号和维护区查询放电机房的信息和放电参数
   public ServiceModel serchByCondition(Object obj){
      BattInf binf=(BattInf) obj;
      int dev_id=battInfMapper.serchDev_id(binf);
      boolean bl=mapper.sendCmdToLd9Dev(binf.getNum(), dev_id);
       List list=mapper.serchByCondition(obj);
       if(bl){
         model.setCode(1);
         model.setData(list);
         model.setMsg("查询成功!");
       }else{
          model.setCode(0);
          model.setData(list);
         model.setMsg("查询失败!");
       }
      return model;
   }
    public ServiceModel serchByCondition(BattInf binf) {
       ServiceModel model = new ServiceModel();
       //根据电池组id查询对应的设备id
       Integer dev_id = battInfMapper.serchDev_id(binf);
       //机房命令操作设备时的cmd和ack校验
       int cmd = binf.getNum();
       boolean bl = false;
       if (dev_id != null) {
          bl = sendCmdToLd9Dev(cmd, dev_id);
       }
       if (bl) {
          List list = mapper.findByCondition(binf);
          model.setCode(1);
          model.setData(list);
          model.setMsg("查询成功!");
       } else {
          model.setCode(0);
          model.setMsg("查询失败!");
       }
       return model;
    }
   private 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;
      }
      boolean res_exe = false;
      boolean b1 = mapper.updateOpCmd(cmd,dev_id)>0;
      if(b1) {
         for (int i = 0; i < 20; i++) {
            int opCmd = mapper.getOpCmd(dev_id);
            //查看操作执行指令发送到数据库后,通讯程序是否执行了指令并返回了ack
            if(opCmd==m_cmd_ack){
               res_exe = true;
               break;
            }
         }
      }
      return res_exe;
   }
   //右键查看参数和弹出框的刷新按钮
   public ServiceModel serchbyDev_id(Object obj) {
      LD9_setparam ld9=(LD9_setparam) obj;
      boolean bl=mapper.sendCmdToLd9Dev(ld9.getNum(), ld9.getDev_id());
      List list=mapper.serchbyDev_id(obj);
   public ServiceModel serchbyDev_id(LD9_setparam ld9) {
      ServiceModel model = new ServiceModel();
      boolean bl=sendCmdToLd9Dev(ld9.getNum(), ld9.getDev_id());
      if(bl){
      List list=mapper.serchbyDev_id(ld9);
         model.setCode(1);
         model.setData(list);
         model.setMsg("查询成功!");
       }else{
          model.setCode(0);
          model.setData(list);
         model.setMsg("设置9100参数失败,请检查网络!");
       }
      //System.out.println(model.getData());
@@ -85,8 +114,10 @@
   
   
   //根据电池组id查询电池组内前五的内阻数据
   public ServiceModel serchByThirdBatt(Object obj){
      List list=battRtDataMapper.serchByThirdBatt(obj);
   public ServiceModel serchByThirdBatt(BattInf binf){
      ServiceModel model = new ServiceModel();
      PageHelper.startPage(0,10,false);
      List list=battRtDataMapper.serchByThirdBatt(binf);
      if(list!=null&&list.size()>0){
         model.setCode(1);
         model.setData(list);