EquipmentSelectController.java 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733
  1. package com.slave.midScreen.controller;
  2. import com.github.pagehelper.PageInfo;
  3. import com.rockstar.frame.model.extend.TableSplitResult;
  4. import com.rockstar.frame.model.extend.Tablepar;
  5. import com.rockstar.util.StringUtils;
  6. import com.slave.midScreen.model.in.SelectFenXi;
  7. import com.slave.midScreen.model.in.SelectInfo;
  8. import com.slave.midScreen.model.in.SelectInfoDetail;
  9. import com.slave.midScreen.service.SecuritySupervisService;
  10. import com.slave2.midScreen2.service.SecuritySupervis2Service;
  11. import io.swagger.annotations.Api;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Controller;
  14. import org.springframework.web.bind.annotation.PostMapping;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.ResponseBody;
  17. import java.util.*;
  18. /**
  19. * 中屏_安全监管
  20. */
  21. @Controller
  22. @RequestMapping(value = "/EquipmentSelectController")
  23. @Api(value="中屏_设备和点位信息")
  24. public class EquipmentSelectController {
  25. @Autowired
  26. private SecuritySupervisService securitySupervisService;
  27. @Autowired
  28. private SecuritySupervis2Service securitySupervis2Service;
  29. // /**
  30. // * test
  31. // * @param
  32. // * @return
  33. // */
  34. // @PostMapping(value = "test",produces = {"application/json;charset=UTF-8"})
  35. // @ResponseBody
  36. // public Object test(){
  37. // String sql="select * from local_dict limit 6";
  38. // return securitySupervisService.select1(sql);
  39. //
  40. // }
  41. //大屏中间屏幕跳转点位信息
  42. // 中间屏幕统计点位不同专项场景的数量
  43. @PostMapping(value = "pointStatistics",produces = {"application/json;charset=UTF-8"})
  44. @ResponseBody
  45. public Object pointStatistics(String area,String scene){
  46. List<String> sceneList = null;
  47. if (!StringUtils.isEmpty(scene)){
  48. String[] split = scene.split(",");
  49. sceneList=Arrays.asList(split);
  50. }
  51. return securitySupervis2Service.pointStatistics(area,sceneList);
  52. }
  53. //大屏中间屏幕跳转点位信息
  54. //中间屏幕统计点位信息
  55. @PostMapping(value = "pointStatisticsDetail",produces = {"application/json;charset=UTF-8"})
  56. @ResponseBody
  57. public Object pointStatisticsDetail(String area,String scene){
  58. List<String> sceneList = null;
  59. if (!StringUtils.isEmpty(scene)){
  60. String[] split = scene.split(",");
  61. sceneList=Arrays.asList(split);
  62. }
  63. return securitySupervis2Service.pointStatisticsDetail(area,sceneList);
  64. }
  65. //大屏中间屏幕跳转基础设备
  66. // 屏幕中间根据行政区划和所属场景获取基础设备数量
  67. @PostMapping(value = "equipmentStatistics",produces = {"application/json;charset=UTF-8"})
  68. @ResponseBody
  69. public Object equipmentStatistics(String area,String scene){
  70. List<String> sceneList = null;
  71. if (!StringUtils.isEmpty(scene)){
  72. String[] split = scene.split(",");
  73. sceneList=Arrays.asList(split);
  74. }
  75. return securitySupervisService.equipmentStatistics(area,sceneList);
  76. }
  77. //大屏中间屏幕跳转基础设备
  78. //屏幕中间根据行政区划和所属场景获取基础设备点位信息
  79. @PostMapping(value = "equipmentStatisticsDetail",produces = {"application/json;charset=UTF-8"})
  80. @ResponseBody
  81. public Object equipmentStatisticsDetail(String area,String scene){
  82. List<String> sceneList = null;
  83. if (!StringUtils.isEmpty(scene)){
  84. String[] split = scene.split(",");
  85. sceneList=Arrays.asList(split);
  86. }
  87. return securitySupervisService.equipmentStatisticsDetail(area,sceneList);
  88. }
  89. //左边屏幕燃气监测点根据设备名称分类数量
  90. @PostMapping(value = "ranqiJIanCedian1",produces = {"application/json;charset=UTF-8"})
  91. @ResponseBody
  92. public Object ranqiJIanCedian1(){
  93. String sql="select count(1) count,SSMC from\n" +
  94. " citylifeline.RQ_JS_JCD\n" +
  95. " GROUP BY SSMC\n" +
  96. " order by count";
  97. return securitySupervis2Service.select2(sql);
  98. }
  99. //左边屏幕燃气监测设备根据设备种类分数量
  100. @PostMapping(value = "ranqiJIanCedian2",produces = {"application/json;charset=UTF-8"})
  101. @ResponseBody
  102. public Object ranqiJIanCedian2(){
  103. String sql="select count(1) count,SBLX,jczb from \n" +
  104. "citylifeline.RQ_JC_JCSB\n" +
  105. "GROUP BY SBLX,jczb";
  106. return securitySupervis2Service.select2(sql);
  107. }
  108. //左边屏幕供水监测点根据设备名称分类数量
  109. @PostMapping(value = "gongshuiJIanCedian1",produces = {"application/json;charset=UTF-8"})
  110. @ResponseBody
  111. public Object gongshuiJIanCedian1(){
  112. String sql="select count(1) count,SSMC from\n" +
  113. " citylifeline.GS_JS_JCD\n" +
  114. " GROUP BY SSMC\n" +
  115. " order by count";
  116. return securitySupervis2Service.select2(sql);
  117. }
  118. //左边屏幕供水监测设备根据设备种类分数量
  119. @PostMapping(value = "gongshuiJIanCedian2",produces = {"application/json;charset=UTF-8"})
  120. @ResponseBody
  121. public Object gongshuiJIanCedian2(){
  122. String sql="select count(1) count,SBLX,jczb from \n" +
  123. "citylifeline.GS_JC_JCSB\n" +
  124. "GROUP BY SBLX,jczb";
  125. return securitySupervis2Service.select2(sql);
  126. }
  127. //左边屏幕排水监测点根据设备名称分类数量
  128. @PostMapping(value = "paishuiJIanCedian1",produces = {"application/json;charset=UTF-8"})
  129. @ResponseBody
  130. public Object paishuiJIanCedian1(){
  131. String sql="select count(1) count,SSMC from\n" +
  132. " citylifeline.PS_JS_JCD\n" +
  133. " GROUP BY SSMC\n" +
  134. " order by count";
  135. return securitySupervis2Service.select2(sql);
  136. }
  137. //左边屏幕排水监测设备根据设备种类分数量
  138. @PostMapping(value = "paishuiJIanCedian2",produces = {"application/json;charset=UTF-8"})
  139. @ResponseBody
  140. public Object paishuiJIanCedian2(){
  141. String sql="select count(1) count,SBLX,jczb from \n" +
  142. "citylifeline.PS_JC_JCSB\n" +
  143. "GROUP BY SBLX,jczb";
  144. return securitySupervis2Service.select2(sql);
  145. }
  146. //左边屏幕桥梁监测点根据设备名称分类数量
  147. @PostMapping(value = "qiaoliangJIanCedian1",produces = {"application/json;charset=UTF-8"})
  148. @ResponseBody
  149. public Object qiaoliangJIanCedian1(){
  150. String sql=" SELECT COUNT (1) COUNT,SSMC FROM citylifeline.ql_js_jcd GROUP BY SSMC ORDER BY COUNT";
  151. return securitySupervis2Service.select2(sql);
  152. }
  153. //左边屏幕桥梁监测设备根据设备种类分数量
  154. @PostMapping(value = "qiaoliangJIanCedian2",produces = {"application/json;charset=UTF-8"})
  155. @ResponseBody
  156. public Object qiaoliangJIanCedian2(){
  157. String sql="SELECT COUNT (1) COUNT,SBLX,jczb FROM citylifeline.ql_jc_jcsb GROUP BY SBLX,jczb";
  158. return securitySupervis2Service.select2(sql);
  159. }
  160. //todo 左边屏幕道路监测点根据设备名称分类数量
  161. @PostMapping(value = "daoluJIanCedian1",produces = {"application/json;charset=UTF-8"})
  162. @ResponseBody
  163. public Object daoluJIanCedian1(){
  164. String sql="";
  165. return null;//securitySupervis2Service.select2(sql);
  166. }
  167. //todo 左边屏幕道路监测设备根据设备种类分数量
  168. @PostMapping(value = "daoluJIanCedian2",produces = {"application/json;charset=UTF-8"})
  169. @ResponseBody
  170. public Object daoluJIanCedian2(){
  171. String sql="";
  172. return null;//securitySupervis2Service.select2(sql);
  173. }
  174. //todo 左边屏幕管线监测点根据设备名称分类数量
  175. @PostMapping(value = "guanxianJIanCedian1",produces = {"application/json;charset=UTF-8"})
  176. @ResponseBody
  177. public Object guanxianJIanCedian1(){
  178. String sql="";
  179. return null;//securitySupervis2Service.select2(sql);
  180. }
  181. //todo 左边屏幕管线监测设备根据设备种类分数量
  182. @PostMapping(value = "guanxianJIanCedian2",produces = {"application/json;charset=UTF-8"})
  183. @ResponseBody
  184. public Object guanxianJIanCedian2(){
  185. String sql="";
  186. return null;//securitySupervis2Service.select2(sql);
  187. }
  188. //左边屏幕桥梁监测点根据设备名称分类数量
  189. @PostMapping(value = "disanfangJIanCedian1",produces = {"application/json;charset=UTF-8"})
  190. @ResponseBody
  191. public Object disanfangJIanCedian1(){
  192. String sql=" SELECT COUNT (1) COUNT,SSMC FROM citylifeline.sg_js_jcd GROUP BY SSMC ORDER BY COUNT";
  193. return securitySupervis2Service.select2(sql);
  194. }
  195. //左边屏幕桥梁监测设备根据设备种类分数量
  196. @PostMapping(value = "disanfangJIanCedian2",produces = {"application/json;charset=UTF-8"})
  197. @ResponseBody
  198. public Object disanfangJIanCedian2(){
  199. String sql="SELECT COUNT (1) COUNT,SBLX,jczb FROM citylifeline.sg_jc_jcsb GROUP BY SBLX,jczb";
  200. return securitySupervis2Service.select2(sql);
  201. }
  202. // 根据点位信息id和类型type查看监测点位详细
  203. @PostMapping(value = "jianCedianInfoByIdAndType",produces = {"application/json;charset=UTF-8"})
  204. @ResponseBody
  205. public Object jianCedianInfoByIdAndType(String id,String type){
  206. String sql="SELECT*FROM citylifeline.view_jcd_collect WHERE BSM='"+id+"' AND TYPE='"+type+"'";
  207. return securitySupervis2Service.select2(sql);
  208. }
  209. // 根据点位信息id和类型type查看监测点位关联设备列表
  210. @PostMapping(value = "jianCedianListByIdAndType",produces = {"application/json;charset=UTF-8"})
  211. @ResponseBody
  212. public Object jianCedianListByIdAndType(String id,String type){
  213. // -- 0-燃气爆炸,1-城市内涝,2-供水爆管,3-第三方破坏,4-地下管线,5-桥梁倒塌,6-道路塌陷,
  214. String tableName=null;
  215. String tableName2=null;
  216. if (type.equals("0")) {
  217. tableName="RQ_JC_JCSB";
  218. tableName2="RQ_JC_JCXYZ";
  219. } else if (type.equals("1")) {
  220. tableName="PS_JC_JCSB";
  221. tableName2="PS_JC_JCXYZ";
  222. } else if (type.equals("2")) {
  223. tableName="GS_JC_JCSB";
  224. tableName2="GS_JC_JCXYZ";
  225. } else if (type.equals("3")) {
  226. tableName="sg_jc_jcsb";
  227. tableName2="sg_jc_jcxyz";
  228. } else if (type.equals("4")) {
  229. // todo
  230. tableName="";
  231. tableName2="";
  232. } else if (type.equals("5")) {
  233. tableName="ql_jc_jcsb";
  234. tableName2="ql_jc_jcxyz";
  235. } else if (type.equals("6")) {
  236. // todo
  237. tableName="";
  238. tableName2="";
  239. }
  240. String sql = "SELECT mytable.*,mytable2.bjyz FROM citylifeline."+tableName+" mytable LEFT JOIN citylifeline."+tableName2+" mytable2 ON mytable2.SBBSM=mytable.BSM WHERE mytable.DWBSM='" + id + "'";
  241. return securitySupervis2Service.select2(sql);
  242. }
  243. // =======================================================================================================================================================
  244. //SELECT
  245. //COUNT
  246. // ( 1 ) FILTER ( WHERE scene = '1' AND facility_type = '2' ) AS typ1_count,--天然气场站数量
  247. //
  248. // COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '0' ), 0 ) AS typ2_count, --天然气管线公里数
  249. //
  250. //
  251. // COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '1' ), 0 ) AS typ3_count, --天然气管道阀门井数量
  252. //
  253. // COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '10' ), 0 ) AS typ4_count, --天然气储备站充装台数量
  254. //
  255. //
  256. // COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '9' ), 0 ) AS typ5_count, --液化气场站液化瓶数量
  257. //
  258. // COUNT ( 1 ) FILTER ( WHERE scene = '1' AND facility_type = '9' ) AS typ6_count--液化气场站数量
  259. //
  260. //FROM
  261. // zhjg_analysis_facility
  262. // 屏幕左下角数据(燃气类数据)
  263. @PostMapping(value = "ranqiEquipmentInfo",produces = {"application/json;charset=UTF-8"})
  264. @ResponseBody
  265. public Object ranqiEquipmentInfo(){
  266. String sql="SELECT \n" +
  267. "COUNT\n" +
  268. " ( 1 ) FILTER ( WHERE scene = '1' AND facility_type = '2' ) AS typ1_count,--天然气场站数量\n" +
  269. " \n" +
  270. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '0' ), 0 ) AS typ2_count, --天然气管线公里数\n" +
  271. " \n" +
  272. " \n" +
  273. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '1' ), 0 ) AS typ3_count, --天然气管道阀门井数量\n" +
  274. " \n" +
  275. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '10' ), 0 ) AS typ4_count, --天然气储备站充装台数量\n" +
  276. "\n" +
  277. " \n" +
  278. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '9' ), 0 ) AS typ5_count, --液化气场站液化瓶数量\n" +
  279. " \n" +
  280. " COUNT ( 1 ) FILTER ( WHERE scene = '1' AND facility_type = '9' ) AS typ6_count--液化气场站数量\n" +
  281. " \n" +
  282. "FROM\n" +
  283. " zhjg_analysis_facility";
  284. return securitySupervis2Service.select2(sql);
  285. }
  286. // 屏幕左下角数据(内涝)
  287. @PostMapping(value = "paishuiEquipmentInfo",produces = {"application/json;charset=UTF-8"})
  288. @ResponseBody
  289. public Object paishuiEquipmentInfo(){
  290. String sql="SELECT \n" +
  291. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND facility_type = '5' ), 0 ) AS typ1_count, --内涝雨水管网公里数\n" +
  292. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND facility_type = '雨水明渠' ), 0 ) AS typ2_count, --雨水明渠公里数\n" +
  293. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND facility_type = '合流制排水明渠' ), 0 ) AS typ3_count, --合流制排水明渠公里数\n" +
  294. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND facility_type = '主要河道' ), 0 ) AS typ4_count, --主要河道公里数\n" +
  295. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND facility_type = '行泄通道' ), 0 ) AS typ5_count, --行泄通道公里数\n" +
  296. " COUNT( 1 ) FILTER ( WHERE scene = '2' AND facility_type = '调蓄池' ) AS typ6_count,--调蓄池数量\n" +
  297. " \n" +
  298. " \n" +
  299. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND facility_type = '污水管网' ), 0 ) AS typ7_count, --内涝污水管网公里数\n" +
  300. " COUNT( 1 ) FILTER ( WHERE scene = '2' AND facility_type = '污水泵站' ) AS typ8_count,--污水泵站数量\n" +
  301. " COUNT( 1 ) FILTER ( WHERE scene = '2' AND facility_type = '污水厂' ) AS typ9_count,--污水厂站数量\n" +
  302. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND facility_type = '重点排水户' ), 0 ) AS typ10_count, --重点排水户多少家\n" +
  303. " \n" +
  304. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND facility_type = '污水处理能力' ), 0 ) AS typ11_count, --污水处理能力 万m3/日\n" +
  305. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND facility_type = '出场水质达标率' ), 0 ) AS typ12_count --出场水质达标总和,到时候还要除以污水厂数量\n" +
  306. " \n" +
  307. " \n" +
  308. "FROM\n" +
  309. " zhjg_analysis_facility";
  310. return securitySupervis2Service.select2(sql);
  311. }
  312. // 屏幕左下角数据(供水)
  313. @PostMapping(value = "gongshuiEquipmentInfo",produces = {"application/json;charset=UTF-8"})
  314. @ResponseBody
  315. public Object gongshuiEquipmentInfo(){
  316. String sql="SELECT \n" +
  317. " COUNT( 1 ) FILTER ( WHERE scene = '3' AND facility_type = '原水厂' ) AS typ1_count,--原水厂数量\n" +
  318. " \n" +
  319. " COUNT( 1 ) FILTER ( WHERE scene = '3' AND facility_type = '自来水厂' ) AS typ2_count,--自来水厂数量\n" +
  320. "\n" +
  321. " COUNT( 1 ) FILTER ( WHERE scene = '3' AND facility_type = '增压站' ) AS typ3_count,--增压站数量\n" +
  322. "\n" +
  323. " COUNT( 1 ) FILTER ( WHERE scene = '3' AND facility_type = '二次供水房' ) AS typ4_count,--二次供水房数量 \n" +
  324. " \n" +
  325. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '3' AND facility_type = '核心管网' ), 0 ) AS typ5_count, --核心管网条数\n" +
  326. " \n" +
  327. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '3' AND facility_type = '老旧管网' ), 0 ) AS typ6_count, --老旧管网条数\n" +
  328. "\n" +
  329. " COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '3' AND facility_type = '管线长度' ), 0 ) AS typ7_count, --管线长度公里数\n" +
  330. " \n" +
  331. " COUNT( 1 ) FILTER ( WHERE scene = '3' AND facility_type = '管点' ) AS typ8_count--管点个数\n" +
  332. "\n" +
  333. "FROM\n" +
  334. " zhjg_analysis_facility";
  335. return securitySupervis2Service.select2(sql);
  336. }
  337. // todo 屏幕左下角数据(桥梁)
  338. @PostMapping(value = "qiaoliangEquipmentInfo",produces = {"application/json;charset=UTF-8"})
  339. @ResponseBody
  340. public Object qiaoliangEquipmentInfo(){
  341. String sql="";
  342. return securitySupervis2Service.select2(sql);
  343. }
  344. // todo 屏幕左下角数据(道路)
  345. @PostMapping(value = "daoluEquipmentInfo",produces = {"application/json;charset=UTF-8"})
  346. @ResponseBody
  347. public Object daoluEquipmentInfo(){
  348. String sql="";
  349. return securitySupervis2Service.select2(sql);
  350. }
  351. // todo 屏幕左下角数据(地下管线)
  352. @PostMapping(value = "guanxianEquipmentInfo",produces = {"application/json;charset=UTF-8"})
  353. @ResponseBody
  354. public Object guanxianEquipmentInfo(){
  355. String sql="";
  356. return securitySupervis2Service.select2(sql);
  357. }
  358. // 屏幕左下角数据(施工项目)
  359. @PostMapping(value = "disanfangEquipmentInfo",produces = {"application/json;charset=UTF-8"})
  360. @ResponseBody
  361. public Object disanfangEquipmentInfo(){
  362. String sql="SELECT \n" +
  363. " COUNT( 1 ) typ_count,facility_type\n" +
  364. "FROM\n" +
  365. " zhjg_analysis_facility\n" +
  366. " where \n" +
  367. " scene = '4'\n" +
  368. " GROUP BY facility_type";
  369. return securitySupervis2Service.select2(sql);
  370. }
  371. // 设备大屏数据接口===============================================================================================================
  372. /**
  373. *
  374. SELECT COUNT
  375. ( 1 ) FILTER ( WHERE scene = '1' and facility_type='2' ) AS scene1,--燃气场景
  376. COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND measuring_unit = '1' ), 0 ) AS sum1_1,--多少个/瓶/条
  377. COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '0' ), 0 ) AS sum1_2,--多少公里
  378. COUNT ( 1 ) FILTER ( WHERE scene = '2' and facility_type='4') AS scene2,--内涝场景
  379. COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND measuring_unit = '0' ), 0 ) AS sum2_2,--多少公里
  380. COUNT ( 1 ) FILTER ( WHERE scene = '3' and facility_type='3') AS scene3,--供水场景
  381. COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '3' AND measuring_unit = '1' ), 0 ) AS sum3_1,--多少个/瓶/条
  382. COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '3' AND measuring_unit = '0' ), 0 ) AS sum3_2,--多少公里
  383. COUNT ( 1 ) FILTER ( WHERE scene = '4' ) AS scene4,--第三方场景
  384. COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '4' AND measuring_unit = '1' ), 0 ) AS sum4_1,--多少个/瓶/条
  385. COUNT ( 1 ) FILTER ( WHERE scene = '5' ) AS scene5,--地下管线场景
  386. COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '5' AND measuring_unit = '0' ), 0 ) AS sum5_2,--多少公里
  387. COUNT ( 1 ) FILTER ( WHERE scene = '6' ) AS scene6,--桥梁场景
  388. COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '6' AND measuring_unit = '0' ), 0 ) AS sum6_2,--多少公里
  389. COUNT ( 1 ) FILTER ( WHERE scene = '7' ) AS scene7,--道路场景
  390. COALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '7' AND measuring_unit = '0' ), 0 ) AS sum7_2 --多少公里
  391. FROM
  392. zhjg_analysis_facility
  393. * @return
  394. */
  395. // 大屏左上边设备设施统计
  396. @PostMapping(value = "equipmentLeftTopInfo",produces = {"application/json;charset=UTF-8"})
  397. @ResponseBody
  398. public Object equipmentLeftTopInfo(){
  399. String sql="SELECT COUNT\n" +
  400. "\t( 1 ) FILTER ( WHERE scene = '1' AND facility_type = '2' ) AS scene1,\n" +
  401. "\tCOALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND measuring_unit = '1' ), 0 ) AS sum1_1,\n" +
  402. "\tCOALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '1' AND facility_type = '0' ), 0 ) AS sum1_2,\n" +
  403. "\tCOUNT ( 1 ) FILTER ( WHERE scene = '2' AND facility_type = '4' ) AS scene2,\n" +
  404. "\tCOALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '2' AND measuring_unit = '0' ), 0 ) AS sum2_2,\n" +
  405. "\tCOUNT ( 1 ) FILTER ( WHERE scene = '3' AND facility_type = '3' ) AS scene3,\n" +
  406. "\tCOALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '3' AND measuring_unit = '1' ), 0 ) AS sum3_1,\n" +
  407. "\tCOALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '3' AND measuring_unit = '0' ), 0 ) AS sum3_2,\n" +
  408. "\tCOUNT ( 1 ) FILTER ( WHERE scene = '4' ) AS scene4,\n" +
  409. "\tCOALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '4' AND measuring_unit = '1' ), 0 ) AS sum4_1,\n" +
  410. "\tCOUNT ( 1 ) FILTER ( WHERE scene = '5' ) AS scene5,\n" +
  411. "\tCOALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '5' AND measuring_unit = '0' ), 0 ) AS sum5_2,\n" +
  412. "\tCOUNT ( 1 ) FILTER ( WHERE scene = '6' ) AS scene6,\n" +
  413. "\tCOALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '6' AND measuring_unit = '0' ), 0 ) AS sum6_2,\n" +
  414. "\tCOUNT ( 1 ) FILTER ( WHERE scene = '7' ) AS scene7,\n" +
  415. "\tCOALESCE ( SUM ( facility_quantity ) FILTER ( WHERE scene = '7' AND measuring_unit = '0' ), 0 ) AS sum7_2 \n" +
  416. "FROM\n" +
  417. "\tzhjg_analysis_facility";
  418. return securitySupervisService.select1(sql);
  419. }
  420. /**
  421. select t1.a type_count,
  422. t2.a all_count,
  423. t2.b all_line_count
  424. from
  425. (
  426. SELECT count(1) a from (
  427. SELECT
  428. SBLX
  429. FROM citylifeline.RQ_JC_JCSB
  430. GROUP BY SBLX) t) t1,(SELECT
  431. count(1) a,
  432. count(1) filter(where SBZT in(2,3)) b
  433. FROM citylifeline.RQ_JC_JCSB) t2
  434. * @return
  435. */
  436. // 大屏左边监测设备燃气爆炸统计
  437. @PostMapping(value = "equipmentLeftBottomInfoRanQi",produces = {"application/json;charset=UTF-8"})
  438. @ResponseBody
  439. public Object equipmentLeftBottomInfoRanQi(){
  440. String sql="select t1.a type_count,\n" +
  441. " t2.a all_count,\n" +
  442. "t2.b all_line_count\n" +
  443. "from \n" +
  444. "(\n" +
  445. "SELECT count(1) a from (\n" +
  446. "SELECT \n" +
  447. "SBLX\n" +
  448. "FROM citylifeline.RQ_JC_JCSB\n" +
  449. "GROUP BY SBLX) t) t1,(SELECT \n" +
  450. "count(1) a,\n" +
  451. "count(1) filter(where SBZT in(2,3)) b\n" +
  452. "FROM citylifeline.RQ_JC_JCSB) t2";
  453. return securitySupervis2Service.select2(sql);
  454. }
  455. // 大屏左边监测设备排水/内涝统计
  456. @PostMapping(value = "equipmentLeftBottomInfoPaiShui",produces = {"application/json;charset=UTF-8"})
  457. @ResponseBody
  458. public Object equipmentLeftBottomInfoPaiShui(){
  459. String sql="select t1.a type_count,\n" +
  460. " t2.a all_count,\n" +
  461. "t2.b all_line_count\n" +
  462. "from \n" +
  463. "(\n" +
  464. "SELECT count(1) a from (\n" +
  465. "SELECT \n" +
  466. "SBLX\n" +
  467. "FROM citylifeline.PS_JC_JCSB\n" +
  468. "GROUP BY SBLX) t) t1,(SELECT \n" +
  469. "count(1) a,\n" +
  470. "count(1) filter(where SBZT in(2,3)) b\n" +
  471. "FROM citylifeline.PS_JC_JCSB) t2";
  472. return securitySupervis2Service.select2(sql);
  473. }
  474. //大屏左边监测设备供水统计
  475. @PostMapping(value = "equipmentLeftBottomInfoGongShui",produces = {"application/json;charset=UTF-8"})
  476. @ResponseBody
  477. public Object equipmentLeftBottomInfoGongShui(){
  478. String sql="select t1.a type_count,\n" +
  479. " t2.a all_count,\n" +
  480. "t2.b all_line_count\n" +
  481. "from \n" +
  482. "(\n" +
  483. "SELECT count(1) a from (\n" +
  484. "SELECT \n" +
  485. "SBLX\n" +
  486. "FROM citylifeline.GS_JC_JCSB\n" +
  487. "GROUP BY SBLX) t) t1,(SELECT \n" +
  488. "count(1) a,\n" +
  489. "count(1) filter(where SBZT in(2,3)) b\n" +
  490. "FROM citylifeline.GS_JC_JCSB) t2";
  491. return securitySupervis2Service.select2(sql);
  492. }
  493. //todo 大屏左边监测设备地下管线统计
  494. @PostMapping(value = "equipmentLeftBottomInfoGuanXian",produces = {"application/json;charset=UTF-8"})
  495. @ResponseBody
  496. public Object equipmentLeftBottomInfoGuanXian(){
  497. String sql="";
  498. return securitySupervis2Service.select2(sql);
  499. }
  500. // 大屏左边监测设备桥梁统计
  501. @PostMapping(value = "equipmentLeftBottomInfoQiaoLiang",produces = {"application/json;charset=UTF-8"})
  502. @ResponseBody
  503. public Object equipmentLeftBottomInfoQiaoLiang(){
  504. String sql="select t1.a type_count,\n" +
  505. " t2.a all_count,\n" +
  506. "t2.b all_line_count\n" +
  507. "from \n" +
  508. "(\n" +
  509. "SELECT count(1) a from (\n" +
  510. "SELECT \n" +
  511. "SBLX\n" +
  512. "FROM citylifeline.ql_jc_jcsb\n" +
  513. "GROUP BY SBLX) t) t1,\n" +
  514. "\n" +
  515. "(SELECT \n" +
  516. "count(1) a,\n" +
  517. "count(1) filter(where SBZT in(2,3)) b\n" +
  518. "FROM citylifeline.ql_jc_jcsb) t2\n";
  519. return securitySupervis2Service.select2(sql);
  520. }
  521. // todo 大屏左边监测设备道路塌陷统计
  522. @PostMapping(value = "equipmentLeftBottomInfoDaoLu",produces = {"application/json;charset=UTF-8"})
  523. @ResponseBody
  524. public Object equipmentLeftBottomInfoDaoLu(){
  525. String sql="";
  526. return securitySupervis2Service.select2(sql);
  527. }
  528. // 大屏左边监测设备第三方统计
  529. @PostMapping(value = "equipmentLeftBottomInfoDiSanFang",produces = {"application/json;charset=UTF-8"})
  530. @ResponseBody
  531. public Object equipmentLeftBottomInfoDiSanFang(){
  532. String sql="select t1.a type_count,\n" +
  533. " t2.a all_count,\n" +
  534. "t2.b all_line_count\n" +
  535. "from \n" +
  536. "(\n" +
  537. "SELECT count(1) a from (\n" +
  538. "SELECT \n" +
  539. "SBLX\n" +
  540. "FROM citylifeline.sg_jc_jcsb\n" +
  541. "GROUP BY SBLX) t) t1,(SELECT \n" +
  542. "count(1) a,\n" +
  543. "count(1) filter(where SBZT in(2,3)) b\n" +
  544. "FROM citylifeline.sg_jc_jcsb) t2\n";
  545. return securitySupervis2Service.select2(sql);
  546. }
  547. /**
  548. SELECT
  549. count(1) all_count, --风险总数
  550. count(1) filter(where dispose_progress in('2')) as has_close_count, --已处置总数
  551. fxlx --风险等级
  552. FROM citylifeline.view_risk_collect
  553. where
  554. EXTRACT ( YEAR FROM pgsj ) = '2011这个要填的'
  555. GROUP BY fxlx
  556. */
  557. // 大屏左边第二个上边 风险分析
  558. @PostMapping(value = "fenxianTotal",produces = {"application/json;charset=UTF-8"})
  559. @ResponseBody
  560. public Object fenxianTotal(String year){
  561. String sql="SELECT \n" +
  562. " count(1) all_count, --风险总数\n" +
  563. " count(1) filter(where dispose_progress in('2')) as has_close_count, --已处置总数\n" +
  564. " fxdj --风险等级\n" +
  565. " FROM citylifeline.view_risk_collect\n" +
  566. " where \n" +
  567. " EXTRACT ( YEAR FROM pgsj ) = '"+year+"' \n" +
  568. " GROUP BY fxdj";
  569. return securitySupervis2Service.select2(sql);
  570. }
  571. //大屏左边第二个下边 突发事件处置率,已上报,已处置
  572. @PostMapping(value = "shijianChuZhiLu",produces = {"application/json;charset=UTF-8"})
  573. @ResponseBody
  574. public Object shijianChuZhiLu(String year){
  575. String sql="SELECT \n" +
  576. "count(1) all_count, --风险总数\n" +
  577. "count(1) filter(where dispose_progress in('2')) as has_close_count, --已处置总数\n" +
  578. "response_grade --风险等级\n" +
  579. "FROM zhjg_analysis_emergency\n" +
  580. "where \n" +
  581. "EXTRACT ( YEAR FROM find_time ) = '"+year+"' \n" +
  582. "GROUP BY response_grade";
  583. return securitySupervis2Service.select2(sql);
  584. }
  585. /**
  586. SELECT COUNT
  587. ( 1 ),--数量
  588. xzqhdm,--行政代码
  589. TYPE --场景类型1-燃气爆炸,2-城市内涝,3-供水爆管,4-第三方破坏,5-地下管线,6-桥梁倒塌,7-道路塌陷
  590. FROM
  591. citylifeline.view_jcd_collect
  592. GROUP BY
  593. xzqhdm,
  594. TYPE
  595. ORDER BY
  596. xzqhdm
  597. * @param type
  598. * @return
  599. */
  600. // 大屏中间选中监测点位后,区域图显示各区的各场景的监测点位数量
  601. @PostMapping(value = "jiancedianInfoCount",produces = {"application/json;charset=UTF-8"})
  602. @ResponseBody
  603. public Object jiancedianInfoCount(String type){
  604. String sql="SELECT COUNT\n" +
  605. " ( 1 ),--数量\n" +
  606. " xzqhdm,--行政代码\n" +
  607. " TYPE --场景类型1-燃气爆炸,2-城市内涝,3-供水爆管,4-第三方破坏,5-地下管线,6-桥梁倒塌,7-道路塌陷\n" +
  608. " \n" +
  609. "FROM\n" +
  610. " citylifeline.view_jcd_collect \n" +
  611. "GROUP BY\n" +
  612. " xzqhdm,\n" +
  613. "TYPE \n" +
  614. "ORDER BY\n" +
  615. " xzqhdm";
  616. return securitySupervis2Service.select2(sql);
  617. }
  618. /**
  619. SELECT COUNT
  620. ( 1 ),--数量
  621. area,--行政代码
  622. scene --场景类型1-燃气爆炸,2-城市内涝,3-供水爆管,4-第三方破坏,5-地下管线,6-桥梁倒塌,7-道路塌陷
  623. FROM
  624. zhjg_analysis_facility
  625. GROUP BY
  626. area,
  627. scene
  628. ORDER BY
  629. area
  630. * @param type
  631. * @return
  632. */
  633. // 大屏中间选中基础设备后的信息
  634. @PostMapping(value = "shebeisheshiInfoCount",produces = {"application/json;charset=UTF-8"})
  635. @ResponseBody
  636. public Object shebeisheshiInfoCount(String type){
  637. String sql="SELECT COUNT\n" +
  638. " ( 1 ),--数量\n" +
  639. " area,--行政代码\n" +
  640. " scene --场景类型1-燃气爆炸,2-城市内涝,3-供水爆管,4-第三方破坏,5-地下管线,6-桥梁倒塌,7-道路塌陷 \n" +
  641. "FROM\n" +
  642. " zhjg_analysis_facility\n" +
  643. "GROUP BY\n" +
  644. " area,\n" +
  645. "scene \n" +
  646. "ORDER BY\n" +
  647. " area";
  648. return securitySupervisService.select1(sql);
  649. }
  650. //大屏中间屏幕跳转点位信息
  651. // 屏幕中间根据行政区划和所属场景获取点位信息
  652. @PostMapping(value = "pointTopStatisticsDetail",produces = {"application/json;charset=UTF-8"})
  653. @ResponseBody
  654. public Object pointTopStatisticsDetail(String scene){
  655. List<String> sceneList = null;
  656. if (!StringUtils.isEmpty(scene)){
  657. String[] split = scene.split(",");
  658. sceneList=Arrays.asList(split);
  659. }
  660. return securitySupervis2Service.pointTopStatisticsDetail(sceneList);
  661. }
  662. //大屏中间屏幕跳转基础设备
  663. //屏幕中间根据行政区划和所属场景获取基础设备点位信息
  664. @PostMapping(value = "equipmentTopStatisticsDetail",produces = {"application/json;charset=UTF-8"})
  665. @ResponseBody
  666. public Object equipmentTopStatisticsDetail(String scene){
  667. List<String> sceneList = null;
  668. if (!StringUtils.isEmpty(scene)){
  669. String[] split = scene.split(",");
  670. sceneList=Arrays.asList(split);
  671. }
  672. return securitySupervisService.equipmentTopStatisticsDetail(sceneList);
  673. }
  674. }