StatisticsCountService.kt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.persagy.server.services
  2. import com.persagy.server.datacenter.models.entities.task.CategoryStatistics
  3. import com.persagy.server.datacenter.models.entities.task.EquipmentTaskTwo
  4. import com.persagy.server.datacenter.models.entities.task.ModelScanTaskQuery
  5. import com.persagy.server.services.task.EquipScanTaskQueryService
  6. import com.persagy.server.services.task.ModelScanTaskQueryService
  7. import com.persagy.server.services.task.ModelScanTaskService
  8. import org.apache.ibatis.annotations.Select
  9. import org.springframework.stereotype.Service
  10. /**
  11. * Description
  12. *
  13. * @author:linhuili
  14. * @date:2021/10/27
  15. */
  16. @Service
  17. class StatisticsCountService {
  18. /**
  19. * 分类统计
  20. */
  21. fun categoryStatistics(projectId: String, id: String, equipId: String): ArrayList<CategoryStatistics> {
  22. //"SELECT class_code as code,(SELECT name FROM dict.def_class WHERE code = class_code LIMIT 1 ) as name, COUNT(class_code) FROM scantask.equip_scan_task WHERE task_parent_id = #{id} AND parent_id = #{equipId} GROUP BY class_code"
  23. return EquipScanTaskQueryService.categoryStatistics(projectId, id, equipId)
  24. }
  25. /**
  26. * 统计模型设备部件类型以及数量
  27. */
  28. fun categoryStatisticsModel(projectId: String, id: String, equipId: String): ArrayList<CategoryStatistics> {
  29. //"SELECT mt.class_code as code,(SELECT name FROM dict.def_class WHERE code = mt.class_code LIMIT 1 ) as name, COUNT(class_code) FROM scantask.model_scan_task mt WHERE mt.task_parent_id = #{id} AND mt.parent_id = #{equipId} GROUP BY mt.class_code"
  30. return ModelScanTaskQueryService.categoryStatisticsModel(projectId, id, equipId)
  31. }
  32. /**
  33. * 查询 当前模型文件下指定元空间内的设备
  34. */
  35. fun equipInISpace(projectId: String, modelId: String, bimId: String): ArrayList<EquipmentTaskTwo>? {
  36. //@Select("SELECT id,name,local_id as localId ,local_name as localName ,cad_id as cadId ,bim_id as bimId ,class_code as classCode FROM equipment e WHERE project_id = #{projectId} AND bim_location IS NOT null AND model_id = #{modelId} AND is_point_in_polygon_v2_str(split_part(e.bim_location, E',', 1) , split_part(e.bim_location, E',', 2) , (SELECT outline FROM zone_ispace WHERE project_id= #{projectId} AND bim_id = #{bimId})) AND (e.task_state IS null OR e.task_state = 0 OR task_state = -1) ORDER BY create_time , e.id")
  37. return ModelScanTaskService.equipInISpace(projectId, modelId, bimId)
  38. }
  39. /**
  40. * 查询 当前模型文件下指定元空间内的设备
  41. */
  42. fun equipInISpaceTwo(projectId: String, modelId: String, bimId: String, category: String): ArrayList<EquipmentTaskTwo>? {
  43. //@Select("SELECT id,name,local_id as localId ,local_name as localName ,cad_id as cadId ,bim_id as bimId ,class_code as classCode FROM equipment e WHERE project_id = #{projectId} AND bim_location IS NOT null AND model_id = #{modelId} AND is_point_in_polygon_v2_str(split_part(e.bim_location, E',', 1) , split_part(e.bim_location, E',', 2) , (SELECT outline FROM zone_ispace WHERE project_id= #{projectId} AND bim_id = #{bimId})) AND (e.task_state IS null OR e.task_state = 0 OR task_state = -1) ORDER BY create_time , e.id")
  44. return ModelScanTaskService.equipInISpaceTwo(projectId, modelId, bimId,category)
  45. }
  46. }