123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728 |
- 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.ProBasicEquipment;
- import com.gyee.generation.model.auto.ProBasicEquipmentPoint;
- import com.gyee.generation.model.auto.ProEconEquipmentInfoDay2;
- 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.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;
- /**
- * 计算设备日信息
- */
- public void calEquipmentInfoDay(Date recordDate) throws Exception {
- Calendar c=Calendar.getInstance();
- c.setTime(recordDate);
- Date end=c.getTime();
- Date begin= DateUtils.truncate(c.getTime());
- //判断是否有重复记录,先删除重复记录
- List<String> idls = proEconEquipmentInfoDay2Service.list().stream()
- .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate))==0
- && CacheContext.wtmap.containsKey(i.getWindturbineId())
- ).map(ProEconEquipmentInfoDay2::getId)
- .collect(Collectors.toList());
- if (idls.size() > 0) {
- proEconEquipmentInfoDay2Service.removeByIds(idls);
- }
- for(ProBasicEquipment wt:CacheContext.wtls)
- {
- if(CacheContext.wtpAimap.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.truncate(recordDate));
- //昨日的统计结果
- List<ProEconEquipmentInfoDay2> pepidls =new ArrayList<>();
- Calendar cl=Calendar.getInstance();
- cl.setTime(recordDate);
- cl.add(Calendar.DAY_OF_MONTH,-1);
- if(cl.get(Calendar.DAY_OF_MONTH)!=1)
- {
- pepidls = proEconEquipmentInfoDay2Service.list().stream()
- .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(cl.getTime())) == 0
- && i.getWindturbineId().equals(wt.getId())
- )
- .collect(Collectors.toList());
- }
- calDetiall( pewp, end, begin, wt,pepidls);
- calSimple( pewp, end, begin, wt,pepidls);
- proEconEquipmentInfoDay2Service.save(pewp);
- }
- }
- }
- private void calDetiall(ProEconEquipmentInfoDay2 pewp, Date end, Date begin, ProBasicEquipment wt, List<ProEconEquipmentInfoDay2> pepidls) throws Exception {
- // // 0 待机
- // 1 手动停机
- // 2 正常发电
- // 3 发电降出力
- // 4 故障
- // 5 故障受累
- // 6 检修
- // 7 检修受累
- // 8 限电降出力
- // 9 限电停机
- // 10 电网受累
- // 11 环境受累
- // 12 通讯中断
- // 13 设备离线
- double lastState;//上一分钟状态
- 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<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = CacheContext.wtpAimap;
- lastState=-1;//上一分钟状态
- Map<String, ProBasicEquipmentPoint> aimap=wtpAimap.get(wt.getId());
- if(aimap.containsKey(ContantXk.MXZT))
- {
- ProBasicEquipmentPoint point=aimap.get(ContantXk.MXZT);
- //按照分钟时间进行统计状态快照值
- List<PointData> 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
- {
- 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));
- }
- //*******************************************月信息统计*********************************************************/
- //*******************************************年信息统计*********************************************************/
- if(pepidls.isEmpty())
- {
- setLossHoursYear(pewp);
- }else
- {
- ProEconEquipmentInfoDay2 pepid=pepidls.get(0);
- //年合计故障小时(明细)
- pewp.setNgzxsmx(StringUtils.round(pepid.getNgzxsmx()+pewp.getRgzxsmx(),2));
- //年合计场内受累故障小时(明细)
- pewp.setNcnslgzxsmx(StringUtils.round(pepid.getNcnslgzxsmx()+pewp.getRcnslgzxsmx(),2));
- //年合计检修小时(明细)
- pewp.setNjxxsmx(StringUtils.round(pepid.getNjxxsmx()+pewp.getRjxxsmx(),2));
- //年合计场内受累检修小时(明细)
- pewp.setNcnsljxxsmx(StringUtils.round( pepid.getNcnsljxxsmx()+pewp.getRcnsljxxsmx(),2));
- //年合计待机小时(明细)
- pewp.setNdjxsmx(StringUtils.round(pepid.getNdjxsmx()+pewp.getRdjxsmx(),2));
- //年合计缺陷降出力小时(明细)
- pewp.setNqxjclxsmx(StringUtils.round(pepid.getNqxjclxsmx()+pewp.getRqxjclxsmx(),2));
- //年合计手动停机小时(明细)
- pewp.setNsdtjxsmx(StringUtils.round(pepid.getNsdtjxsmx()+pewp.getRsdtjxsmx(),2));
- //年合计性能小时(明细)
- pewp.setNbwxsmx(StringUtils.round(pepid.getNbwxsmx()+pewp.getRbwxsmx(),2));
- //年合计限电停机小时(明细)
- pewp.setNxdtjxsmx(StringUtils.round(pepid.getNxdtjxsmx()+pewp.getRxdtjxsmx(),2));
- //年合计限电降出力小时(明细)
- pewp.setNxdjclxsmx(StringUtils.round(pepid.getNxdjclxsmx()+pewp.getRxdjclxsmx(),2));
- //年合计场外受累电网小时(明细)
- pewp.setNcwsldwxsmx(StringUtils.round(pepid.getNcwsldwxsmx()+pewp.getRcwsldwxsmx(),2));
- //年合计场外受累电网小时(明细)
- pewp.setNcwsltqxsmx(StringUtils.round(pepid.getNcwsltqxsmx()+pewp.getRcwsltqxsmx(),2));
- //年合计通讯中断小时(明细)
- pewp.setNtxzdxsmx(StringUtils.round(pepid.getNtxzdxsmx()+pewp.getRtxzdxsmx(),2));
- //年合计离线小时(明细)
- pewp.setNlxxsmx(StringUtils.round(pepid.getNlxxsmx()+pewp.getRlxxsmx(),2));
- }
- }
- 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, ProBasicEquipment wt, List<ProEconEquipmentInfoDay2> 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<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = CacheContext.wtpAimap;
- Map<String, ProBasicEquipmentPoint> aimap=wtpAimap.get(wt.getId());
- if(aimap.containsKey(ContantXk.SBZT))
- {
- ProBasicEquipmentPoint point=aimap.get(ContantXk.SBZT);
- //按照分钟时间进行统计状态快照值
- List<PointData> 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
- {
- 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));
- }
- //*******************************************月信息统计*********************************************************/
- //*******************************************年信息统计*********************************************************/
- if(pepidls.isEmpty())
- {
- setLossHoursYearSimple(pewp);
- }else
- {
- 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));
- }
- //*******************************************年信息统计*********************************************************/
- }
- }
|