whycrzg
2021-01-29 b421fde8f3499b638c117cc2cb9a49f260fb3481
src/main/java/com/fgkj/services/Battalarm_dataService.java
@@ -7,7 +7,13 @@
import com.fgkj.mapper.impl.BattInfMapper;
import com.fgkj.mapper.impl.Batt_devalarm_dataMapper;
import com.fgkj.mapper.impl.Battalarm_dataMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -29,6 +35,12 @@
   
   @Resource
   private BattInfMapper battInfMapper;
   @Resource
   private User_logService uservice;
   @Autowired
   DataSourceTransactionManager dataSourceTransactionManager;
   @Autowired
   TransactionDefinition transactionDefinition;
   
   public ServiceModel add(Object obj) {
      
@@ -68,30 +80,32 @@
   }
   
   //3.1电池告警实时查询(确认告警)(多条记录)
   public ServiceModel updatePro(Object obj) {
      List<Battalarm_data> list=(List<Battalarm_data>) obj;
      ArrayList<String> str_sql=new ArrayList<String>();
      List<User_log> listU=new ArrayList<User_log>();//存放user_log
       if(list!=null&&list.size()>0){
          for(int i=0;i<list.size();i++){
             Battalarm_data adata=list.get(i);
            String updateSql=mapper.updatePro(adata);
            str_sql.add(updateSql);
   public ServiceModel updatePro(List<Battalarm_data> list) {
      ServiceModel model = new ServiceModel();
      TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
      Boolean bl = true;
      if (list != null && list.size() > 0) {
         for (int i = 0; i < list.size(); i++) {
            Battalarm_data adata = list.get(i);
            if (!bl) {
               continue;
            }
            if (!(mapper.updatePro(adata)>0)){
               bl = false;
            }
            {                    //机房和电池组名称            //告警的类型
               String msg="确认"+adata.getStationname()+"的"+adata.getNote()+"告警";
               User_log ulog= UinfDaoFactory.CreateULog(UinfDaoFactory.Alter, msg);
               listU.add(ulog);
             }
          }
               String msg = "确认" + adata.getStationname() + "的" + adata.getNote() + "告警";
               User_log ulog = UinfDaoFactory.CreateULog(UinfDaoFactory.Alter, msg);
               uservice.add(ulog);    //将用户的操作记录下来
            }
         }
      }
       //TODO perry待做
      Boolean bl= true;
      // Boolean bl= DateUtil.makeManualCommit(DBUtil.getConn(), str_sql);
      (new User_logService()).addPro(listU);//将用户的操作记录下来
      if(bl){
      if (bl) {
         dataSourceTransactionManager.commit(transactionStatus);
         model.setCode(1);
         model.setMsg("确认成功!");
      }else{
      } else {
         dataSourceTransactionManager.rollback(transactionStatus);
         model.setCode(0);
         model.setMsg("确认失败!");
      }
@@ -100,30 +114,30 @@
   
   
   //3.1/3.2电池告警查询(删除记录)
   public ServiceModel delete(Object obj) {
      List<Battalarm_data> list=(List<Battalarm_data>) obj;
      ArrayList<String> str_sql=new ArrayList<String>();
      List<User_log> listU=new ArrayList<User_log>();//存放user_log
       if(list!=null&&list.size()>0){
          for(int i=0;i<list.size();i++){
             Battalarm_data adata=list.get(i);
            String delSql=mapper.delPro(adata);
            str_sql.add(delSql);
             {
               String msg="删除"+adata.getStationname()+"的"+adata.getNote()+"告警";
               User_log ulog=UinfDaoFactory.CreateULog(UinfDaoFactory.Delete, msg);
               listU.add(ulog);
             }
          }
   public ServiceModel delete(List<Battalarm_data> list) {
      ServiceModel model = new ServiceModel();
      TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
      Boolean bl = true;
      if (list != null && list.size() > 0) {
         for (int i = 0; i < list.size(); i++) {
            Battalarm_data adata = list.get(i);
            if (!bl) continue;
            if (!(mapper.delPro(adata)>0)) {
               bl = false;
            }
            {
               String msg = "删除" + adata.getStationname() + "的" + adata.getNote() + "告警";
               User_log ulog = UinfDaoFactory.CreateULog(UinfDaoFactory.Delete, msg);
               uservice.add(ulog);
            }
         }
      }
      //TODO perry待做
      // Boolean bl= DateUtil.makeManualCommit(DBUtil.getConn(), str_sql);
      Boolean bl= true;
      (new User_logService()).addPro(listU);//将用户的操作记录下来
      if(bl){
      if (bl) {
         dataSourceTransactionManager.commit(transactionStatus);
         model.setCode(1);
         model.setMsg("删除成功!");
      }else{
      } else {
         dataSourceTransactionManager.rollback(transactionStatus);
         model.setCode(0);
         model.setMsg("删除失败!");
      }
@@ -131,7 +145,7 @@
   }
    
   // 3.1电池容量告警实时查询
   public ServiceModel serchCapAlarm(Object obj){
   public ServiceModel serchCapAlarm(Batt_Maint_Dealarm obj){
      model=new ServiceModel();
      List<Batt_Maint_Dealarm> list=mapper.serchByCondition(obj);
      String name="未知";//存放告警名称
@@ -167,12 +181,26 @@
   
   //3.1电池告警实时查询
   public ServiceModel serchByCondition(Object obj){
      model=new ServiceModel();
      List<Batt_Maint_Dealarm> list=mapper.serchByCondition(obj);
   public ServiceModel serchByCondition(Batt_Maint_Dealarm bmd){
      ServiceModel model=new ServiceModel();
      PageBean pageBean = bmd.getPageBean();
      PageHelper.startPage(pageBean.getPageNum(),pageBean.getPageSize(),true);
      List<Batt_Maint_Dealarm> list=mapper.serchByCondition(bmd);
      if(list!=null && list.size()>1){
         for (int i = 0; i < list.size(); i++) {
            Battalarm_data adata = list.get(i).getAdata();
            String name="未知";         //存放告警名称
            String type="未知";         //存放告警等级
            //battinf中的StationName8,StationName9存放告警名称和等级
            name= AlarmDaoFactory.getAlarmName(adata.getAlm_signal_id());
            type=AlarmDaoFactory.getAlarmType(adata.getAlm_level());
            list.get(i).getBinf().setStationName8(name);
            list.get(i).getBinf().setStationName9(type);
//            System.out.println("StationName9 = " + list.get(i).getBinf().getStationName9());
         }
         PageInfo<Batt_Maint_Dealarm> pageInfo = new PageInfo<>(list);
         model.setCode(1);
         model.setData(list);
         model.setData(pageInfo);
      }else {
         model.setCode(0);
         model.setData(list);
@@ -181,11 +209,26 @@
   }    
   
   //3.2电池告警历史记录查询
   public ServiceModel serchByInfo(Object obj){
      List<Batt_Maint_Dealarm> list=mapper.serchByInfo(obj);
   public ServiceModel serchByInfo(Batt_Maint_Dealarm bmd){
      ServiceModel model=new ServiceModel();
      PageBean pageBean = bmd.getPageBean();
      PageHelper.startPage(pageBean.getPageNum(),pageBean.getPageSize(),true);
      List<Batt_Maint_Dealarm> list=mapper.serchByInfo(bmd);
      if(list!=null && list.size()>0){
         for (int i = 0; i < list.size(); i++) {
            Battalarm_data adata = list.get(i).getAdata();
            String name="未知";         //存放告警名称
            String type="未知";         //存放告警等级
            //battinf中的StationName8,StationName9存放告警名称和等级
            name= AlarmDaoFactory.getAlarmName(adata.getAlm_signal_id());
            type=AlarmDaoFactory.getAlarmType(adata.getAlm_level());
            list.get(i).getBinf().setStationName8(name);
            list.get(i).getBinf().setStationName9(type);
            System.out.println("StationName9 = " + list.get(i).getBinf().getStationName9());
         }
         PageInfo<Batt_Maint_Dealarm> pageInfo = new PageInfo<>(list);
         model.setCode(1);
         model.setData(list);
         model.setData(pageInfo);
      }else{
         model.setCode(0);
         model.setMsg("查询失败!");
@@ -220,8 +263,8 @@
   }
   
   //0.5查询实时告警数
   public ServiceModel serchAlm(Object obj){
      Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj;
   public ServiceModel serchAlm(Batt_Maint_Dealarm bmd){
      ServiceModel model=new ServiceModel();
      Battalarm_data adata=new Battalarm_data();
      adata.setNum(0);//实时告警总数
      adata.setBattGroupId(0);//容量告警告警数
@@ -288,12 +331,13 @@
   
   //0.10实时告警记录总数查询
   public ServiceModel serchRealTime(Object obj){
   public ServiceModelOnce serchRealTime(User_inf obj){
      ServiceModelOnce model = new ServiceModelOnce();
      List<Battalarm_data> list=mapper.serchRealTime(obj);
      if(list.size()>0&&list!=null){
         System.out.println("list.get(0) = " + list.get(0));
         model.setCode(1);
         //TODO perry
         // model.setSum(list.get(0).getNum());
          model.setSum(list.get(0).getNum());
      }else{
         model.setCode(0);
         model.setMsg("查询失败!");
@@ -311,14 +355,30 @@
      return model;
   } 
   //饼状图电池单体健康率
   public ServiceModel serchGood(Object obj){
      List list=mapper.serchGood(obj);//单体容量告警和单体告警告警
      int moncounts=(battInfMapper).serchMonAll(obj);//总单体数
   public ServiceModelOnce serchGood(User_inf obj) {
      ServiceModelOnce model = new ServiceModelOnce();
      List<Alarm_param> list = mapper.serchGood(obj);//单体容量告警和单体告警告警
      ArrayList<Integer> listlast = new ArrayList<>();
      if (null != list && list.size() > 0) {
         int capAlarm = 0;//告警告警总数
         int capChange = 0;//更换告警总数
         for (int i = 0; i < list.size(); i++) {
            Alarm_param alarm_param = list.get(i);
            int num = alarm_param.getNum();
            int alm_id = alarm_param.getAlm_id();
            if (alm_id == AlarmDaoFactory.Alarm_CapAlarm) {
               capAlarm += num;
            } else if (alm_id == AlarmDaoFactory.Alarm_CapChange) {
               capChange += num;
            }
         }
         listlast.add(capAlarm);
         listlast.add(capChange);
      }
      int moncounts = battInfMapper.serchMonAll(obj);//总单体数
      model.setCode(1);
      //TODO perry
      // model.setSum(moncounts);
      model.setData(list);
      //System.out.println(model);
      model.setSum(moncounts);
      model.setData(listlast);
      return model;
   }
   //取消告警
@@ -349,30 +409,30 @@
   }
   
   //取消告警(多条记录)
   public ServiceModel cancelalarmPro(Object obj) {
      List<Battalarm_data> list=(List<Battalarm_data>) obj;
      ArrayList<String> str_sql=new ArrayList<String>();
      List<User_log> listU=new ArrayList<User_log>();//存放user_log
       if(list!=null&&list.size()>0){
          for(int i=0;i<list.size();i++){
             Battalarm_data adata=list.get(i);
            String cancelSql=mapper.cancelalarmPro(adata);
            str_sql.add(cancelSql);
            {
               String msg="取消"+adata.getStationname()+"的"+adata.getNote()+"告警";
               User_log ulog=UinfDaoFactory.CreateULog(UinfDaoFactory.Alter, msg);
               listU.add(ulog);
             }
          }
   public ServiceModel cancelalarmPro(List<Battalarm_data> list) {
      ServiceModel model = new ServiceModel();
      TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
      Boolean bl = true;
      if (list != null && list.size() > 0) {
         for (int i = 0; i < list.size(); i++) {
            Battalarm_data adata = list.get(i);
            if (!bl) {
               continue;
            }
            if (!(mapper.cancelalarmPro(adata)>0)) {
               bl = false;
            }
            String msg = "取消" + adata.getStationname() + "的" + adata.getNote() + "告警";
            User_log ulog = UinfDaoFactory.CreateULog(UinfDaoFactory.Alter, msg);
            uservice.add(ulog); //将用户的操作记录下来
         }
      }
      //TODO perry待做
      Boolean bl= true;
      //Boolean bl=DateUtil.makeManualCommit(DBUtil.getConn(), str_sql);
      (new User_logService()).addPro(listU);//将用户的操作记录下来
      if(bl){
      if (bl) {
         dataSourceTransactionManager.commit(transactionStatus);
         model.setCode(1);
         model.setMsg("取消成功!");
      }else{
      } else {
         dataSourceTransactionManager.rollback(transactionStatus);
         model.setCode(0);
         model.setMsg("取消失败!");
      }
@@ -380,7 +440,8 @@
   }
   
    //项目下方的滚动,查询最新电池告警(电池告警和设备告警筛选出最新的一条)(旧版本)
   public ServiceModel serchTopAlm(){
   public ServiceModelOnce serchTopAlm(){
      ServiceModelOnce model=new ServiceModelOnce();
      List<Battalarm_data> lista=mapper.serchTopAlmInBatt();
      List<Batt_devalarm_data> listd=battDevAlarmDataMapper.serchTopAlmInDev();
      String adataStr="";//最后的电池告警字符串
@@ -398,7 +459,7 @@
                  +"告警";
            model.setMsg(adataStr);
            //TODO perry
            // model.setSum(0);//0表示电池告警
             model.setSum(0);//0表示电池告警
         }else{
            model.setData(ddata);
            ddataStr=""+ddata.getStationName()   // 机房名称
@@ -407,7 +468,7 @@
                  +"告警!";
            model.setMsg(ddataStr);
            //TODO perry
            // model.setSum(1);//1表示设备告警
             model.setSum(1);//1表示设备告警
         }
      }else if(lista==null&&listd.size()>0&&listd!=null){
         Batt_devalarm_data ddata= listd.get(listd.size()-1);
@@ -418,7 +479,7 @@
               +"告警!";
         model.setMsg(ddataStr);
         //TODO perry
         // model.setSum(1);//1表示设备告警
          model.setSum(1);//1表示设备告警
      }else if(listd==null&&lista.size()>0&&lista!=null){
         Battalarm_data adata=lista.get(lista.size()-1);
         model.setData(adata);
@@ -428,7 +489,7 @@
               +"告警!";
         model.setMsg(adataStr);
         //TODO perry
         // model.setSum(0);//0表示电池告警
          model.setSum(0);//0表示电池告警
      }else{
          model.setCode(0);
          model.setMsg("没有最新的告警!");
@@ -437,10 +498,29 @@
   }
   
    //项目下方的滚动,查询最新电池告警(电池告警和设备告警筛选出最新的五条)
   public ServiceModel serchTopAlmTen(Object obj){
   public ServiceModel serchTopAlmTen(User_inf obj){
      ServiceModel model=new ServiceModel();
      List<Battalarm_data> lista=mapper.serchTopBattTen(obj);
      if(lista!=null&&lista.size()>0){
         for (int i = 0; i < lista.size(); i++) {
            String adataStr = lista.get(i).getStationname()
                  + "在" + ActionUtil.chageDateToString(lista.get(i).getAlm_start_time(), ActionUtil.time_yyyyMMddHHmmss)
                  + "出现了" + AlarmDaoFactory.getAlarmName(lista.get(i).getAlm_signal_id())
                  + "告警";
            lista.get(i).setNote(adataStr);
         }
      }
      List<Batt_devalarm_data> listd=battDevAlarmDataMapper.serchTopDevTen(obj);
      if(listd!=null&&listd.size()>0){
         for (int i = 0; i < lista.size(); i++) {
            String ddataStr=""+listd.get(i).getStationName()   // 机房名称
                  +"在"+ActionUtil.chageDateToString(listd.get(i).getAlm_start_time(), ActionUtil.time_yyyyMMddHHmmss)   // 告警开始时间
                  +"出现了"+AlarmDaoFactory.getdevName(listd.get(i).getAlm_type()) // 告警类型名称
                  +"告警!";
            listd.get(i).setNote(ddataStr);
         }
         for (Batt_devalarm_data ddata : listd) {
            Battalarm_data data=new Battalarm_data();
            data.setAlm_id(ddata.getDev_id());
@@ -463,7 +543,8 @@
   }
   
   //点击项目下方的滚动,查询该条告警的实时信息
   public ServiceModel  serchBatt_alarm(Object obj){
   public ServiceModel  serchBatt_alarm(Battalarm_data obj){
      ServiceModel model= new ServiceModel();
      List list=mapper.serchBatt_alarm(obj);
      if(list!=null && list.size()>0){
         model.setCode(1);
@@ -475,12 +556,22 @@
      }      
      return model;
   }
   //3.1电池告警实时查询<***********跨域专用**************>
   public ServiceModel serchByCondition_ky(Object obj){
      model=new ServiceModel();
      List list=mapper.serchByCondition_ky(obj);
      if(list!=null && list.size()>1){
   public ServiceModel serchByCondition_ky(BattInf obj){
      ServiceModel model=new ServiceModel();
      List<Battalarm_data> list=mapper.serchByCondition_ky(obj);
      if(list!=null && list.size()>1) {   //TODO
         for (int i = 0; i < list.size(); i++) {
            String name = "未知";            //存放告警名称
            String type = "未知";            //存放告警等级
            Battalarm_data bd = list.get(i);
            //battinf中的--
            name = AlarmDaoFactory.getAlarmName(bd.getAlm_signal_id());
            list.get(i).setAlarmname(name);
            type = AlarmDaoFactory.getAlarmType(bd.getAlm_level());
            list.get(i).setAlarmtype(type);
         }
         model.setCode(1);
         model.setData(list);
         model.setMsg("查询成功!");