EquipmentReportMapper.xml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.persagy.dmp.rwd.simple.dao.EquipmentReportMapper">
  4. <select id="queryExpectScrapCountByProjects" resultType="java.util.HashMap">
  5. select pj.id as projectId, pj.name as projectName, count(eq.id) as equipmentTotal,
  6. sum(case when
  7. ifnull(json_extract(eq.infos, '$.expectScrapDate'), '9999-12-31') &lt; #{scrapDate}
  8. then 1 else 0 end) as expectScrapTotal
  9. from dt_object pj left join dt_object eq on eq.project_id = pj.id
  10. and eq.obj_type = 'equipment' and eq.valid = 1
  11. where pj.obj_type = 'project' and pj.valid = 1
  12. <if test="projectIds != null and projectIds.size() &gt; 0" >
  13. and pj.project_id in
  14. <foreach collection="projectIds" item="projectId" open="(" close=")" separator="," >
  15. #{projectId}
  16. </foreach>
  17. </if>
  18. group by pj.id, pj.name
  19. </select>
  20. <select id="queryEquipmentCountByType" resultType="java.util.HashMap">
  21. select dt_define_type.major_code as majorCode, dt_define_type.system_code as systemCode,
  22. dt_define_type.code as code, dt_define_type.name as name,
  23. count(distinct dt_object.id) as total -- 容错处理,避免字典定义重复时数量异常
  24. from dt_define_type left join dt_object on dt_object.class_code = dt_define_type.code
  25. and dt_object.obj_type = 'equipment' and dt_object.valid = 1
  26. <if test="projectIds != null and projectIds.size() &gt; 0" >
  27. and dt_object.project_id in
  28. <foreach collection="projectIds" item="projectId" open="(" close=")" separator="," >
  29. #{projectId}
  30. </foreach>
  31. </if>
  32. where dt_define_type.obj_type = 'equipment' and dt_define_type.code != 'equipment'
  33. and dt_define_type.valid = 1
  34. <if test="projectIds != null and projectIds.size() &gt; 0" >
  35. and dt_define_type.project_id in
  36. <foreach collection="projectIds" item="projectId" open="(" close=")" separator="," >
  37. #{projectId}
  38. </foreach>
  39. </if>
  40. group by dt_define_type.major_code, dt_define_type.system_code,
  41. dt_define_type.code, dt_define_type.name;
  42. </select>
  43. <select id="queryObjectCountByObjInfos" resultType="java.util.Map">
  44. SELECT
  45. <foreach collection="groups" item="group" separator=",">
  46. <if test="null!=group.fieldFlag and group.fieldFlag">
  47. ${group.column} AS #{group.field}
  48. </if>
  49. <if test="null!=group.fieldFlag and !group.fieldFlag">
  50. JSON_UNQUOTE(JSON_EXTRACT(infos, CONCAT('$.',#{group.column}))) AS #{group.field}
  51. </if>
  52. </foreach>,
  53. COUNT(id) AS count
  54. FROM dt_object
  55. WHERE valid=TRUE
  56. <if test="null!=param.objTypes and param.objTypes.size()>0">
  57. <foreach collection="param.objTypes" item="objType" open="AND obj_type IN(" close=")" separator=",">
  58. #{objType}
  59. </foreach>
  60. </if>
  61. <if test="null!=param.classCodes and param.classCodes.size()>0">
  62. <foreach collection="param.classCodes" item="classCode" open="AND class_code IN(" close=")" separator=",">
  63. #{classCode}
  64. </foreach>
  65. </if>
  66. <if test="null!=param.projectId and param.projectId.length>0">
  67. AND project_id=#{param.projectId}
  68. </if>
  69. <if test="null!=param.groupCode and param.groupCode.length>0">
  70. AND group_code=#{param.groupCode}
  71. </if>
  72. <foreach collection="groups" item="group">
  73. <if test="null!=group.fieldFlag and group.fieldFlag">
  74. AND ${group.column} IS NOT NULL
  75. </if>
  76. <if test="null!=group.fieldFlag and !group.fieldFlag">
  77. AND JSON_UNQUOTE(JSON_EXTRACT(infos, CONCAT('$.',#{group.column}))) IS NOT NULL
  78. </if>
  79. </foreach>
  80. GROUP BY
  81. <foreach collection="groups" item="group" separator=",">
  82. <if test="null!=group.fieldFlag and group.fieldFlag">
  83. ${group.column}
  84. </if>
  85. <if test="null!=group.fieldFlag and !group.fieldFlag">
  86. JSON_UNQUOTE(JSON_EXTRACT(infos, CONCAT('$.',#{group.column})))
  87. </if>
  88. </foreach>
  89. ORDER BY count DESC
  90. </select>
  91. <select id="queryComponentsCountByEquipId" resultType="java.util.Map">
  92. SELECT re.obj_from as 'id',count(1) as count,obj.class_code, df.system_code as 'equip_category',df.`name` AS category_name
  93. FROM dt_object obj
  94. join dt_relation re on obj.id = re.obj_to
  95. join dt_define_type df on df.code = obj.class_code
  96. where obj.valid=TRUE and obj.obj_type='component' and re.rel_code='Eq2Ec'
  97. <if test="null!=equipmentId and equipmentId.length>0">
  98. AND re.obj_from=#{equipmentId}
  99. </if>
  100. <if test="null!=projectId and projectId.length>0">
  101. AND obj.project_id=#{projectId}
  102. </if>
  103. <if test="null!=groupCode and groupCode.length>0">
  104. AND obj.group_code=#{groupCode}
  105. </if>
  106. GROUP BY obj.class_code,re.obj_from,df.system_code,df.name
  107. </select>
  108. </mapper>