BigScreenService.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. package com.gyee.gradeevaluation.service.bigscreen;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.gyee.gradeevaluation.common.StringUtils;
  4. import com.gyee.gradeevaluation.init.CacheContext;
  5. import com.gyee.gradeevaluation.model.auto.Projectplan;
  6. import com.gyee.gradeevaluation.model.auto.Windpowerstation;
  7. import com.gyee.gradeevaluation.service.auto.IProjectService;
  8. import com.gyee.gradeevaluation.service.auto.IProjectplanService;
  9. import com.gyee.gradeevaluation.util.DateUtils;
  10. import com.gyee.gradeevaluation.util.golden.EdosUtil;
  11. import com.gyee.gradeevaluation.util.golden.IEdosUtil;
  12. import com.gyee.gradeevaluation.variable.MainConstant;
  13. import org.springframework.stereotype.Service;
  14. import javax.annotation.Resource;
  15. import java.math.BigDecimal;
  16. import java.math.RoundingMode;
  17. import java.text.NumberFormat;
  18. import java.util.Date;
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * @ClassName : BigScreenService
  24. * @Author : xieshengjie
  25. * @Date: 2021/9/15 20:09
  26. * @Description : 大屏service
  27. */
  28. @Service
  29. public class BigScreenService {
  30. private IEdosUtil ednaApiUtil = new EdosUtil();
  31. @Resource
  32. private IProjectplanService projectplanService;
  33. /**
  34. * 获取横屏数据
  35. * @return
  36. */
  37. public Map<String, Object> list() throws Exception {
  38. Map<String,Object> map = new HashMap<>();
  39. Double zjrl = 0.0;
  40. Double fdzjrl = 0.0;
  41. Double gfzjrl = 0.0;
  42. List<Windpowerstation> wplist = CacheContext.wplist;
  43. for (Windpowerstation wp : wplist) {
  44. zjrl += wp.getCapacity().doubleValue();
  45. if (wp.getId().endsWith("FDC")){
  46. fdzjrl += wp.getCapacity().doubleValue();
  47. }else {
  48. gfzjrl += wp.getCapacity().doubleValue();
  49. }
  50. }
  51. NumberFormat format = NumberFormat.getNumberInstance();
  52. format.setMaximumFractionDigits(0);
  53. map.put("zjrl", Integer.valueOf(format.format(zjrl)));
  54. map.put("fdzjrl",Integer.valueOf(format.format(fdzjrl)));
  55. map.put("gfzjrl",Integer.valueOf(format.format(gfzjrl)));
  56. double rfdl = ednaApiUtil.getRealData(MainConstant.JSFW_SSRFDLB).getPointValueInDouble();// 日累计电量
  57. map.put("rfdl",rfdl);
  58. double swdl = ednaApiUtil.getRealData(MainConstant.JSFW_SSSWDLB).getPointValueInDouble();// 上网电量
  59. map.put("swdl",swdl);
  60. double nfdl = ednaApiUtil.getRealData(MainConstant.JSFW_SSNFDLB).getPointValueInDouble();// 年发电量
  61. map.put("nfdl",nfdl);
  62. double yfdl = ednaApiUtil.getRealData(MainConstant.JSFW_SSYFDLB).getPointValueInDouble();// 月累计电量
  63. map.put("yfdl",yfdl);
  64. int aqts = (int) ednaApiUtil.getRealData(MainConstant.CALC_TIANSHU).getPointValueInDouble();// 安全天数
  65. map.put("aqts",aqts);
  66. double temp = new BigDecimal(zjrl).divide(new BigDecimal(10), 2, RoundingMode.HALF_EVEN).doubleValue();
  67. double nlyxs = new BigDecimal(nfdl).divide(new BigDecimal(temp), 2, RoundingMode.HALF_EVEN).doubleValue();
  68. map.put("nlyxs",nlyxs);
  69. double ylyxs = new BigDecimal(yfdl).divide(new BigDecimal(temp), 2, RoundingMode.HALF_EVEN).doubleValue();
  70. map.put("ylyxs",ylyxs);
  71. QueryWrapper<Projectplan> planqw = new QueryWrapper<>();
  72. int year = DateUtils.getYear(new Date());
  73. planqw.eq("year",year);
  74. planqw.isNotNull("month");
  75. List<Projectplan> projectplanList = projectplanService.list(planqw);
  76. double njhdl = projectplanList.stream().mapToDouble(Projectplan::getGeneratingcapacity).sum();
  77. double yjhdl = projectplanList.stream().filter(i->Integer.parseInt(i.getMonth())==DateUtils.getMonth(new Date()))
  78. .mapToDouble(Projectplan::getGeneratingcapacity).sum();
  79. double zhcydl = 0.14;
  80. double sbklyl = 98.96;
  81. map.put("njhdl",njhdl);
  82. map.put("yjhdl",yjhdl);
  83. map.put("zhcydl",zhcydl);
  84. map.put("sbklyl",sbklyl);
  85. double zgl = ednaApiUtil.getRealData(MainConstant.JSFW_SSSSZGL).getPointValueInDouble();// 总功率
  86. double nwcl = njhdl!=0?StringUtils.round(nfdl/njhdl*100,2):0;
  87. double ywcl = yjhdl!=0?StringUtils.round(yfdl/yjhdl*100,2):0;
  88. double ymtbf = 56.33;
  89. double ykkx = 87;
  90. map.put("zgl",zgl);
  91. map.put("nwcl",nwcl);
  92. map.put("ywcl",ywcl);
  93. map.put("ymtbf",ymtbf);
  94. map.put("ykkx",ykkx);
  95. double fdssfs = ednaApiUtil.getRealData(MainConstant.JSFW_FJSSFS).getPointValueInDouble();// 风速合计
  96. temp = new BigDecimal(fdzjrl).divide(new BigDecimal(10), 2, RoundingMode.HALF_EVEN).doubleValue();
  97. double fdyfdl = ednaApiUtil.getRealData(MainConstant.JSFW_FJYFDLB).getPointValueInDouble();// 风场月累计电量
  98. double fdnfdl = ednaApiUtil.getRealData(MainConstant.JSFW_FJNFDLB).getPointValueInDouble();// 风场年累计电量
  99. double fdylyxs = new BigDecimal(fdyfdl).divide(new BigDecimal(temp), 2, RoundingMode.HALF_EVEN).doubleValue();
  100. double fdnlyxs = new BigDecimal(fdnfdl).divide(new BigDecimal(temp), 2, RoundingMode.HALF_EVEN).doubleValue();
  101. map.put("fdssfs",fdssfs);
  102. map.put("fdyfdl",fdyfdl);
  103. map.put("fdnfdl",fdnfdl);
  104. map.put("fdylyxs",fdylyxs);
  105. map.put("fdnlyxs",fdnlyxs);
  106. temp = new BigDecimal(gfzjrl).divide(new BigDecimal(10), 2, RoundingMode.HALF_EVEN).doubleValue();
  107. double gfyfdl = ednaApiUtil.getRealData(MainConstant.JSFW_GFYFDLB).getPointValueInDouble();// 光伏月累计电量
  108. double gfnfdl = ednaApiUtil.getRealData(MainConstant.JSFW_GFNFDLB).getPointValueInDouble();// 光伏年累计电量
  109. double gfylyxs = new BigDecimal(gfyfdl).divide(new BigDecimal(temp), 2, RoundingMode.HALF_EVEN).doubleValue();
  110. double gfnlyxs = new BigDecimal(gfnfdl).divide(new BigDecimal(temp), 2, RoundingMode.HALF_EVEN).doubleValue();
  111. map.put("gfyfdl",gfyfdl);
  112. map.put("gfnfdl",gfnfdl);
  113. map.put("gfylyxs",gfylyxs);
  114. map.put("gfnlyxs",gfnlyxs);
  115. double fdrfdl = ednaApiUtil.getRealData(MainConstant.JSFW_FJRFDLB).getPointValueInDouble();// 风场日发电量合计
  116. double fdssgl = ednaApiUtil.getRealData(MainConstant.JSFW_FJSSZGL).getPointValueInDouble();// 总功率合计
  117. double fdswdl = ednaApiUtil.getRealData(MainConstant.JSFW_FJSWDLB).getPointValueInDouble();// 上网电量合计
  118. double mhsfdl = ednaApiUtil.getRealData(MainConstant.JSFW_MHRFDLB).getPointValueInDouble();// 麻黄山日发电量
  119. double nssfdl = ednaApiUtil.getRealData(MainConstant.JSFW_NSRFDLB).getPointValueInDouble();// 牛首山日发电量
  120. double qsfdl = ednaApiUtil.getRealData(MainConstant.JSFW_QSRFDLB).getPointValueInDouble();// 青山日发电量
  121. double sbqfdl = ednaApiUtil.getRealData(MainConstant.JSFW_SBRFDLB).getPointValueInDouble();// 石板泉日发电量
  122. double xsfdl = ednaApiUtil.getRealData(MainConstant.JSFW_XSRFDLB).getPointValueInDouble();// 香山日发电量
  123. double dwkfdl = ednaApiUtil.getRealData(MainConstant.JSFW_DWRFDLB).getPointValueInDouble();// 大武口日发电量
  124. double plfdl = ednaApiUtil.getRealData(MainConstant.JSFW_PLRFDLB).getPointValueInDouble();// 平罗日发电量
  125. double xhfdl = ednaApiUtil.getRealData(MainConstant.JSFW_XHRFDLB).getPointValueInDouble();// 宣和日发电量
  126. double mchfdl = ednaApiUtil.getRealData(MainConstant.JSFW_MCRFDLB).getPointValueInDouble();// 马场湖日发电量
  127. map.put("fdrfdl",fdrfdl);
  128. map.put("fdssgl",fdssgl);
  129. map.put("fdswdl",fdswdl);
  130. map.put("mhsfdl",mhsfdl);
  131. map.put("nssfdl",nssfdl);
  132. map.put("qsfdl",qsfdl);
  133. map.put("sbqfdl",sbqfdl);
  134. map.put("xsfdl",xsfdl);
  135. map.put("dwkfdl",dwkfdl);
  136. map.put("plfdl",plfdl);
  137. map.put("xhfdl",xhfdl);
  138. map.put("mchfdl",mchfdl);
  139. double temp11 = ednaApiUtil.getRealData(MainConstant.JSFW_MHSDJSS).getPointValueInDouble();
  140. double temp12 = ednaApiUtil.getRealData(MainConstant.JSFW_MHSSDTJ).getPointValueInDouble();
  141. double temp13 = ednaApiUtil.getRealData(MainConstant.JSFW_MHSXNSS).getPointValueInDouble();
  142. double temp14 = ednaApiUtil.getRealData(MainConstant.JSFW_MHSQXJC).getPointValueInDouble();
  143. double mhsqf = new BigDecimal(temp11+temp12+temp13+temp14).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
  144. map.put("mhsqf",mhsqf);
  145. temp11 = ednaApiUtil.getRealData(MainConstant.JSFW_NSSDJSS).getPointValueInDouble();
  146. temp12 = ednaApiUtil.getRealData(MainConstant.JSFW_NSSSDTJ).getPointValueInDouble();
  147. temp13 = ednaApiUtil.getRealData(MainConstant.JSFW_NSSXNSS).getPointValueInDouble();
  148. temp14 = ednaApiUtil.getRealData(MainConstant.JSFW_NSSQXJC).getPointValueInDouble();
  149. double nssqf = new BigDecimal(temp11+temp12+temp13+temp14).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
  150. map.put("nssqf",nssqf);
  151. temp11 = ednaApiUtil.getRealData(MainConstant.JSFW_QSDJSS).getPointValueInDouble();
  152. temp12 = ednaApiUtil.getRealData(MainConstant.JSFW_QSSDTJ).getPointValueInDouble();
  153. temp13 = ednaApiUtil.getRealData(MainConstant.JSFW_QSXNSS).getPointValueInDouble();
  154. temp14 = ednaApiUtil.getRealData(MainConstant.JSFW_QSQXJC).getPointValueInDouble();
  155. double qsqf = new BigDecimal(temp11+temp12+temp13+temp14).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
  156. map.put("qsqf",qsqf);
  157. temp11 = ednaApiUtil.getRealData(MainConstant.JSFW_SBQDJSS).getPointValueInDouble();
  158. temp12 = ednaApiUtil.getRealData(MainConstant.JSFW_SBQSDTJ).getPointValueInDouble();
  159. temp13 = ednaApiUtil.getRealData(MainConstant.JSFW_SBQXNSS).getPointValueInDouble();
  160. temp14 = ednaApiUtil.getRealData(MainConstant.JSFW_SBQQXJC).getPointValueInDouble();
  161. double sbqqf = new BigDecimal(temp11+temp12+temp13+temp14).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
  162. map.put("sbqqf",sbqqf);
  163. temp11 = ednaApiUtil.getRealData(MainConstant.JSFW_XSDJSS).getPointValueInDouble();
  164. temp12 = ednaApiUtil.getRealData(MainConstant.JSFW_XSSDTJ).getPointValueInDouble();
  165. temp13 = ednaApiUtil.getRealData(MainConstant.JSFW_XSXNSS).getPointValueInDouble();
  166. temp14 = ednaApiUtil.getRealData(MainConstant.JSFW_XSQXJC).getPointValueInDouble();
  167. double xsqf = new BigDecimal(temp11+temp12+temp13+temp14).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();// 香山日欠发损失电量
  168. map.put("xsqf",xsqf);
  169. double fdzqf = StringUtils.round(mhsqf+nssqf+qsqf+sbqqf+xsqf, 2);
  170. map.put("fdzqf",fdzqf);
  171. double mhsfs = ednaApiUtil.getRealData(MainConstant.JSFW_MHSSFS).getPointValueInDouble();// 麻黄山风速
  172. double nssfs = ednaApiUtil.getRealData(MainConstant.JSFW_NSSSFS).getPointValueInDouble();// 牛首山风速
  173. double qsfs = ednaApiUtil.getRealData(MainConstant.JSFW_QSSSFS).getPointValueInDouble();// 青山风速
  174. double sbqfs = ednaApiUtil.getRealData(MainConstant.JSFW_SBSSFS).getPointValueInDouble();// 石板泉风速
  175. double xsfs = ednaApiUtil.getRealData(MainConstant.JSFW_XSSSFS).getPointValueInDouble();// 香山风速
  176. map.put("mhsfs",mhsfs);
  177. map.put("nssfs",nssfs);
  178. map.put("qsfs",qsfs);
  179. map.put("sbqfs",sbqfs);
  180. map.put("xsfs",xsfs);
  181. double mhsgl = ednaApiUtil.getRealData(MainConstant.MHSDQ_POWER).getPointValueInDouble();// 麻黄山总功率
  182. double nssgl = ednaApiUtil.getRealData(MainConstant.NSSDQ_POWER).getPointValueInDouble();// 牛首山总功率
  183. double qsgl= ednaApiUtil.getRealData(MainConstant.QSDQ_POWER).getPointValueInDouble();// 青山总功率
  184. double sbqgl = ednaApiUtil.getRealData(MainConstant.SBQDQ_POWER).getPointValueInDouble();// 石板泉总功率
  185. double xsgl = ednaApiUtil.getRealData(MainConstant.XSDQ_POWER).getPointValueInDouble();// 香山总功率
  186. map.put("mhsgl",mhsgl);
  187. map.put("nssgl",nssgl);
  188. map.put("qsgl",qsgl);
  189. map.put("sbqgl",sbqgl*10);
  190. map.put("xsgl",xsgl);
  191. double gfssgl = ednaApiUtil.getRealData(MainConstant.JSFW_GFSSZGL).getPointValueInDouble();// 总功率合计
  192. double gfrfdl = ednaApiUtil.getRealData(MainConstant.JSFW_GFRFDLB).getPointValueInDouble();// 光伏日发电量合计
  193. double gfswdl = ednaApiUtil.getRealData(MainConstant.JSFW_GFSWDLB).getPointValueInDouble();// 上网电量合计
  194. double dwkrzqd = ednaApiUtil.getRealData(MainConstant.DWKFS).getPointValueInDouble();// 大武口日照强度
  195. double plrzqd = ednaApiUtil.getRealData(MainConstant.PLFS).getPointValueInDouble();//
  196. double xhrzqd = ednaApiUtil.getRealData(MainConstant.XHFS).getPointValueInDouble();
  197. double mchrzqd = ednaApiUtil.getRealData(MainConstant.MCHFS).getPointValueInDouble();// 马场湖日照强度
  198. map.put("gfssgl",gfssgl);
  199. map.put("gfrfdl",gfrfdl);
  200. map.put("gfswdl",gfswdl);
  201. map.put("dwkrzqd",dwkrzqd);
  202. map.put("plrzqd",plrzqd);
  203. map.put("xhrzqd",xhrzqd);
  204. map.put("mchrzqd",mchrzqd);
  205. double dwkgl = ednaApiUtil.getRealData(MainConstant.JSFW_DWSSZGL).getPointValueInDouble();// 大武口总功率
  206. double plgl = ednaApiUtil.getRealData(MainConstant.JSFW_PLSSZGL).getPointValueInDouble();// 平罗总功率
  207. double mchgl = ednaApiUtil.getRealData(MainConstant.JSFW_MCSSZGL).getPointValueInDouble();// 马场湖总功率
  208. double xhgl = ednaApiUtil.getRealData(MainConstant.JSFW_XHSSZGL).getPointValueInDouble(); // 宣和总功率
  209. double hzjfdl = ednaApiUtil.getRealData(MainConstant.JSFW_HZJRFDLB).getPointValueInDouble();
  210. double hzjgl = ednaApiUtil.getRealData(MainConstant.JSFW_HZJSSZGL).getPointValueInDouble();
  211. double hzjrzqd = ednaApiUtil.getRealData(MainConstant.HZJFS).getPointValueInDouble();
  212. double gfrzqd = new BigDecimal(dwkrzqd + plrzqd + xhrzqd + mchrzqd + hzjrzqd) .divide(new BigDecimal(3), 2, RoundingMode.HALF_EVEN).doubleValue();
  213. map.put("dwkgl",dwkgl);
  214. map.put("plgl",plgl);
  215. map.put("xhgl",xhgl-mchgl);
  216. map.put("mchgl",mchgl);
  217. map.put("hzjfdl",hzjfdl);
  218. map.put("hzjgl",hzjgl);
  219. map.put("hzjrzqd",hzjrzqd);
  220. map.put("gfrzqd",gfrzqd);
  221. double fwjsl = 93.58;
  222. double zhjsl = 96.12;
  223. double xqjsl = 94.67;
  224. double fnlyl = 77.67;
  225. map.put("fwjsl",fwjsl);
  226. map.put("zhjsl",zhjsl);
  227. map.put("xqjsl",xqjsl);
  228. map.put("fnlyl",fnlyl);
  229. return map;
  230. }
  231. }