package com.gyee.generation.service;//package com.gyee.generation.service; import com.gyee.common.contant.ContantXk; import com.gyee.common.model.PointData; import com.gyee.common.model.StringUtils; import com.gyee.generation.init.CacheContext; import com.gyee.generation.model.auto.*; import com.gyee.generation.model.vo.Location; import com.gyee.generation.service.auto.IProEconEquipmentInfoDay2Service; import com.gyee.generation.util.DateUtils; import com.gyee.generation.util.realtimesource.IEdosUtil; import com.gyee.generation.util.statisticcs.Initial; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @Service public class EquipmentInfo2Service { private static final Logger logger = LoggerFactory.getLogger(EquipmentInfo2Service.class); @Resource private IEdosUtil edosUtil; @Resource private IProEconEquipmentInfoDay2Service proEconEquipmentInfoDay2Service; /** * 计算设备日信息 * @param recordDate * @throws Exception */ public void calLineInfoDay(Date recordDate) throws Exception { Calendar c=Calendar.getInstance(); c.setTime(recordDate); Date end=c.getTime(); Date begin= DateUtils.truncDay(c.getTime()); //判断是否有重复记录,先删除重复记录 List idls = proEconEquipmentInfoDay2Service.list().stream() .filter(i -> i.getRecordDate().compareTo(DateUtils.truncDay(recordDate))==0 && CacheContext.wtmap.containsKey(i.getWindturbineId()) ).map(ProEconEquipmentInfoDay2::getId) .collect(Collectors.toList()); if (idls != null && idls.size() > 0) { proEconEquipmentInfoDay2Service.removeByIds(idls); } for(ProBasicWindturbine wt:CacheContext.wtls) { if(CacheContext.wppointmap.containsKey(wt.getId())) { ProEconEquipmentInfoDay2 pewp=new ProEconEquipmentInfoDay2(); Initial.initial(pewp); pewp.setCompanyId(wt.getCompanyId()); pewp.setWindpowerstationId(wt.getWindpowerstationId()); pewp.setLineId(wt.getLineId()); pewp.setProjectId(wt.getProjectId()); pewp.setRegionId(wt.getRegionId()); pewp.setRecordDate(DateUtils.truncDay(recordDate)); //昨日的统计结果 List pepidls =new ArrayList<>(); Calendar cl=Calendar.getInstance(); cl.setTime(recordDate); if(cl.get(Calendar.DAY_OF_MONTH)!=1) { pepidls = proEconEquipmentInfoDay2Service.list().stream() .filter(i -> i.getRecordDate().compareTo(DateUtils.truncDay(cl.getTime())) == 0 && i.getWindturbineId().equals(wt.getId()) ) .collect(Collectors.toList()); } calDetiall( pewp, end, begin, wt,pepidls); proEconEquipmentInfoDay2Service.save(pewp); } } } private void calDetiall(ProEconEquipmentInfoDay2 pewp,Date end, Date begin,ProBasicWindturbine wt,List pepidls) throws Exception { // // 0 待机 // 1 手动停机 // 2 正常发电 // 3 发电降出力 // 4 故障 // 5 故障受累 // 6 检修 // 7 检修受累 // 8 限电降出力 // 9 限电停机 // 10 电网受累 // 11 环境受累 // 12 通讯中断 // 13 设备离线 double lastState=-1;//上一分钟状态 double djsc=0;//待机时长 double sdtjsc=0;//手动停机时长 double zcfdsc=0;//正常发电时长 double fdjclsc=0;//发电降出力时长 double gzsc=0;//故障时长 double gzslsc=0;//故障受累时长 double jxsc=0;//检修时长 double jxslsc=0;//检修受累时长 double xdjclsc=0;//限电降出力时长 double xdtjsc=0;//限电停机时长 double dwslsc=0;//电网受累时长 double hjslsc=0;//环境受累时长 double txzdsc=0;//通讯中断时长 double sblxsc=0;//设备离线时长 Map> wtpAimap = CacheContext.wtpAimap; lastState=-1;//上一分钟状态 Map aimap=wtpAimap.get(wt.getNemCode()); if(wtpAimap.containsKey(ContantXk.MXZT)); { ProBasicEquipmentPoint point=aimap.get(ContantXk.MXZT); //按照分钟时间进行统计状态快照值 List pointls=edosUtil.getHistoryDatasSnap(point.getNemCode(), begin.getTime()/1000, end.getTime()/1000); if(!pointls.isEmpty()) { for(PointData po :pointls) { if(po.getPointValueInDouble()==0) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //待机时长加1分钟 djsc++; }else if(po.getPointValueInDouble()==1) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //手动停机时长加1分钟 sdtjsc++; }else if(po.getPointValueInDouble()==2) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //正常发电时长加1分钟 zcfdsc++; }else if(po.getPointValueInDouble()==3) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //发电降出力时长加1分钟 fdjclsc++; }else if(po.getPointValueInDouble()==4) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //故障时长加1分钟 gzsc++; }else if(po.getPointValueInDouble()==5) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //故障受累时长加1分钟 gzslsc++; }else if(po.getPointValueInDouble()==6) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //检修时长加1分钟 jxsc++; }else if(po.getPointValueInDouble()==7) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //检修受累时长加1分钟 jxslsc++; }else if(po.getPointValueInDouble()==8) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //限电降出力时长加1分钟 xdjclsc++; }else if(po.getPointValueInDouble()==9) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //限电停机时长加1分钟 xdtjsc++; }else if(po.getPointValueInDouble()==10) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //电网受累时长加1分钟 dwslsc++; }else if(po.getPointValueInDouble()==11) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //环境受累时长加1分钟 hjslsc++; }else if(po.getPointValueInDouble()==12) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //通讯中断时长加1分钟 txzdsc++; }else if(po.getPointValueInDouble()==13) { if(lastState!=po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState=po.getPointValueInDouble(); } //设备离线时长加1分钟 sblxsc++; } } } } //日合计故障小时(明细) pewp.setRgzxsmx(new BigDecimal(gzsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计场内受累故障小时(明细) pewp.setRcnslgzxsmx(new BigDecimal(gzslsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计检修小时(明细) pewp.setRjxxsmx(new BigDecimal(jxsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计场内受累检修小时(明细) pewp.setRcnsljxxsmx(new BigDecimal(jxslsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计待机小时(明细) pewp.setRdjxsmx(new BigDecimal(djsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计缺陷降出力小时(明细) pewp.setRqxjclxsmx(new BigDecimal(fdjclsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计手动停机小时(明细) pewp.setRsdtjxsmx(new BigDecimal(sdtjsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计性能小时(明细) pewp.setRbwxsmx(new BigDecimal(zcfdsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计限电停机小时(明细) pewp.setRxdtjxsmx(new BigDecimal(xdtjsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计限电降出力小时(明细) pewp.setRxdjclxsmx(new BigDecimal(xdjclsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计场外受累电网小时(明细) pewp.setRcwsldwxsmx(new BigDecimal(dwslsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计场外受累电网小时(明细) pewp.setRcwsltqxsmx(new BigDecimal(hjslsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计通讯中断小时(明细) pewp.setRtxzdxsmx(new BigDecimal(txzdsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计离线小时(明细) pewp.setRlxxsmx(new BigDecimal(sblxsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); /*******************************************日信息统计*********************************************************/ /*******************************************月信息统计*********************************************************/ if(pepidls.isEmpty()) { setLossHoursMonth(pewp); }else { if(!pepidls.isEmpty()) { ProEconEquipmentInfoDay2 pepid=pepidls.get(0); //月合计故障小时(明细) pewp.setYgzxsmx(StringUtils.round(pepid.getYgzxsmx()+pewp.getRgzxsmx(),2)); //月合计场内受累故障小时(明细) pewp.setYcnslgzxsmx(StringUtils.round(pepid.getYcnslgzxsmx()+pewp.getRcnslgzxsmx(),2)); //月合计检修小时(明细) pewp.setYjxxsmx(StringUtils.round(pepid.getYjxxsmx()+pewp.getRjxxsmx(),2)); //月合计场内受累检修小时(明细) pewp.setYcnsljxxsmx(StringUtils.round( pepid.getYcnsljxxsmx()+pewp.getRcnsljxxsmx(),2)); //月合计待机小时(明细) pewp.setYdjxsmx(StringUtils.round(pepid.getYdjxsmx()+pewp.getRdjxsmx(),2)); //月合计缺陷降出力小时(明细) pewp.setYqxjclxsmx(StringUtils.round(pepid.getYqxjclxsmx()+pewp.getRqxjclxsmx(),2)); //月合计手动停机小时(明细) pewp.setYsdtjxsmx(StringUtils.round(pepid.getYsdtjxsmx()+pewp.getRsdtjxsmx(),2)); //月合计性能小时(明细) pewp.setYbwxsmx(StringUtils.round(pepid.getYbwxsmx()+pewp.getRbwxsmx(),2)); //月合计限电停机小时(明细) pewp.setYxdtjxsmx(StringUtils.round(pepid.getYxdtjxsmx()+pewp.getRxdtjxsmx(),2)); //月合计限电降出力小时(明细) pewp.setYxdjclxsmx(StringUtils.round(pepid.getYxdjclxsmx()+pewp.getRxdjclxsmx(),2)); //月合计场外受累电网小时(明细) pewp.setYcwsldwxsmx(StringUtils.round(pepid.getYcwsldwxsmx()+pewp.getRcwsldwxsmx(),2)); //月合计场外受累电网小时(明细) pewp.setYcwsltqxsmx(StringUtils.round(pepid.getYcwsltqxsmx()+pewp.getRcwsltqxsmx(),2)); //月合计通讯中断小时(明细) pewp.setYtxzdxsmx(StringUtils.round(pepid.getYtxzdxsmx()+pewp.getRtxzdxsmx(),2)); //月合计离线小时(明细) pewp.setYlxxsmx(StringUtils.round(pepid.getYlxxsmx()+pewp.getRlxxsmx(),2)); }else { setLossHoursMonth(pewp); } } /*******************************************月信息统计*********************************************************/ /*******************************************年信息统计*********************************************************/ if(pepidls.isEmpty()) { setLossHoursYear(pewp); }else { if(!pepidls.isEmpty()) { ProEconEquipmentInfoDay2 pepid=pepidls.get(0); //年合计故障小时(明细) pewp.setYgzxsmx(StringUtils.round(pepid.getNgzxsmx()+pewp.getRgzxsmx(),2)); //年合计场内受累故障小时(明细) pewp.setYcnslgzxsmx(StringUtils.round(pepid.getNcnslgzxsmx()+pewp.getRcnslgzxsmx(),2)); //年合计检修小时(明细) pewp.setYjxxsmx(StringUtils.round(pepid.getNjxxsmx()+pewp.getRjxxsmx(),2)); //年合计场内受累检修小时(明细) pewp.setYcnsljxxsmx(StringUtils.round( pepid.getNcnsljxxsmx()+pewp.getRcnsljxxsmx(),2)); //年合计待机小时(明细) pewp.setYdjxsmx(StringUtils.round(pepid.getNdjxsmx()+pewp.getRdjxsmx(),2)); //年合计缺陷降出力小时(明细) pewp.setYqxjclxsmx(StringUtils.round(pepid.getNqxjclxsmx()+pewp.getRqxjclxsmx(),2)); //年合计手动停机小时(明细) pewp.setYsdtjxsmx(StringUtils.round(pepid.getNsdtjxsmx()+pewp.getRsdtjxsmx(),2)); //年合计性能小时(明细) pewp.setYbwxsmx(StringUtils.round(pepid.getNbwxsmx()+pewp.getRbwxsmx(),2)); //年合计限电停机小时(明细) pewp.setYxdtjxsmx(StringUtils.round(pepid.getNxdtjxsmx()+pewp.getRxdtjxsmx(),2)); //年合计限电降出力小时(明细) pewp.setYxdjclxsmx(StringUtils.round(pepid.getNxdjclxsmx()+pewp.getRxdjclxsmx(),2)); //年合计场外受累电网小时(明细) pewp.setYcwsldwxsmx(StringUtils.round(pepid.getNcwsldwxsmx()+pewp.getRcwsldwxsmx(),2)); //年合计场外受累电网小时(明细) pewp.setYcwsltqxsmx(StringUtils.round(pepid.getNcwsltqxsmx()+pewp.getRcwsltqxsmx(),2)); //年合计通讯中断小时(明细) pewp.setYtxzdxsmx(StringUtils.round(pepid.getNtxzdxsmx()+pewp.getRtxzdxsmx(),2)); //年合计离线小时(明细) pewp.setYlxxsmx(StringUtils.round(pepid.getNlxxsmx()+pewp.getRlxxsmx(),2)); }else { setLossHoursYear(pewp); } } } private static void setLossHoursYear(ProEconEquipmentInfoDay2 pewp) { //年合计故障小时(明细) pewp.setNgzxsmx(pewp.getRgzxsmx()); //年合计场内受累故障小时(明细) pewp.setNcnslgzxsmx(pewp.getRcnslgzxsmx()); //年合计检修小时(明细) pewp.setNjxxsmx(pewp.getRjxxsmx()); //年合计场内受累检修小时(明细) pewp.setNcnsljxxsmx(pewp.getRcnsljxxsmx()); //年合计待机小时(明细) pewp.setNdjxsmx(pewp.getRdjxsmx()); //年合计缺陷降出力小时(明细) pewp.setNqxjclxsmx(pewp.getRqxjclxsmx()); //年合计手动停机小时(明细) pewp.setNsdtjxsmx(pewp.getRsdtjxsmx()); //年合计性能小时(明细) pewp.setNbwxsmx(pewp.getRbwxsmx()); //年合计限电停机小时(明细) pewp.setNxdtjxsmx(pewp.getRxdtjxsmx()); //年合计限电降出力小时(明细) pewp.setNxdjclxsmx(pewp.getRxdjclxsmx()); //年合计场外受累电网小时(明细) pewp.setNcwsldwxsmx(pewp.getRcwsldwxsmx()); //年合计场外受累电网小时(明细) pewp.setNcwsltqxsmx(pewp.getRcwsltqxsmx()); //年合计通讯中断小时(明细) pewp.setNtxzdxsmx(pewp.getRtxzdxsmx()); //年合计离线小时(明细) pewp.setNlxxsmx(pewp.getRlxxsmx()); } private static void setLossHoursMonth(ProEconEquipmentInfoDay2 pewp) { //月合计故障小时(明细) pewp.setYgzxsmx(pewp.getRgzxsmx()); //月合计场内受累故障小时(明细) pewp.setYcnslgzxsmx(pewp.getRcnslgzxsmx()); //月合计检修小时(明细) pewp.setYjxxsmx(pewp.getRjxxsmx()); //月合计场内受累检修小时(明细) pewp.setYcnsljxxsmx(pewp.getRcnsljxxsmx()); //月合计待机小时(明细) pewp.setYdjxsmx(pewp.getRdjxsmx()); //月合计缺陷降出力小时(明细) pewp.setYqxjclxsmx(pewp.getRqxjclxsmx()); //月合计手动停机小时(明细) pewp.setYsdtjxsmx(pewp.getRsdtjxsmx()); //月合计性能小时(明细) pewp.setYbwxsmx(pewp.getRbwxsmx()); //月合计限电停机小时(明细) pewp.setYxdtjxsmx(pewp.getRxdtjxsmx()); //月合计限电降出力小时(明细) pewp.setYxdjclxsmx(pewp.getRxdjclxsmx()); //月合计场外受累电网小时(明细) pewp.setYcwsldwxsmx(pewp.getRcwsldwxsmx()); //月合计场外受累电网小时(明细) pewp.setYcwsltqxsmx(pewp.getRcwsltqxsmx()); //月合计通讯中断小时(明细) pewp.setYtxzdxsmx(pewp.getRtxzdxsmx()); //月合计离线小时(明细) pewp.setYlxxsmx(pewp.getRlxxsmx()); } private static void setLossHoursMonthSimple(ProEconEquipmentInfoDay2 pewp) { //月合计待机小时 pewp.setYdjxs(pewp.getRdjxs()); //月合计维护停机小时 pewp.setYjxtjxs(pewp.getRjxtjxs()); // 月合计故障停机小时 pewp.setYgztjxs(pewp.getRgztjxs()); //月合计运行小时 pewp.setYyxxs(pewp.getRyxxs()); //月合计限电小时 pewp.setYxdxs(pewp.getRxdxs()); //月合计通讯中断小时 pewp.setYtxzdxs(pewp.getRtxzdxs()); //月合计受累小时 pewp.setYslxs(pewp.getRslxs()); } private static void setLossHoursYearSimple(ProEconEquipmentInfoDay2 pewp) { //年合计待机小时 pewp.setNdjxs(pewp.getRdjxs()); //年合计维护停机小时 pewp.setNjxtjxs(pewp.getRjxtjxs()); // 年合计故障小时 pewp.setNgztjxs(pewp.getRgztjxs()); //年合计运行小时 pewp.setNyxxs(pewp.getRyxxs()); //年合计限电小时 pewp.setNxdxs(pewp.getRxdxs()); //年合计通讯中断小时 pewp.setNtxzdxs(pewp.getRtxzdxs()); //年合计受累小时 pewp.setNslxs(pewp.getRslxs()); } private void calSimple(ProEconEquipmentInfoDay2 pewp,Date end, Date begin,ProBasicWindturbine wt,List pepidls) throws Exception { // 0 待机 // 1 运行 // 2 故障 // 3 检修 // 4 限电 // 5 受累 // 6 离线 /*******************************************日信息统计*********************************************************/ double lastState=-1;//上一分钟状态 double djsc=0;//待机时长 double zcfdsc=0;//正常发电时长 double gzsc=0;//故障时长 double jxsc=0;//检修时长 double xdtjsc=0;//限电停机时长 double slsc=0;//受累时长 double txzdsc=0;//通讯中断时长 Map> wtpAimap = CacheContext.wtpAimap; Map aimap=wtpAimap.get(wt.getNemCode()); if(wtpAimap.containsKey(ContantXk.SBZT)); { ProBasicEquipmentPoint point=aimap.get(ContantXk.SBZT); //按照分钟时间进行统计状态快照值 List pointls=edosUtil.getHistoryDatasSnap(point.getNemCode(), begin.getTime()/1000, end.getTime()/1000); if(!pointls.isEmpty()) { for (PointData po : pointls) { if (po.getPointValueInDouble() == 0) { if (lastState != po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState = po.getPointValueInDouble(); } //待机时长加1分钟 djsc++; } else if (po.getPointValueInDouble() == 1) { if (lastState != po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState = po.getPointValueInDouble(); } //正常发电时长加1分钟 zcfdsc++; } else if (po.getPointValueInDouble() == 2) { if (lastState != po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState = po.getPointValueInDouble(); } //故障时长加1分钟 gzsc++; } else if (po.getPointValueInDouble() == 3) { if (lastState != po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState = po.getPointValueInDouble(); } //检修时长加1分钟 jxsc++; } else if (po.getPointValueInDouble() == 4) { if (lastState != po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState = po.getPointValueInDouble(); } //限电停机时长加1分钟 xdtjsc++; } else if (po.getPointValueInDouble() == 5) { if (lastState != po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState = po.getPointValueInDouble(); } //受累时长加1分钟 slsc++; } else if (po.getPointValueInDouble() == 6) { if (lastState != po.getPointValueInDouble()) { //将当前状态保存到上一分钟状态 lastState = po.getPointValueInDouble(); } //通讯中断时长加1分钟 txzdsc++; } } } } //日合计待机小时 pewp.setRdjxs(new BigDecimal(gzsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计维护停机小时 pewp.setRjxtjxs(new BigDecimal(jxsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); // 日合计待机小时 pewp.setRdjxs(new BigDecimal(djsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计运行小时 pewp.setRyxxs(new BigDecimal(zcfdsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计限电小时 pewp.setRxdxs(new BigDecimal(xdtjsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计通讯中断小时 pewp.setRtxzdxs(new BigDecimal(txzdsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); //日合计受累小时 pewp.setRslxs(new BigDecimal(slsc).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue()); /*******************************************日信息统计*********************************************************/ /*******************************************月信息统计*********************************************************/ if(pepidls.isEmpty()) { setLossHoursMonthSimple(pewp); }else { if(!pepidls.isEmpty()) { ProEconEquipmentInfoDay2 pepid=pepidls.get(0); //月合计待机小时 pewp.setYdjxs(StringUtils.round(pepid.getYdjxs()+pewp.getRdjxs(),2)); //月合计维护停机小时 pewp.setYjxtjxs(StringUtils.round(pepid.getYjxtjxs()+pewp.getRjxtjxs(),2)); // 月合计故障小时 pewp.setYgztjxs(StringUtils.round(pepid.getYgztjxs()+pewp.getRgztjxs(),2)); //月合计运行小时 pewp.setYyxxs(StringUtils.round(pepid.getYyxxs()+pewp.getRyxxs(),2)); //月合计限电小时 pewp.setYxdxs(StringUtils.round(pepid.getYxdxs()+pewp.getRxdxs(),2)); //月合计通讯中断小时 pewp.setYtxzdxs(StringUtils.round(pepid.getYtxzdxs()+pewp.getRtxzdxs(),2)); //月合计受累小时 pewp.setYslxs(StringUtils.round(pepid.getYslxs()+pewp.getRslxs(),2)); }else { setLossHoursMonthSimple(pewp); } } /*******************************************月信息统计*********************************************************/ /*******************************************年信息统计*********************************************************/ if(pepidls.isEmpty()) { setLossHoursYearSimple(pewp); }else { if(!pepidls.isEmpty()) { ProEconEquipmentInfoDay2 pepid=pepidls.get(0); //年合计待机小时 pewp.setNdjxs(StringUtils.round(pepid.getNdjxs()+pewp.getRdjxs(),2)); //年合计维护停机小时 pewp.setNjxtjxs(StringUtils.round(pepid.getNjxtjxs()+pewp.getRjxtjxs(),2)); // 年合计故障小时 pewp.setNgztjxs(StringUtils.round(pepid.getNgztjxs()+pewp.getRgztjxs(),2)); //年合计运行小时 pewp.setNyxxs(StringUtils.round(pepid.getNyxxs()+pewp.getRyxxs(),2)); //年合计限电小时 pewp.setNxdxs(StringUtils.round(pepid.getNxdxs()+pewp.getRxdxs(),2)); //年合计通讯中断小时 pewp.setNtxzdxs(StringUtils.round(pepid.getNtxzdxs()+pewp.getRtxzdxs(),2)); //年合计受累小时 pewp.setNslxs(StringUtils.round(pepid.getNslxs()+pewp.getRslxs(),2)); }else { setLossHoursYearSimple(pewp); } } /*******************************************年信息统计*********************************************************/ } }