PointGenerateService.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. package com.gyee.backconfig.service;
  2. import com.gyee.backconfig.model.auto.*;
  3. import com.gyee.backconfig.service.auto.*;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import javax.annotation.Resource;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. /**
  12. * 生成测点服务类
  13. */
  14. @Service
  15. public class PointGenerateService {
  16. private static Logger logger = LoggerFactory.getLogger(PointGenerateService.class);
  17. @Resource
  18. private ICompanysService companysService;//公司
  19. @Autowired
  20. private IRegionService regionService;//区域
  21. @Resource
  22. private IProjectService projectService;//期次
  23. @Resource
  24. private ILineService lineService;//线路
  25. @Resource
  26. private IWindpowerstationService windpowerstationService;//场站
  27. @Autowired
  28. private IWindturbineService windturbineService;//风机
  29. @Autowired
  30. private IWindpowerstationpointnewService windpowerstationpointnewService;
  31. @Autowired
  32. private IWindturbinetestingpointnewService windturbinetestingpointnewService;
  33. @Autowired
  34. private IStandardpointService standardpointService;
  35. public int addGeneratePoint(String[] points) {
  36. int num = 0;
  37. List<Standardpoint> pointList = standardpointService.list(points);
  38. List<Companys> companysList = companysService.getCompanysByidAndRid("");
  39. for (Standardpoint p : pointList) {
  40. if ("czjs".equals(p.getType())) {
  41. List<Windpowerstationpointnew> staionList = fjd(p, companysList);
  42. for (Windpowerstationpointnew i : staionList) {
  43. boolean b = windpowerstationpointnewService.addOrUpdate(i);
  44. if (!b){
  45. logger.error( i.getCode()+"测点插入失败");
  46. num++;
  47. }
  48. }
  49. } else {
  50. //fjjs
  51. //fjjcd
  52. for (Companys c : companysList) {
  53. List<Region> regionList = regionService.getReginBycode(c.getCapacityunit());
  54. for (Region r : regionList) {
  55. List<Windpowerstation> windpowerstationList = windpowerstationService.getList(r.getCompanyid());
  56. List<Windturbinetestingpointnew> testingList = czd(p, windpowerstationList);
  57. for (Windturbinetestingpointnew i : testingList) {
  58. boolean b = windturbinetestingpointnewService.addOrUpdate(i);
  59. if (!b){
  60. logger.error( i.getCode()+"测点插入失败");
  61. num++;
  62. }
  63. }
  64. }
  65. }
  66. }
  67. }
  68. return num;
  69. }
  70. private List<Windpowerstationpointnew> fjd(Standardpoint p, List<Companys> companysList) {
  71. List<Windpowerstationpointnew> stationList = new ArrayList<>();
  72. Windpowerstationpointnew stationpoint = null;
  73. List<String> gflist = new ArrayList<>();
  74. gflist.add("G");
  75. gflist.add("F");
  76. for (Companys c : companysList) {
  77. StringBuilder gssb = null;
  78. List<Windpowerstationpointnew> list1 = windpowerstationpointnewService.getStationpointByUniformcode(c.getId(), p.getUniformcode());
  79. if (null == list1 || list1.size() <= 0) {
  80. //"JSFW.QY_JN_XXXX_XX_XX_XX_XXX_CI0144" "区域限电停机台数(明细)"
  81. gssb = new StringBuilder();
  82. gssb.append("JSFW.").append(c.getId()).append("_JN_");
  83. stationpoint = new Windpowerstationpointnew();
  84. stationpoint.setCode(gssb.toString() + "XXXX_XX_XX_XX_XXX_" + p.getUniformcode());
  85. stationpoint.setName(c.getName() + p.getName());
  86. stationpoint.setUniformcode(p.getUniformcode());
  87. stationpoint.setWindpowerstationid(c.getId());
  88. stationpoint.setRealtimeid("JSFW");
  89. stationList.add(stationpoint);
  90. }
  91. for (String gf: gflist){
  92. List<Windpowerstationpointnew> list1df = windpowerstationpointnewService.getStationpointByUniformcode(c.getId()+"_"+gf, p.getUniformcode());
  93. if (null == list1df || list1df.size() <= 0) {
  94. //"JSFW.QY_JN_QYG_XX_XX_XX_XXX_CI0144" "区域光伏限电停机台数(明细)"
  95. //"JSFW.QY_JN_QYF_XX_XX_XX_XXX_CI0144" "区域风场限电停机台数(明细)"
  96. StringBuilder gsgfsb = new StringBuilder(gssb);
  97. gsgfsb.append(c.getId()).append(gf)
  98. .append("_XX_XX_XX_XXX_")
  99. .append(p.getUniformcode());
  100. stationpoint = new Windpowerstationpointnew();
  101. stationpoint.setCode(gsgfsb.toString());
  102. stationpoint.setName(c.getName() + p.getName());
  103. stationpoint.setUniformcode(p.getUniformcode());
  104. stationpoint.setWindpowerstationid(c.getId()+"_"+gf);
  105. stationpoint.setRealtimeid("JSFW");
  106. stationList.add(stationpoint);
  107. }
  108. }
  109. List<Region> regionList = regionService.getReginBycode(c.getCapacityunit());
  110. for (Region r : regionList) {
  111. StringBuilder qusb = new StringBuilder();
  112. List<Windpowerstationpointnew> list2 = windpowerstationpointnewService.getStationpointByUniformcode( r.getId(), p.getUniformcode());
  113. if (null == list2 || list2.size() <= 0) {
  114. //"JSFW.SX_JN_XXXX_XX_XX_XX_XXX_CI0144" "山西限电停机台数(明细)"
  115. qusb.append("JSFW.").append(r.getId()).append("_JN_");
  116. stationpoint = new Windpowerstationpointnew();
  117. stationpoint.setCode(gssb.toString() + "XXXX_XX_XX_XX_XXX_" + p.getUniformcode());
  118. stationpoint.setName(c.getName() + p.getName());
  119. stationpoint.setUniformcode(p.getUniformcode());
  120. stationpoint.setWindpowerstationid(r.getId());
  121. stationpoint.setRealtimeid("JSFW");
  122. stationList.add(stationpoint);
  123. }
  124. for (String gf: gflist) {
  125. List<Windpowerstationpointnew> list2df = windpowerstationpointnewService.getStationpointByUniformcode(r.getId() + "_" + gf, p.getUniformcode());
  126. if (null == list2df || list2df.size() <= 0) {
  127. //"JSFW.SX_JN_SXG_XX_XX_XX_XXX_CI0144" "山西光伏限电停机台数(明细)"
  128. //"JSFW.SX_JN_SXF_XX_XX_XX_XXX_CI0144" "山西风场限电停机台数(明细)"
  129. StringBuilder qugfsb = new StringBuilder(qusb);
  130. qugfsb.append(r.getId()).append(gf)
  131. .append("_XX_XX_XX_XXX_")
  132. .append(p.getUniformcode());
  133. stationpoint = new Windpowerstationpointnew();
  134. stationpoint.setCode(qugfsb.toString());
  135. stationpoint.setName(c.getName() + p.getName());
  136. stationpoint.setUniformcode(p.getUniformcode());
  137. stationpoint.setWindpowerstationid(r.getId() + "_" + gf);
  138. stationpoint.setRealtimeid("JSFW");
  139. stationList.add(stationpoint);
  140. }
  141. }
  142. List<Windpowerstation> windpowerstationList = windpowerstationService.getList(r.getCompanyid());
  143. for (Windpowerstation station : windpowerstationList) {
  144. List<Windpowerstationpointnew> list3 = windpowerstationpointnewService.getStationpointByUniformcode(station.getId(), p.getUniformcode());
  145. if (null != list3 && list3.size() > 0) {
  146. continue;
  147. }
  148. stationpoint = new Windpowerstationpointnew();
  149. //BHBFCJSFW.SX_JN_BHBF_JS_XX_XX_XXX_CI0079
  150. //SYGCJSFW.SX_JN_SYG_JS_XX_XX_XXX_CI0001
  151. StringBuilder stationsb = new StringBuilder();
  152. String substaion = station.getId().substring(0, station.getId().indexOf("_"));
  153. stationsb.append(substaion).append(station.getId().endsWith("_FDC") ? "FCJSFW." : "GCJSFW.");
  154. stationsb.append("SX_JN_").append(substaion);
  155. stationsb.append(station.getId().endsWith("_FDC") ? "F" : "G").append("_JS_");
  156. stationpoint.setCode(stationsb.toString() + "XX_XX_XXX_" + p.getUniformcode());
  157. stationpoint.setName(station.getName() + p.getName());
  158. stationpoint.setUniformcode(p.getUniformcode());
  159. stationpoint.setWindpowerstationid(station.getId());
  160. stationpoint.setRealtimeid(substaion + (station.getId().endsWith("_FDC") ? "FCJSFW" : "GCJSFW"));
  161. stationList.add(stationpoint);
  162. List<Project> projectList = projectService.getList(station.getId());
  163. for (Project project : projectList) {
  164. List<Windpowerstationpointnew> list4 = windpowerstationpointnewService.getStationpointByUniformcode(project.getId(), p.getUniformcode());
  165. if (null != list4 && list4.size() > 0) {
  166. continue;
  167. }
  168. stationpoint = new Windpowerstationpointnew();
  169. //BHBFCJSFW.SX_JN_BHBF_JS_P1_XX_XXX_CI0079
  170. //SYGCJSFW.SX_JN_SYG_JS_P1_XX_XXX_CI0001
  171. StringBuilder projectsb = new StringBuilder(stationsb);
  172. Integer pnum = Integer.valueOf(project.getId().substring(substaion.length(), project.getId().indexOf("_"))) * 1;
  173. projectsb.append("P")
  174. .append(pnum);
  175. stationpoint.setCode(projectsb.toString()+"_XX_XXX_"+p.getUniformcode());
  176. stationpoint.setName(project.getName() + p.getName());
  177. stationpoint.setUniformcode(p.getUniformcode());
  178. stationpoint.setWindpowerstationid(project.getId());
  179. stationpoint.setRealtimeid(substaion + (station.getId().endsWith("_FDC") ? "FCJSFW" : "GCJSFW"));
  180. stationList.add(stationpoint);
  181. List<Line> lineList = lineService.getList(project.getId());
  182. for (Line l : lineList) {
  183. List<Windpowerstationpointnew> list5 = windpowerstationpointnewService.getStationpointByUniformcode(l.getId(), p.getUniformcode());
  184. if (null != list5 && list5.size() > 0) {
  185. continue;
  186. }
  187. stationpoint = new Windpowerstationpointnew();
  188. //BHBFCJSFW.SX_JN_BHBF_JS_P1_L3_XXX_CI0079
  189. //SYGCJSFW.SX_JN_SYG_JS_P1_L1_XXX_CI0001
  190. StringBuilder linesb = new StringBuilder(projectsb);
  191. Integer lnum = Integer.valueOf(l.getId().substring(substaion.length(), project.getId().indexOf("_"))) * 1;
  192. linesb.append("_L").append(lnum)
  193. .append("_XXX_").append(p.getUniformcode());
  194. stationpoint.setCode(linesb.toString());
  195. stationpoint.setName(l.getName() + p.getName());
  196. stationpoint.setUniformcode(p.getUniformcode());
  197. stationpoint.setWindpowerstationid(l.getId());
  198. stationpoint.setRealtimeid(substaion + (station.getId().endsWith("_FDC") ? "FCJSFW" : "GCJSFW"));
  199. stationList.add(stationpoint);
  200. }
  201. }
  202. }
  203. }
  204. }
  205. return stationList;
  206. }
  207. /**
  208. * @param p
  209. * @param windpowerstationList
  210. * @return
  211. */
  212. private List<Windturbinetestingpointnew> czd(Standardpoint p, List<Windpowerstation> windpowerstationList) {
  213. Windturbinetestingpointnew testing = null;
  214. List<Windturbinetestingpointnew> testingList = new ArrayList<>();
  215. for (Windpowerstation station : windpowerstationList) {
  216. List<Windturbine> windturbineList = windturbineService.getWindturbineGyLine(station.getId(), "", "");
  217. for (Windturbine w : windturbineList) {
  218. List<Windturbinetestingpointnew> list = windturbinetestingpointnewService.list(w.getId(), p.getUniformcode());
  219. if (null != list && list.size() > 0) {
  220. continue;
  221. }
  222. testing = new Windturbinetestingpointnew();
  223. //fjjs
  224. //fjjcd
  225. String substaion = station.getId().substring(0, station.getId().indexOf("_"));
  226. if ("fjjs".equals(p.getType())) {
  227. StringBuilder stationsb = new StringBuilder();
  228. stationsb.append(substaion).append(station.getId().endsWith("_FDC") ? "FJJSFW." : "GFJSFW.");
  229. stationsb.append("SX_JN_").append(substaion);
  230. stationsb.append(station.getId().endsWith("_FDC") ? "F" : "G").append("_JS_");
  231. Integer pnum = Integer.valueOf(w.getProjectid().substring(substaion.length(), w.getProjectid().indexOf("_"))) * 1;
  232. stationsb.append("P").append(pnum);
  233. Integer lnum = Integer.valueOf(w.getLineid().substring(substaion.length(), w.getLineid().indexOf("_"))) * 1;
  234. stationsb.append("_L").append(lnum);
  235. String wnum = w.getId().substring(w.getId().indexOf("_") + 1, w.getId().length());
  236. stationsb.append("_").append(wnum).append("_");
  237. //BHB3FJJSFW.SX_JN_BHB3F_JS_P1_L30_001_CI0060
  238. //SYGFJSFW.SX_JN_SYG_JS_P2_L3_NBQ0061_CI0174
  239. testing.setCode(stationsb.toString() + p.getUniformcode());
  240. testing.setRealtimeid(substaion + (station.getId().endsWith("_FDC") ? "FJJSFW" : "GFJSFW"));
  241. } else if ("fjjcd".equals(p.getType())) {
  242. testing.setCode("INITIAL");
  243. testing.setRealtimeid(substaion + (station.getId().endsWith("_FDC") ? "FJ" : "GF"));
  244. }
  245. testing.setName(w.getName() + p.getName());
  246. testing.setUniformcode(p.getUniformcode());
  247. testing.setWindpowerstationid(w.getId());
  248. testingList.add(testing);
  249. }
  250. }
  251. return testingList;
  252. }
  253. }