123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720 |
- package com.gyee.generation.service;
- import com.gyee.common.contant.Contant;
- import com.gyee.common.model.PointData;
- import com.gyee.common.model.StringUtils;
- import com.gyee.common.util.DateUtils;
- import com.gyee.generation.init.CacheContext;
- import com.gyee.generation.model.auto.*;
- import com.gyee.generation.util.realtimesource.IEdosUtil;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.*;
- import java.util.concurrent.atomic.AtomicInteger;
- import java.util.stream.Collectors;
- /**
- * @ClassName : StatusService
- * @Author : xieshengjie
- * @Date: 2022/3/28 14:22
- * @Description : 状态计算
- */
- @Service
- public class StatusService {
- private Map<String, List<Windturbinestatusdi>> statusMap;
- private List<Windturbine> wtls;
- private List<Project> projects;
- private Map<String, Map<String, Windturbinetestingpointnew>> wtpAimap;
- private Map<String,Map<String, Windpowerstationpointnew>> linepointmap;
- private Map<String,Map<String, Windpowerstationpointnew>> propointmap;
- private Map<String,Map<String, Windpowerstationpointnew>> wppointmap;
- private Date currentDate;
- private List<Windpowerstation> wpls;
- private List<Line> lines;
- private Map<String, Equipmentmodel> modelMap;
- public static Map<String,List<Project>> wppromap;
- public static Map<String,List<Line>> prolinemap;
- public static Map<String,List<Windturbine>> linewtmap;
- @Resource
- private IEdosUtil edosUtil;
- @Value("${clauStatus.ai}")
- private String clauStatusAi;
- @Value("${clauStatus.di}")
- private String clauStatusDi;
- @Value("${second}")
- private String second;
- @Value("${AI134}")
- private String AI134;
- @Value("${AI178}")
- private String AI178;
- public void init(){
- statusMap = CacheContext.statusMap;
- wtls = CacheContext.wtls;
- wpls = CacheContext.wpls;
- lines = CacheContext.lines;
- projects = CacheContext.projects;
- wtpAimap = CacheContext.wtpAimap;
- linepointmap = CacheContext.linepointmap;
- propointmap = CacheContext.propointmap;
- wppointmap = CacheContext.wppointmap;
- currentDate = DateUtils.getCurrentDate();
- modelMap = CacheContext.modelMap;
- wppromap = CacheContext.wppromap;
- prolinemap = CacheContext.prolinemap;
- linewtmap = CacheContext.linewtmap;
- }
- /**
- * 计算状态
- * @throws Exception
- */
- public void calculateStatus() throws Exception {
- init();
- List<PointData> resultList = new ArrayList<>();
- projects.stream().forEach(project->{
- wtls.stream().filter(i->i.getProjectid().equals(project.getId())).forEach(wt->{
- Map<String, Windturbinetestingpointnew> stringWindturbinetestingpointnewMap = wtpAimap.get(wt.getId());
- Windturbinetestingpointnew ztmxPoint = stringWindturbinetestingpointnewMap.get(Contant.ZTMX);
- Windturbinetestingpointnew fj5tPoint = stringWindturbinetestingpointnewMap.get(Contant.FJ5T);
- Windturbinetestingpointnew ai130 = stringWindturbinetestingpointnewMap.get(Contant.AI130);
- String[] interruption = Contant.INTERRUPTION.split(",");
- List<String> interruptionList = new ArrayList<>();
- Arrays.stream(interruption).forEach(i->{
- Windturbinetestingpointnew windturbinetestingpointnew = stringWindturbinetestingpointnewMap.get(i);
- if (!windturbinetestingpointnew.getCode().equals("INITIAL")){
- interruptionList.add(windturbinetestingpointnew.getCode());
- }
- });
- Double status = 1.0;
- Double mxstatus = 2.0;
- try {
- if (StringUtils.isEmpty(interruptionList)){
- mxstatus = 12.0;
- status = 3.0;
- }
- else {
- List<PointData> interruptionRealData = edosUtil.getRealData(interruptionList);
- List<PointData> collect = interruptionRealData.stream().filter(i -> (currentDate.getTime() - i.getPointTime()) / 1000 > Integer.parseInt(second)).collect(Collectors.toList());
- if (collect.size()!=interruptionRealData.size()){
- Double ztmx = edosUtil.getRealData(ztmxPoint).getPointValueInDouble();
- if (ztmx == 7 || ztmx == 9 || ztmx == 10 || ztmx == 11 || ztmx == 4 || ztmx == 5 ){ //手打状态
- mxstatus = ztmx;
- }
- if (clauStatusAi.contains(wt.getProjectid())){
- //多状态根据一个点来判断
- Optional<Windturbinestatusdi> first = statusMap.get(wt.getId()).stream().filter(w -> w.getUniformcode().equals(Contant.AI422)).findFirst();
- if (first.isPresent()){
- Windturbinestatusdi windturbinestatusdi = first.get();
- if (wt.getModelid().equals("EN141/2.65") || wt.getModelid().equals("EN141/3.2")){
- //远景
- int pointValueInDouble = (int) edosUtil.getRealData(windturbinestatusdi.getId()).getPointValueInDouble();
- switch (pointValueInDouble){
- case 1:
- case 4:
- mxstatus = 1.0;
- break;
- case 2:
- mxstatus = 6.0;
- break;
- case 3:
- mxstatus = 11.0;
- break;
- case 5:
- case 6:
- mxstatus = 2.0;
- break;
- case 7:
- mxstatus = 4.0;
- break;
- case 8:
- mxstatus = 12.0;
- break;
- case 9:
- mxstatus = 0.0;
- break;
- case 10:
- mxstatus = 10.0;
- break;
- case 11:
- case 12:
- mxstatus = 8.0;
- break;
- }
- }else {
- //联合动力
- double pointValueInDouble = edosUtil.getRealData(windturbinestatusdi.getId()).getPointValueInDouble();
- switch ((int) pointValueInDouble){
- case 0:
- mxstatus = 12.0;
- break;
- case 1:
- mxstatus = 6.0;
- break;
- case 2:
- mxstatus = 8.0;
- break;
- case 3:
- mxstatus = 0.0;
- break;
- case 4:
- case 5:
- mxstatus = 2.0;
- break;
- case 6:
- mxstatus = 1.0;
- break;
- default:
- mxstatus = 2.0;
- }
- }
- }
- }
- if (clauStatusDi.contains(wt.getProjectid())){
- //每个状态一个状态点
- List<Windturbinestatusdi> windturbinestatusdis = statusMap.get(wt.getId()).stream().filter(w -> w.getUniformcode().equals(Contant.MX000) || w.getUniformcode().equals(Contant.MX002) || w.getUniformcode().equals(Contant.MX004) || w.getUniformcode().equals(Contant.MX006) || w.getUniformcode().equals(Contant.MX008)).collect(Collectors.toList());
- for(Windturbinestatusdi w : windturbinestatusdis){
- PointData realData = edosUtil.getRealData(w.getId());
- if (realData.getPointValueInDouble()==1){
- mxstatus = Double.parseDouble(w.getTypeid());
- break;
- }
- }
- }
- if (mxstatus == 2){
- boolean isJcl = isJcl(wt, stringWindturbinetestingpointnewMap);
- double power = edosUtil.getRealData(ai130).getPointValueInDouble();
- if (power<=0){
- mxstatus=0.0;
- }else if (isJcl){
- mxstatus = 3.0;
- }
- }
- }else{
- //离线
- mxstatus = 12.0;
- }
- if (mxstatus == 0 || mxstatus == 1){
- status = 0.0;
- }else if(mxstatus == 2 || mxstatus == 3){
- status = 1.0;
- }else if(mxstatus == 4 || mxstatus == 5){
- status = 5.0;
- }else if(mxstatus == 6 || mxstatus == 7){
- status = 2.0;
- }else if(mxstatus == 8 || mxstatus == 9){
- status = 4.0;
- }else if(mxstatus == 10 || mxstatus == 11){
- status = 6.0;
- }else if(mxstatus == 12){
- status = 3.0;
- }
- }
- PointData ztmx = createPointData(ztmxPoint, mxstatus);
- PointData fj5t = createPointData(fj5tPoint, status);
- resultList.add(ztmx);
- resultList.add(fj5t);
- } catch (Exception e) {
- e.printStackTrace();
- }
- });
- });
- edosUtil.sendMultiPoint(resultList);
- }
- /**
- * 计算状态台数
- */
- public void calculateStatusNumber() throws Exception {
- init();
- List<PointData> resultList = new ArrayList<>();
- wpls.stream().forEach(wp->{
- List<Project> projects = wppromap.get(wp.getId());
- Map<String, Windpowerstationpointnew> wpmap = wppointmap.get(wp.getId());
- AtomicInteger wpdjnum = new AtomicInteger();
- AtomicInteger wptjnum = new AtomicInteger();
- AtomicInteger wpfdnum = new AtomicInteger();
- AtomicInteger wpfdjclnum = new AtomicInteger();
- AtomicInteger wpxdjclnum = new AtomicInteger();
- AtomicInteger wpxdtjnum = new AtomicInteger();
- AtomicInteger wpgznum = new AtomicInteger();
- AtomicInteger wpcngznum = new AtomicInteger();
- AtomicInteger wpjxnum = new AtomicInteger();
- AtomicInteger wpcnjxnum = new AtomicInteger();
- AtomicInteger wpdwslnum = new AtomicInteger();
- AtomicInteger wphjslnum = new AtomicInteger();
- AtomicInteger wplxnum = new AtomicInteger();
- //六种
- AtomicInteger wpdjts = new AtomicInteger();
- AtomicInteger wpgzts = new AtomicInteger();
- AtomicInteger wptxzd = new AtomicInteger();
- AtomicInteger wpwhtj = new AtomicInteger();
- AtomicInteger wpxdts = new AtomicInteger();
- AtomicInteger wpyxts = new AtomicInteger();
- AtomicInteger wpslts = new AtomicInteger();
- projects.stream().forEach(project->{
- List<Line> lineList = prolinemap.get(project.getId());
- Map<String, Windpowerstationpointnew> projectmap = propointmap.get(project.getId());
- AtomicInteger prodjnum = new AtomicInteger();
- AtomicInteger protjnum = new AtomicInteger();
- AtomicInteger profdnum = new AtomicInteger();
- AtomicInteger profdjclnum = new AtomicInteger();
- AtomicInteger proxdjclnum = new AtomicInteger();
- AtomicInteger proxdtjnum = new AtomicInteger();
- AtomicInteger progznum = new AtomicInteger();
- AtomicInteger procngznum = new AtomicInteger();
- AtomicInteger projxnum = new AtomicInteger();
- AtomicInteger procnjxnum = new AtomicInteger();
- AtomicInteger prodwslnum = new AtomicInteger();
- AtomicInteger prohjslnum = new AtomicInteger();
- AtomicInteger prolxnum = new AtomicInteger();
- //六种
- AtomicInteger prodjts = new AtomicInteger();
- AtomicInteger progzts = new AtomicInteger();
- AtomicInteger protxzd = new AtomicInteger();
- AtomicInteger prowhtj = new AtomicInteger();
- AtomicInteger proxdts = new AtomicInteger();
- AtomicInteger proyxts = new AtomicInteger();
- AtomicInteger proslts = new AtomicInteger();
- lineList.stream().forEach(line->{
- List<Windturbine> windturbines = linewtmap.get(line.getId());
- Map<String, Windpowerstationpointnew> linemap = linepointmap.get(line.getId());
- AtomicInteger djnum = new AtomicInteger();
- AtomicInteger tjnum = new AtomicInteger();
- AtomicInteger fdnum = new AtomicInteger();
- AtomicInteger fdjclnum = new AtomicInteger();
- AtomicInteger xdjclnum = new AtomicInteger();
- AtomicInteger xdtjnum = new AtomicInteger();
- AtomicInteger gznum = new AtomicInteger();
- AtomicInteger cngznum = new AtomicInteger();
- AtomicInteger jxnum = new AtomicInteger();
- AtomicInteger cnjxnum = new AtomicInteger();
- AtomicInteger dwslnum = new AtomicInteger();
- AtomicInteger hjslnum = new AtomicInteger();
- AtomicInteger lxnum = new AtomicInteger();
- //六种
- AtomicInteger djts = new AtomicInteger();
- AtomicInteger gzts = new AtomicInteger();
- AtomicInteger txzd = new AtomicInteger();
- AtomicInteger whtj = new AtomicInteger();
- AtomicInteger xdts = new AtomicInteger();
- AtomicInteger yxts = new AtomicInteger();
- AtomicInteger slts = new AtomicInteger();
- windturbines.stream().forEach(wt->{
- Windturbinetestingpointnew windturbinetestingpointnew = wtpAimap.get(wt.getId()).get(Contant.ZTMX);
- try {
- double valueInDouble = edosUtil.getRealData(windturbinetestingpointnew).getPointValueInDouble();
- switch ((int) valueInDouble){
- case 0:
- djnum.getAndIncrement();
- break;
- case 1:
- tjnum.getAndIncrement();
- break;
- case 2:
- fdnum.getAndIncrement();
- break;
- case 3:
- fdjclnum.getAndIncrement();
- break;
- case 4:
- xdjclnum.getAndIncrement();
- break;
- case 5:
- xdtjnum.getAndIncrement();
- break;
- case 6:
- gznum.getAndIncrement();
- break;
- case 7:
- cngznum.getAndIncrement();
- break;
- case 8:
- jxnum.getAndIncrement();
- break;
- case 9:
- cnjxnum.getAndIncrement();
- break;
- case 10:
- dwslnum.getAndIncrement();
- break;
- case 11:
- hjslnum.getAndIncrement();
- break;
- case 12:
- lxnum.getAndIncrement();
- break;
- default:
- fdnum.getAndIncrement();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- });
- //待机台数0
- Windpowerstationpointnew djnumPointNew = linemap.get(Contant.DJNUM);
- PointData djnumPoint = createWpPoint(djnum, djnumPointNew);
- prodjnum.addAndGet(djnum.intValue());
- resultList.add(djnumPoint);
- //停机台数1
- Windpowerstationpointnew tjnumPointNew = linemap.get(Contant.TJNUM);
- PointData tjnumPoint = createWpPoint(tjnum, tjnumPointNew);
- protjnum.addAndGet(tjnum.intValue());
- resultList.add(tjnumPoint);
- //待机台数6-0
- djts.addAndGet(djnum.intValue()+tjnum.intValue());
- Windpowerstationpointnew djtsPointNew = linemap.get(Contant.DJTS);
- PointData djtsPoint = createWpPoint(djts, djtsPointNew);
- resultList.add(djtsPoint);
- //运行台数2
- Windpowerstationpointnew fdnumPointNew = linemap.get(Contant.FDNUM);
- PointData fdnumPoint = createWpPoint(fdnum, fdnumPointNew);
- profdnum.addAndGet(fdnum.intValue());
- resultList.add(fdnumPoint);
- //降出力台数3
- Windpowerstationpointnew fdjclnumPointNew = linemap.get(Contant.FDJCLNUM);
- PointData fdjclnumPoint = createWpPoint(fdjclnum, fdjclnumPointNew);
- profdjclnum.addAndGet(fdjclnum.intValue());
- resultList.add(fdjclnumPoint);
- //运行台数6-1
- yxts.addAndGet(fdnum.intValue()+fdjclnum.intValue());
- Windpowerstationpointnew yxtsPointNew = linemap.get(Contant.YXTS);
- PointData yxtsPoint = createWpPoint(yxts, yxtsPointNew);
- resultList.add(yxtsPoint);
- //限电降出力台数4
- Windpowerstationpointnew xdjclnumPointNew = linemap.get(Contant.XDJCLNUM);
- PointData xdjclnumPoint = createWpPoint(xdjclnum, xdjclnumPointNew);
- proxdjclnum.addAndGet(xdjclnum.intValue());
- resultList.add(xdjclnumPoint);
- //限电停机台数5
- Windpowerstationpointnew xdtjnumPointNew = linemap.get(Contant.XDTJNUM);
- PointData xdtjnumPoint = createWpPoint(xdtjnum, xdtjnumPointNew);
- proxdtjnum.addAndGet(xdtjnum.intValue());
- resultList.add(xdtjnumPoint);
- //限电台数6-5
- xdts.addAndGet(xdjclnum.intValue()+xdtjnum.intValue());
- Windpowerstationpointnew xdtsPointNew = linemap.get(Contant.XDTS);
- PointData xdtsPoint = createWpPoint(xdts, xdtsPointNew);
- resultList.add(xdtsPoint);
- //故障台数6
- Windpowerstationpointnew gznumPointNew = linemap.get(Contant.GZNUM);
- PointData gznumPoint = createWpPoint(gznum, gznumPointNew);
- progznum.addAndGet(gznum.intValue());
- resultList.add(gznumPoint);
- //故障受累台数7
- Windpowerstationpointnew cngznumPointNew = linemap.get(Contant.CNGZNUM);
- PointData cngznumPoint = createWpPoint(cngznum, cngznumPointNew);
- procngznum.addAndGet(cngznum.intValue());
- resultList.add(cngznumPoint);
- //检修台数8
- Windpowerstationpointnew jxnumPointNew = linemap.get(Contant.JXNUM);
- PointData jxnumPoint = createWpPoint(jxnum, jxnumPointNew);
- projxnum.addAndGet(jxnum.intValue());
- resultList.add(jxnumPoint);
- //检修受累台数9
- Windpowerstationpointnew cnjxnumPointNew = linemap.get(Contant.CNJXNUM);
- PointData cnjxnumPoint = createWpPoint(cnjxnum, cnjxnumPointNew);
- procnjxnum.addAndGet(cnjxnum.intValue());
- resultList.add(cnjxnumPoint);
- //检修台数6-4
- whtj.addAndGet(jxnum.intValue()+cnjxnum.intValue());
- Windpowerstationpointnew whtjPointNew = linemap.get(Contant.WHTJ);
- PointData whtjPoint = createWpPoint(whtj, whtjPointNew);
- resultList.add(whtjPoint);
- //电网受累台数10
- Windpowerstationpointnew dwslnumPointNew = linemap.get(Contant.DWSLNUM);
- PointData dwslnumPoint = createWpPoint(dwslnum, dwslnumPointNew);
- prodwslnum.addAndGet(dwslnum.intValue());
- resultList.add(dwslnumPoint);
- //环境受累台数11
- Windpowerstationpointnew hjslnumPointNew = linemap.get(Contant.HJSLNUM);
- PointData hjslnumPoint = createWpPoint(hjslnum, hjslnumPointNew);
- prohjslnum.addAndGet(hjslnum.intValue());
- resultList.add(hjslnumPoint);
- //故障台数6-2
- gzts.addAndGet(gznum.intValue()+cngznum.intValue());
- Windpowerstationpointnew gztsPointNew = linemap.get(Contant.GZTJ);
- PointData gztjPoint = createWpPoint(gzts, gztsPointNew);
- resultList.add(gztjPoint);
- //受累台数6-6
- slts.addAndGet(dwslnum.intValue()+hjslnum.intValue());
- Windpowerstationpointnew sltsPointNew = linemap.get(Contant.SLTS);
- PointData sltjPoint = createWpPoint(slts, sltsPointNew);
- resultList.add(sltjPoint);
- //离线台数12
- Windpowerstationpointnew lxnumPointNew = linemap.get(Contant.LXNUM);
- Windpowerstationpointnew txzdPointNew = linemap.get(Contant.TXZD);
- PointData lxnumPoint = createWpPoint(lxnum, lxnumPointNew);
- PointData txzdPoint = createWpPoint(lxnum, txzdPointNew);
- prolxnum.addAndGet(lxnum.intValue());
- resultList.add(lxnumPoint);
- resultList.add(txzdPoint);
- });
- //待机台数0
- Windpowerstationpointnew djnumPointNew = projectmap.get(Contant.DJNUM);
- PointData djnumPoint = createWpPoint(prodjnum, djnumPointNew);
- wpdjnum.addAndGet(prodjnum.intValue());
- resultList.add(djnumPoint);
- //停机台数1
- Windpowerstationpointnew tjnumPointNew = projectmap.get(Contant.TJNUM);
- PointData tjnumPoint = createWpPoint(protjnum, tjnumPointNew);
- wptjnum.addAndGet(protjnum.intValue());
- resultList.add(tjnumPoint);
- //待机台数6-0
- Windpowerstationpointnew djtsPointNew = projectmap.get(Contant.DJTS);
- prodjts.addAndGet(prodjnum.intValue()+protjnum.intValue());
- PointData djtsPoint = createWpPoint(prodjts, djtsPointNew);
- resultList.add(djtsPoint);
- //运行台数2
- Windpowerstationpointnew fdnumPointNew = projectmap.get(Contant.FDNUM);
- PointData fdnumPoint = createWpPoint(profdnum, fdnumPointNew);
- wpfdnum.addAndGet(profdnum.intValue());
- resultList.add(fdnumPoint);
- //降出力台数3
- Windpowerstationpointnew fdjclnumPointNew = projectmap.get(Contant.FDJCLNUM);
- PointData fdjclnumPoint = createWpPoint(profdjclnum, fdjclnumPointNew);
- wpfdjclnum.addAndGet(profdjclnum.intValue());
- resultList.add(fdjclnumPoint);
- //运行台数6-1
- Windpowerstationpointnew yxtsPointNew = projectmap.get(Contant.YXTS);
- proyxts.addAndGet(profdnum.intValue()+profdjclnum.intValue());
- PointData yxtsPoint = createWpPoint(proyxts, yxtsPointNew);
- resultList.add(yxtsPoint);
- //限电降出力台数4
- Windpowerstationpointnew xdjclnumPointNew = projectmap.get(Contant.XDJCLNUM);
- PointData xdjclnumPoint = createWpPoint(proxdjclnum, xdjclnumPointNew);
- wpxdjclnum.addAndGet(proxdjclnum.intValue());
- resultList.add(xdjclnumPoint);
- //限电停机台数5
- Windpowerstationpointnew xdtjnumPointNew = projectmap.get(Contant.XDTJNUM);
- PointData xdtjnumPoint = createWpPoint(proxdtjnum, xdtjnumPointNew);
- wpxdtjnum.addAndGet(proxdtjnum.intValue());
- resultList.add(xdtjnumPoint);
- //限电台数6-5
- Windpowerstationpointnew xdtsPointNew = projectmap.get(Contant.XDTS);
- proxdts.addAndGet(proxdjclnum.intValue()+proxdtjnum.intValue());
- PointData xdtsPoint = createWpPoint(proxdts, xdtsPointNew);
- resultList.add(xdtsPoint);
- //故障台数6
- Windpowerstationpointnew gznumPointNew = projectmap.get(Contant.GZNUM);
- PointData gznumPoint = createWpPoint(progznum, gznumPointNew);
- wpgznum.addAndGet(progznum.intValue());
- resultList.add(gznumPoint);
- //故障受累台数7
- Windpowerstationpointnew cngznumPointNew = projectmap.get(Contant.CNGZNUM);
- PointData cngznumPoint = createWpPoint(procngznum, cngznumPointNew);
- wpcngznum.addAndGet(procngznum.intValue());
- resultList.add(cngznumPoint);
- //检修台数8
- Windpowerstationpointnew jxnumPointNew = projectmap.get(Contant.JXNUM);
- PointData jxnumPoint = createWpPoint(projxnum, jxnumPointNew);
- wpjxnum.addAndGet(projxnum.intValue());
- resultList.add(jxnumPoint);
- //检修受累台数9
- Windpowerstationpointnew cnjxnumPointNew = projectmap.get(Contant.CNJXNUM);
- PointData cnjxnumPoint = createWpPoint(procnjxnum, cnjxnumPointNew);
- wpcnjxnum.addAndGet(procnjxnum.intValue());
- resultList.add(cnjxnumPoint);
- //检修台数6-4
- Windpowerstationpointnew jxtsPointNew = projectmap.get(Contant.WHTJ);
- prowhtj.addAndGet(projxnum.intValue()+procnjxnum.intValue());
- PointData jxtsPoint = createWpPoint(prowhtj, jxtsPointNew);
- resultList.add(jxtsPoint);
- //电网受累台数10
- Windpowerstationpointnew dwslnumPointNew = projectmap.get(Contant.DWSLNUM);
- PointData dwslnumPoint = createWpPoint(prodwslnum, dwslnumPointNew);
- wpdwslnum.addAndGet(prodwslnum.intValue());
- resultList.add(dwslnumPoint);
- //环境受累台数11
- Windpowerstationpointnew hjslnumPointNew = projectmap.get(Contant.HJSLNUM);
- PointData hjslnumPoint = createWpPoint(prohjslnum, hjslnumPointNew);
- wphjslnum.addAndGet(prohjslnum.intValue());
- resultList.add(hjslnumPoint);
- //故障台数6-2
- Windpowerstationpointnew gztsPointNew = projectmap.get(Contant.GZTJ);
- progzts.addAndGet(progznum.intValue()+procngznum.intValue());
- PointData gztsPoint = createWpPoint(progzts, gztsPointNew);
- resultList.add(gztsPoint);
- //受累台数6-6
- Windpowerstationpointnew sltsPointNew = projectmap.get(Contant.SLTS);
- proslts.addAndGet(prodwslnum.intValue()+prohjslnum.intValue());
- PointData sltsPoint = createWpPoint(proslts, sltsPointNew);
- resultList.add(sltsPoint);
- //离线台数12
- Windpowerstationpointnew lxnumPointNew = projectmap.get(Contant.LXNUM);
- Windpowerstationpointnew txzdPointNew = projectmap.get(Contant.TXZD);
- PointData lxnumPoint = createWpPoint(prolxnum, lxnumPointNew);
- PointData txzdPoint = createWpPoint(prolxnum, txzdPointNew);
- wplxnum.addAndGet(prolxnum.intValue());
- resultList.add(lxnumPoint);
- resultList.add(txzdPoint);
- });
- //待机台数0
- Windpowerstationpointnew djnumPointNew = wpmap.get(Contant.DJNUM);
- PointData djnumPoint = createWpPoint(wpdjnum, djnumPointNew);
- resultList.add(djnumPoint);
- //停机台数1
- Windpowerstationpointnew tjnumPointNew = wpmap.get(Contant.TJNUM);
- PointData tjnumPoint = createWpPoint(wptjnum, tjnumPointNew);
- resultList.add(tjnumPoint);
- //待机台数6-0
- Windpowerstationpointnew djtsPointNew = wpmap.get(Contant.DJTS);
- wpdjts.addAndGet(wpdjnum.intValue()+wptjnum.intValue());
- PointData djtsPoint = createWpPoint(wpdjts, djtsPointNew);
- resultList.add(djtsPoint);
- //运行台数2
- Windpowerstationpointnew fdnumPointNew = wpmap.get(Contant.FDNUM);
- PointData fdnumPoint = createWpPoint(wpfdnum, fdnumPointNew);
- resultList.add(fdnumPoint);
- //降出力台数3
- Windpowerstationpointnew fdjclnumPointNew = wpmap.get(Contant.FDJCLNUM);
- PointData fdjclnumPoint = createWpPoint(wpfdjclnum, fdjclnumPointNew);
- resultList.add(fdjclnumPoint);
- //运行台数6-1
- Windpowerstationpointnew yxtsPointNew = wpmap.get(Contant.YXTS);
- wpyxts.addAndGet(wpfdnum.intValue()+wpfdjclnum.intValue());
- PointData yxtsPoint = createWpPoint(wpyxts, yxtsPointNew);
- resultList.add(yxtsPoint);
- //限电降出力台数4
- Windpowerstationpointnew xdjclnumPointNew = wpmap.get(Contant.XDJCLNUM);
- PointData xdjclnumPoint = createWpPoint(wpxdjclnum, xdjclnumPointNew);
- resultList.add(xdjclnumPoint);
- //限电停机台数5
- Windpowerstationpointnew xdtjnumPointNew = wpmap.get(Contant.XDTJNUM);
- PointData xdtjnumPoint = createWpPoint(wpxdtjnum, xdtjnumPointNew);
- resultList.add(xdtjnumPoint);
- //限电台数6-5
- Windpowerstationpointnew xdtsPointNew = wpmap.get(Contant.XDTS);
- wpxdts.addAndGet(wpxdjclnum.intValue()+wpxdtjnum.intValue());
- PointData xdtsPoint = createWpPoint(wpxdts, xdtsPointNew);
- resultList.add(xdtsPoint);
- //故障台数6
- Windpowerstationpointnew gznumPointNew = wpmap.get(Contant.GZNUM);
- PointData gznumPoint = createWpPoint(wpgznum, gznumPointNew);
- resultList.add(gznumPoint);
- //故障受累台数7
- Windpowerstationpointnew cngznumPointNew = wpmap.get(Contant.CNGZNUM);
- PointData cngznumPoint = createWpPoint(wpcngznum, cngznumPointNew);
- resultList.add(cngznumPoint);
- //检修台数8
- Windpowerstationpointnew jxnumPointNew = wpmap.get(Contant.JXNUM);
- PointData jxnumPoint = createWpPoint(wpjxnum, jxnumPointNew);
- resultList.add(jxnumPoint);
- //检修受累台数9
- Windpowerstationpointnew cnjxnumPointNew = wpmap.get(Contant.CNJXNUM);
- PointData cnjxnumPoint = createWpPoint(wpcnjxnum, cnjxnumPointNew);
- resultList.add(cnjxnumPoint);
- //检修台数6-4
- Windpowerstationpointnew jxtsPointNew = wpmap.get(Contant.WHTJ);
- wpwhtj.addAndGet(wpjxnum.intValue()+wpcnjxnum.intValue());
- PointData jxtsPoint = createWpPoint(wpwhtj, jxtsPointNew);
- resultList.add(jxtsPoint);
- //电网受累台数10
- Windpowerstationpointnew dwslnumPointNew = wpmap.get(Contant.DWSLNUM);
- PointData dwslnumPoint = createWpPoint(wpdwslnum, dwslnumPointNew);
- resultList.add(dwslnumPoint);
- //环境受累台数11
- Windpowerstationpointnew hjslnumPointNew = wpmap.get(Contant.HJSLNUM);
- PointData hjslnumPoint = createWpPoint(wphjslnum, hjslnumPointNew);
- resultList.add(hjslnumPoint);
- //故障台数6-2
- Windpowerstationpointnew gztsPointNew = wpmap.get(Contant.GZTJ);
- wpgzts.addAndGet(wpgznum.intValue()+wpcngznum.intValue());
- PointData gztsPoint = createWpPoint(wpgzts, gztsPointNew);
- resultList.add(gztsPoint);
- //受累台数6-6
- Windpowerstationpointnew sltsPointNew = wpmap.get(Contant.SLTS);
- wpslts.addAndGet(wpdwslnum.intValue()+wphjslnum.intValue());
- PointData sltsPoint = createWpPoint(wpslts, sltsPointNew);
- resultList.add(sltsPoint);
- //离线台数12
- Windpowerstationpointnew lxnumPointNew = wpmap.get(Contant.LXNUM);
- Windpowerstationpointnew txzdPointNew = wpmap.get(Contant.TXZD);
- PointData lxnumPoint = createWpPoint(wplxnum, lxnumPointNew);
- PointData txzdPoint = createWpPoint(wplxnum, txzdPointNew);
- resultList.add(lxnumPoint);
- resultList.add(txzdPoint);
- });
- edosUtil.sendMultiPoint(resultList);
- }
- private PointData createWpPoint(AtomicInteger tjnum, Windpowerstationpointnew tjnumPoint) {
- PointData pointData = new PointData();
- pointData.setEdnaId(tjnumPoint.getCode());
- pointData.setPointName(tjnumPoint.getName());
- pointData.setPointTime(currentDate.getTime());
- pointData.setPointValue(String.valueOf(tjnum.doubleValue()));
- pointData.setPointValueInDouble(tjnum.doubleValue());
- return pointData;
- }
- /**
- * 判断是否降出力
- * @param wt
- * @param stringWindturbinetestingpointnewMap
- * @return
- * @throws Exception
- */
- private boolean isJcl(Windturbine wt, Map<String, Windturbinetestingpointnew> stringWindturbinetestingpointnewMap) throws Exception {
- boolean isJcl = false;
- Windturbinetestingpointnew ai134point = stringWindturbinetestingpointnewMap.get(Contant.AI134);
- Windturbinetestingpointnew ai178point = stringWindturbinetestingpointnewMap.get(Contant.AI178);
- Windturbinetestingpointnew ai443point = stringWindturbinetestingpointnewMap.get(Contant.AI443);
- if (!ai134point.getCode().equals("INITIAL")){
- Double realData = edosUtil.getRealData(ai134point).getPointValueInDouble();
- if (realData<Double.parseDouble(AI134)){
- isJcl = true;
- }
- }
- if (!ai178point.getCode().equals("INITIAL")){
- Double realData = edosUtil.getRealData(ai178point).getPointValueInDouble();
- if (realData<Double.parseDouble(AI178)){
- isJcl = true;
- }
- }
- if (!ai443point.getCode().equals("INITIAL")){
- Double realData = edosUtil.getRealData(ai443point).getPointValueInDouble();
- if (realData<modelMap.get(wt.getModelid()).getPowerproduction()){
- isJcl = true;
- }
- }
- return isJcl;
- }
- private PointData createPointData(Windturbinetestingpointnew ztmxPoint, Double mxstatus) {
- PointData pointData = new PointData();
- pointData.setEdnaId(ztmxPoint.getCode());
- pointData.setPointName(ztmxPoint.getName());
- pointData.setPointTime(currentDate.getTime());
- pointData.setPointValue(String.valueOf(mxstatus));
- pointData.setPointValueInDouble(mxstatus);
- return pointData;
- }
- }
|