81041
2019-01-08 c8e39b9cda12e97167e8328a70a07fe1315072cc
gx_tieta/src/com/fgkj/services/ram/Fbs9100_battparamService.java
@@ -1,15 +1,21 @@
package com.fgkj.services.ram;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import com.fgkj.dao.BaseDAO;
import com.fgkj.dao.BaseDAOFactory;
import com.fgkj.dao.FBS9100_ComBase;
import com.fgkj.dao.impl.BattInfImpl;
import com.fgkj.dao.impl.ram.Bts_gprs_stateImpl;
import com.fgkj.dao.impl.ram.Fbs9100_battparamImpl;
import com.fgkj.dao.impl.ram.Fbs9100_sysparamImpl;
import com.fgkj.dto.BattInf;
import com.fgkj.dto.ServiceModel;
import com.fgkj.dto.ram.Bts_gprs_state;
import com.fgkj.dto.ram.Fbs9100_battparam;
import com.fgkj.dto.ram.Fbs9100_sysparam;
public class Fbs9100_battparamService {
   private BaseDAO dao;
@@ -40,6 +46,45 @@
      
      return model;   
   }
   //批量设置电池参数
     public ServiceModel updatePro(Object obj) {
        boolean bl=((Fbs9100_battparamImpl)dao).updatePro(obj);
        if(bl) {
           List<Fbs9100_battparam> list=(List<Fbs9100_battparam>) obj;
           Calendar c = Calendar.getInstance();
           //现在的时间(单位:毫秒)
           long now_time = c.getTimeInMillis();
           long time=0;
           int success=0;
           do {
              for (int i = 0; i < list.size(); i++) {
                 Fbs9100_battparam fs=new Fbs9100_battparam();
                 fs=list.get(i);
                 if(fs.getNum()==0) {//前台传参设置
                    boolean b=((Fbs9100_battparamImpl)dao).getCmdAck(fs.getOp_cmd(), fs.getDev_id());
                    if(b) {
                       success+=1;
                       list.get(i).setNum(1);
                    }
                 }
              }
              if(success==list.size()) {
                 break;
              }
              Calendar cl = Calendar.getInstance();
              long moment_time = cl.getTimeInMillis();
              time=moment_time-now_time;
           }while(time<=5*1000);
           model.setData(list);
           model.setCode(1);
           model.setSum(success);
           model.setMsg("修改成功!");
        }else {
           model.setCode(0);
           model.setMsg("修改失败!");
        }
        return model;
     }
   //根据设备id查询电池参数信息
   public ServiceModel serchByCondition(Object obj) {
      List list=dao.serchByCondition(obj);
@@ -53,4 +98,121 @@
      }
      return model;
   }
   //批量设置电池参数时,根据省市区,电池单体型号(伏数),组数筛选出电池组并读取它的实际电池参数
   public ServiceModel serchBattinfAndParam(Object obj) {
      List<BattInf> list=(new BattInfImpl()).serchByBatt_param(obj);
      if(list!=null&&list.size()>0) {
           Calendar c = Calendar.getInstance();
           //现在的时间(单位:毫秒)
           long now_time = c.getTimeInMillis();
           long time=0;
           int success=0;
           int count=0;
           do {
              for (int i = 0; i < list.size(); i++) {
                 BattInf binf=list.get(i);
                 Fbs9100_battparam fs=new Fbs9100_battparam();
                 fs.setDev_id(binf.getFBSDeviceId());
                 fs.setOp_cmd(FBS9100_ComBase.CMD_GetBattParam);
                 if(count==0) {
                      fs.setDev_ip("127.0.0.0");
                      fs.setSTD_CAP(1);
                      fs.setSTD_RES(1);
                      fs.setBattGroupCount(1);
                      fs.setEachGroupBattCount(1);
                      fs.setMonomerVol(1);
                      fs.setGroupVol(1);
                      fs.setBattTemp(1);
                      fs.setFloatChargeVol(1);
                      fs.setFloatChargeCurr(1);
                      fs.setOnlineVolLow(1);
                      fs.setGroupConnType(1);
                      boolean bl=((Fbs9100_battparamImpl)dao).updatePL(fs);
                      List listb=new ArrayList();
                      listb.add(fs);
                       list.get(i).setObj(listb);
                 }
                 if(binf.getNum()==0) {
                    boolean b=((Fbs9100_battparamImpl)dao).getCmdAck(fs.getOp_cmd(), fs.getDev_id());
                    if(b) {
                       success+=1;
                       list.get(i).setNum(1);
                        List listbatt=dao.serchByCondition(fs);
                        list.get(i).setObj(listbatt);
                       // System.out.println(list.get(i).getFBSDeviceId());
                    }
                 }
              }
              count++;
              if(success==list.size()) {
                 break;
              }
              Calendar cl = Calendar.getInstance();
              long moment_time = cl.getTimeInMillis();
              time=moment_time-now_time;
           }while(time<=5*1000);
           model.setData(list);
           model.setCode(1);
           model.setSum(success);
           model.setMsg("修改成功!");
      }else{
         model.setCode(0);
         model.setMsg("查询失败!");
      }
      return model;
   }
   //批量读取电池参数
   public ServiceModel readPL(Object obj) {
      boolean bl=((Fbs9100_battparamImpl)dao).readPL(obj);
      if(bl) {
         List<Fbs9100_battparam> list=(List<Fbs9100_battparam>) obj;
           Calendar c = Calendar.getInstance();
           //现在的时间(单位:毫秒)
           long now_time = c.getTimeInMillis();
           long time=0;
           int success=0;
           do {
              for (int i = 0; i < list.size(); i++) {
                 Fbs9100_battparam fs=new Fbs9100_battparam();
                 fs=list.get(i);
                 if(fs.getNum()==0) {//前台传参设置
                    boolean b=((Fbs9100_battparamImpl)dao).getCmdAck(fs.getOp_cmd(), fs.getDev_id());
                    if(b) {
                       success+=1;
                       list.get(i).setNum(1);
                       List listbatt=dao.serchByCondition(fs);
                       list.get(i).setObj(listbatt);
                    }
                 }
              }
              if(success==list.size()) {
                 break;
              }
              Calendar cl = Calendar.getInstance();
              long moment_time = cl.getTimeInMillis();
              time=moment_time-now_time;
           }while(time<=5*1000);
           model.setData(list);
           model.setCode(1);
           model.setSum(success);
           model.setMsg("读取成功!");
        }else {
           model.setCode(0);
           model.setMsg("读取失败!");
        }
        return model;
   }
   public static void main(String[] args) {
      Fbs9100_battparamService service=new Fbs9100_battparamService();
      BattInf binf=new BattInf();
      binf.setNum(2);
      binf.setStationName("百色");
      binf.setGroupIndexInFBSDevice(100);
      binf.setMonVolStd(2f);
      ServiceModel model=service.serchBattinfAndParam(binf);
      List list=(List)model.getData();
      for (int i = 0; i < list.size(); i++) {
         System.out.println(((BattInf)list.get(i)).getObj());
      }
   }
}