ProjectMapper.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  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="cn.com.ty.lift.business.project.dao.mapper.ProjectMapper" >
  4. <resultMap id="BaseResultMap" type="cn.com.ty.lift.business.project.dao.entity.Project" >
  5. <id column="id" property="id" jdbcType="BIGINT" />
  6. <result column="mt_company_id" property="mtCompanyId" jdbcType="BIGINT" />
  7. <result column="pp_company_id" property="ppCompanyId" jdbcType="BIGINT" />
  8. <result column="pp_contact_id" property="ppContactId" jdbcType="BIGINT" />
  9. <result column="project_code" property="projectCode" jdbcType="CHAR" />
  10. <result column="project_name" property="projectName" jdbcType="VARCHAR" />
  11. <result column="province_code" property="provinceCode" jdbcType="CHAR" />
  12. <result column="province" property="province" jdbcType="VARCHAR" />
  13. <result column="city_code" property="cityCode" jdbcType="CHAR" />
  14. <result column="city" property="city" jdbcType="VARCHAR" />
  15. <result column="district_code" property="districtCode" jdbcType="CHAR" />
  16. <result column="district" property="district" jdbcType="VARCHAR" />
  17. <result column="address" property="address" jdbcType="VARCHAR" />
  18. <result column="num" property="num" jdbcType="INTEGER" />
  19. <result column="actual_num" property="actualNum" jdbcType="INTEGER" />
  20. <result column="project_usage" property="projectUsage" jdbcType="TINYINT" />
  21. <result column="start_date" property="startDate" jdbcType="DATE" />
  22. <result column="end_date" property="endDate" jdbcType="DATE" />
  23. <result column="project_status" property="projectStatus" jdbcType="TINYINT" />
  24. <result column="remarks" property="remarks" jdbcType="VARCHAR" />
  25. <result column="is_locked" property="isLocked" jdbcType="TINYINT" />
  26. <result column="creator_id" property="creatorId" jdbcType="BIGINT" />
  27. <result column="create_date" property="createDate" jdbcType="TIMESTAMP" />
  28. <result column="evaluate" property="evaluate" jdbcType="INTEGER" />
  29. <result column="end_remarks" property="endRemarks" jdbcType="VARCHAR" />
  30. <result column="if_monitor" property="ifMonitor" jdbcType="INTEGER" />
  31. <result column="all_project" property="allProject" jdbcType="INTEGER" />
  32. <result column="region_id" property="regionId" jdbcType="BIGINT" />
  33. </resultMap>
  34. <sql id="Base_Column_List" >
  35. id, mt_company_id, pp_company_id, pp_contact_id, project_code, project_name, province_code,
  36. province, city_code, city, district_code, district, address, num, actual_num, project_usage,
  37. start_date, end_date, project_status, remarks, is_locked, creator_id, create_date,
  38. evaluate, end_remarks, if_monitor, all_project, region_id
  39. </sql>
  40. <!-- 根据省,市,区,区域,区域主管,项目名称、项目编号、甲方名称、项目地址查询项目管理列表-->
  41. <select id="findByCondition" resultType="cn.com.ty.lift.business.project.dao.entity.model.response.ProjectResponse"
  42. parameterType="cn.com.ty.lift.business.project.dao.entity.model.request.ProjectRequest" >
  43. SELECT DISTINCT
  44. p.id AS id,
  45. p.project_code AS projectCode,
  46. p.project_name AS projectName,
  47. p.project_usage AS projectUsage,
  48. p.province AS province,
  49. p.city AS city,
  50. p.district AS district,
  51. p.district_code AS districtCode,
  52. p.num AS num,
  53. p.actual_num AS actualNum,
  54. p.address AS address,
  55. p.start_date AS startDate,
  56. p.end_date AS endDate,
  57. p.region_id AS regionId,
  58. p.pp_company_id AS ppCompanyId,
  59. p.pp_contact_id AS ppContactId,
  60. p.save AS save,
  61. p.locked AS locked,
  62. p.project_status AS projectStatus,
  63. r.area_name AS regionName,
  64. ui.name AS userName,
  65. pc.name AS companyName,
  66. if(isnull(c.id),'0','1') AS existContract
  67. FROM project p
  68. LEFT JOIN region r ON p.region_id = r.id
  69. LEFT JOIN user_info ui ON r.user_id = ui.user_id
  70. LEFT JOIN property_company pc ON p.pp_company_id = pc.id
  71. LEFT JOIN contracts c ON p.id = c.project_id
  72. WHERE p.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
  73. <if test="request.provinceCode!=null and request.provinceCode!=''">
  74. AND p.province_code= #{request.provinceCode,jdbcType=VARCHAR}
  75. </if>
  76. <if test="request.cityCode!=null and request.cityCode!=''">
  77. AND p.city_code = #{request.cityCode,jdbcType=VARCHAR}
  78. </if>
  79. <if test="request.districtCode!=null and request.districtCode!=''">
  80. AND p.district_code = #{request.districtCode,jdbcType=VARCHAR}
  81. </if>
  82. <if test="request.regionId!=null and request.regionId!=''">
  83. AND p.region_id = #{request.regionId,jdbcType=BIGINT}
  84. </if>
  85. <if test="request.userId!=null and request.userId!=''">
  86. AND r.user_id = #{request.userId,jdbcType=BIGINT}
  87. </if>
  88. <if test="request.condition!=null and request.condition!=''">
  89. AND (p.project_name LIKE CONCAT('%',#{request.condition,jdbcType=VARCHAR},'%')
  90. OR p.project_code LIKE CONCAT('%',#{request.condition,jdbcType=VARCHAR},'%')
  91. OR p.address LIKE CONCAT('%',#{request.condition,jdbcType=VARCHAR},'%'))
  92. </if>
  93. <if test="request.projectStatus!=null and request.projectStatus!=''">
  94. AND p.project_status = #{request.projectStatus,jdbcType=VARCHAR}
  95. </if>
  96. ORDER BY p.end_date
  97. </select>
  98. <!-- 根据甲方公司ID和项目状态查询公司项目管理列表-->
  99. <select id="findCompanyListByCondition" resultType="cn.com.ty.lift.business.project.dao.entity.model.response.ProjectResponse"
  100. parameterType="cn.com.ty.lift.business.project.dao.entity.model.request.ProjectRequest" >
  101. SELECT
  102. a.project_code AS projectCode,
  103. a.project_name AS projectName,
  104. a.province AS province,
  105. a.city AS city,
  106. a.district AS district,
  107. a.num AS num,
  108. a.actual_num AS actualNum,
  109. a.address AS address,
  110. a.start_date AS startDate,
  111. a.end_date AS endDate,
  112. b.name AS contactName,
  113. b.telephone AS contactTelephone
  114. FROM project a,
  115. property_contact b
  116. WHERE a.pp_contact_id = b.id
  117. <if test="request.ppCompanyId!=null and request.ppCompanyId!=''">
  118. AND a.pp_company_id = #{request.ppCompanyId,jdbcType=BIGINT}
  119. </if>
  120. <!--查询项目状态为2:服务中的项目-->
  121. <if test="request.projectStatus!=null and request.projectStatus!='' and request.projectStatus == 2">
  122. AND a.project_status = #{request.projectStatus,jdbcType=TINYINT}
  123. </if>
  124. <!--查询项目状态为3、4:停止服务和逾期的项目-->
  125. <if test="request.projectStatus!=null and request.projectStatus!='' and request.projectStatus == 4">
  126. AND (a.project_status = 3 or a.project_status = 4)
  127. </if>
  128. </select>
  129. <select id="queryProjectListByIdList" parameterType="java.util.List"
  130. resultType="cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenancePlanPrintResponse">
  131. SELECT p.id AS projectId,
  132. p.project_name AS projectName,
  133. p.project_code AS projectCode,
  134. p.mt_company_id AS mtCompanyId,
  135. mc.name AS mtCompanyName,
  136. pc.name AS ppCompanyName
  137. FROM project p
  138. LEFT JOIN maintenance_company mc ON p.mt_company_id = mc.id
  139. LEFT JOIN property_company pc ON p.pp_company_id = pc.id
  140. WHERE p.id IN
  141. <foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
  142. #{id}
  143. </foreach>
  144. </select>
  145. <!--app端 根据公司id查询公司下项目列表 -->
  146. <select id="findListByCompanyId" parameterType="cn.com.ty.lift.business.project.dao.entity.model.request.ProjectRequest"
  147. resultType="cn.com.ty.lift.business.project.dao.entity.model.response.ProjectCompanyResponse">
  148. SELECT
  149. p.id AS projectId,
  150. p.project_code AS projectCode,
  151. p.project_name AS projectName,
  152. p.project_usage AS projectUsage,
  153. p.actual_num AS actualNum,
  154. p.project_status AS projectStatus
  155. FROM project p
  156. WHERE 1=1
  157. <if test="request.mtCompanyId!=null and request.mtCompanyId!=''">
  158. AND p.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
  159. </if>
  160. <if test="request.projectName!=null and request.projectName!=''">
  161. AND p.project_name LIKE CONCAT('%',#{request.projectName,jdbcType=VARCHAR},'%')
  162. </if>
  163. </select>
  164. <!--app端 根据项目id查询项目下电梯列表 -->
  165. <select id="findListByProjectId" parameterType="cn.com.ty.lift.business.project.dao.entity.model.request.ProjectRequest"
  166. resultType="cn.com.ty.lift.business.project.dao.entity.model.response.ProjectLiftResponse">
  167. SELECT
  168. l.id AS id,
  169. l.registration_code AS registrationCode,
  170. l.lift_code AS liftCode,
  171. lb.name AS liftBrand,
  172. l.lift_type AS liftType,
  173. l.use_company_code AS useCompanyCode
  174. FROM project_lift_relevance plr
  175. LEFT JOIN lift l ON plr.lift_id = l.id
  176. LEFT JOIN lift_brand lb ON l.lift_brand = lb.code
  177. WHERE 1=1
  178. <if test="request.id!=null and request.id!=''">
  179. AND plr.project_id = #{request.id,jdbcType=BIGINT}
  180. </if>
  181. <if test="request.registrationCode!=null and request.registrationCode!=''">
  182. AND l.registration_code LIKE CONCAT('%',#{request.registrationCode,jdbcType=VARCHAR},'%')
  183. </if>
  184. </select>
  185. <!--app端 根据项目id查询项目详情 -->
  186. <select id="findProjectById" parameterType="java.lang.Long"
  187. resultType="cn.com.ty.lift.business.project.dao.entity.model.response.ProjectDetailResponse">
  188. SELECT t.*,
  189. ui.name AS clerkName,
  190. pcc.name AS companyContact,
  191. pcc.telephone AS telephone
  192. FROM (SELECT p.project_name AS projectName,
  193. p.project_usage AS projectUsage,
  194. p.address AS address,
  195. p.actual_num AS actualNum,
  196. p.num As num,
  197. p.province AS province,
  198. p.city AS city,
  199. p.district AS district,
  200. p.start_date AS startDate,
  201. p.end_date AS endDate,
  202. pc.name AS companyName,
  203. ui.name AS areaDirector,
  204. r.area_name AS areaName,
  205. r.clerk AS clerk_id,
  206. r.id AS regionId,
  207. p.pp_contact_id AS contact_id
  208. FROM project p
  209. LEFT JOIN region r ON p.region_id = r.id
  210. LEFT JOIN user_info ui ON r.user_id = ui.user_id
  211. LEFT JOIN property_company pc ON p.pp_company_id = pc.id
  212. WHERE 1=1
  213. <if test="id!=null and id!=''">
  214. AND p.id = #{id,jdbcType=BIGINT}
  215. </if>
  216. ) t
  217. LEFT JOIN property_contact pcc ON t.contact_id = pcc.id
  218. LEFT JOIN user_info ui ON ui.user_id = t.clerk_id
  219. </select>
  220. <select id="findProjectByIdAndCompanyId" parameterType="cn.com.ty.lift.business.project.dao.entity.model.request.ProjectRequest"
  221. resultType="cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenancePlanPrintResponse">
  222. SELECT p.id AS projectId,
  223. p.mt_company_id AS mtCompanyId,
  224. p.project_name AS projectName,
  225. p.project_code AS projectCode,
  226. pc.name AS ppCompanyName,
  227. mc.name AS mtCompanyName
  228. FROM project p
  229. LEFT JOIN property_company pc ON p.pp_company_id = pc.id
  230. LEFT JOIN maintenance_company mc ON p.mt_company_id = mc.id
  231. WHERE p.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
  232. AND p.id = #{request.id,jdbcType=BIGINT}
  233. </select>
  234. </mapper>