ProjectMapper.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  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.hssx.cloudmodel.mapper.ProjectMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.hssx.cloudmodel.entity.Project">
  6. <id column="id" property="id" />
  7. <result column="project_name" property="projectName" />
  8. <result column="project_no" property="projectNo" />
  9. <result column="start_time" property="startTime" />
  10. <result column="end_time" property="endTime" />
  11. <result column="content" property="content" />
  12. <result column="creator_id" property="creatorId" />
  13. <result column="creator" property="creator" />
  14. <result column="is_delete" property="isDelete" />
  15. <result column="owner_company" property="ownerCompany" />
  16. <result column="owner_company_name" property="ownerCompanyName" />
  17. <result column="indate" property="indate" />
  18. <result column="manager_id" property="managerId" />
  19. <result column="manager" property="manager" />
  20. </resultMap>
  21. <resultMap id="BaseResultMapList" type="com.hssx.cloudmodel.entity.vo.ProjectVO">
  22. <id column="id" property="id" />
  23. <result column="project_name" property="projectName" />
  24. <result column="project_no" property="projectNo" />
  25. <result column="start_time" property="startTime" />
  26. <result column="end_time" property="endTime" />
  27. <result column="content" property="content" />
  28. <result column="creator_id" property="creatorId" />
  29. <result column="creator" property="creator" />
  30. <result column="is_delete" property="isDelete" />
  31. <result column="owner_company" property="ownerCompany" />
  32. <result column="owner_company_name" property="ownerCompanyName" />
  33. <result column="indate" property="indate" />
  34. <result column="manager_id" property="managerId" />
  35. <result column="manager" property="manager" />
  36. <!--以下是分页插件的一对多-->
  37. <collection property="customCompanies" javaType="java.util.List" ofType="com.hssx.cloudmodel.entity.CustomCompany"
  38. select="queryCustomCompaniesId" column="id">
  39. </collection>
  40. </resultMap>
  41. <!-- 以上一对多的映射-->
  42. <resultMap id="getCustomCompany" type="com.hssx.cloudmodel.entity.CustomCompany">
  43. <result column="company_id" property="companyId" />
  44. <result column="company_name" property="companyName" />
  45. </resultMap>
  46. <select id="getProjectListByUid" resultMap="BaseResultMapList">
  47. select
  48. p.id id,p.project_name project_name, p.creator creator,tbc.id owner_company,
  49. tbc.company_name owner_company_name,p.manager_id manager_id,p.manager manager,
  50. p.indate indate
  51. from
  52. tb_project p
  53. left join tb_project_user pu
  54. on p.id = pu.project_id
  55. left join tb_company tbc
  56. on p.owner_company = tbc.id
  57. left join tb_project_approve tpa
  58. on tpa.project_id = p.id
  59. <where>
  60. <!--<if test="currentUser.id != 1">
  61. pu.user_id = #{currentUser.id} OR p.`creator_id` = #{currentUser.id} OR p.`manager_id` = #{currentUser.id} OR tpa.approver_id = #{currentUser.id}
  62. </if>-->
  63. <if test="keyName != null and keyName != ''">
  64. AND p.project_name like concat('%',#{keyName},'%')
  65. </if>
  66. </where>
  67. GROUP BY p.id
  68. order by p.id desc
  69. </select>
  70. <select id="getProjectListByUidInProjectIds" resultMap="BaseResultMapList">
  71. select
  72. p.id id,p.project_name project_name, p.creator creator,tbc.id owner_company,
  73. tbc.company_name owner_company_name,p.manager_id manager_id,p.manager manager,
  74. p.indate indate
  75. from
  76. tb_project p
  77. left join tb_project_user pu
  78. on p.id = pu.project_id
  79. left join tb_company tbc
  80. on p.owner_company = tbc.id
  81. left join tb_project_approve tpa
  82. on tpa.project_id = p.id
  83. <where>
  84. p.id in <foreach collection="list" separator="," close=")" item="item" open="(" index="index">
  85. #{item}
  86. </foreach>
  87. <!--<if test="currentUser.id != 1">
  88. pu.user_id = #{currentUser.id} OR p.`creator_id` = #{currentUser.id} OR p.`manager_id` = #{currentUser.id} OR tpa.approver_id = #{currentUser.id}
  89. </if>-->
  90. <if test="keyName != null and keyName != ''">
  91. AND p.project_name like concat('%',#{keyName},'%')
  92. </if>
  93. </where>
  94. GROUP BY p.id
  95. order by p.id desc
  96. </select>
  97. <!--一对多的子查询 queryCustomCompaniesId-->
  98. <select id="queryCustomCompaniesId" resultMap="getCustomCompany">
  99. SELECT
  100. c.company_id company_id,c.company_name company_name
  101. from
  102. tb_project p
  103. RIGHT JOIN
  104. tb_custom_company c
  105. on
  106. c.project_id = p.id
  107. WHERE
  108. p.id = #{id}
  109. GROUP BY c.company_id
  110. </select>
  111. <!-- 通用查询结果列 -->
  112. <sql id="Base_Column_List">
  113. id, project_name, project_no, start_time, end_time, content, creator_id, creator, is_delete, owner_company, owner_company_name, indate, manager_id, manager
  114. </sql>
  115. <resultMap id="BaseResultMapVO" type="com.hssx.cloudmodel.entity.vo.ProjectVO">
  116. <id column="id" property="id" />
  117. <result column="project_name" property="projectName" />
  118. <result column="project_no" property="projectNo" />
  119. <result column="creator_id" property="creatorId" />
  120. <result column="creator" property="creator" />
  121. <result column="is_delete" property="isDelete" />
  122. <result column="pindate" property="indate" />
  123. <result column="manager_id" property="managerId" />
  124. <result column="manager" property="manager" />
  125. <result column="owner_company" property="ownerCompany" />
  126. <result column="owner_company_name" property="ownerCompanyName" />
  127. <collection property="models" ofType="com.hssx.cloudmodel.entity.Mould">
  128. <id column="model_id" property="id" />
  129. <result column="model_no" property="modelNo" />
  130. <result column="model_name" property="modelName" />
  131. <result column="produce_company_id" property="produceCompanyId" />
  132. <result column="belong_project_grade" property="belongProjectGrade" />
  133. <result column="produce_company_name" property="produceCompanyName" />
  134. </collection>
  135. <collection property="approves" ofType="com.hssx.cloudmodel.entity.ProjectApprove">
  136. <result column="approver_id" property="approverId" />
  137. <result column="approver_name" property="approverName" />
  138. <result column="company_id" property="companyId" />
  139. <result column="company_name" property="companyName" />
  140. <result column="subordinate_type" property="subordinateType" />
  141. <result column="project_id" property="projectId" />
  142. </collection>
  143. <collection property="customCompanies" ofType="com.hssx.cloudmodel.entity.CustomCompany">
  144. <result column="companyid" property="companyId" />
  145. <result column="companyname" property="companyName" />
  146. </collection>
  147. </resultMap>
  148. <select id="getProjectById" resultMap="BaseResultMapVO">
  149. select
  150. p.id id, p.project_name project_name, p.project_no project_no, p.creator_id creator_id,p.manager_id manager_id,p.manager manager,
  151. p.creator creator, tbp.id owner_company,tbp.company_name owner_company_name,p.indate pindate,m.belong_project_grade,
  152. m.id model_id, m.model_no model_no,m.model_name model_name,a.approver_id approver_id,a.approver_name approver_name,a.subordinate_type subordinate_type,
  153. c.company_id companyid,c.company_name companyname,tbc.company_name produce_company_name,tbc.id produce_company_id
  154. from
  155. tb_project p
  156. left join tb_mould m
  157. on p.id = m.project_id
  158. left join tb_project_approve a
  159. on p.id = a.project_id
  160. left join tb_custom_company c
  161. on c.project_id = p.id
  162. LEFT JOIN tb_company tbc
  163. ON tbc.`id` = m.`produce_company_id`
  164. left join tb_company tbp
  165. on tbp.id = p.owner_company
  166. where
  167. p.id = #{id}
  168. </select>
  169. <resultMap id="UserResultMap" type="com.hssx.cloudmodel.entity.User">
  170. <id column="id" property="id" />
  171. <result column="username" property="username" />
  172. <result column="role_type" property="roleType" />
  173. <result column="company_id" property="companyId" />
  174. <result column="head_imgurl" property="headImgurl" />
  175. <result column="subordinate_type" property="subordinateType" />
  176. </resultMap>
  177. <select id="getProjectUserById" resultMap="UserResultMap">
  178. select
  179. u.id id, u.username username, u.indate indate, u.head_imgurl head_imgurl, u.subordinate_type subordinate_type
  180. from
  181. tb_project_user pu
  182. RIGHT join
  183. tb_user u
  184. on
  185. pu.user_id = u.id
  186. where
  187. pu.project_id = #{id} and pu.role_type IS NULL
  188. </select>
  189. <resultMap id="BaseResultMapPowerList" type="com.hssx.cloudmodel.entity.vo.ProjectVO">
  190. <id column="id" property="id" />
  191. <result column="project_name" property="projectName" />
  192. <result column="project_id" property="projectId" />
  193. <result column="user_id" property="userId" />
  194. <result column="company_name" property="companyName" />
  195. <result column="powerString" property="powerString" />
  196. </resultMap>
  197. <select id="selectUserPowerList1" resultMap="BaseResultMapPowerList">
  198. SELECT
  199. tbpu.user_id ,tbpu.project_id ,GROUP_CONCAT(tbpu.power_type) powerString,
  200. tbu.username ,tbc.company_name,
  201. tbp.project_name
  202. FROM `tb_power` tbpu
  203. left join
  204. tb_project tbp
  205. on tbp.id = tbpu.project_id
  206. left join
  207. tb_user tbu
  208. on tbpu.user_id = tbu.id
  209. left join
  210. tb_company tbc
  211. on tbc.id = tbu.company_id
  212. <where>
  213. <if test="user.projectId != null">
  214. tbpu.project_id = #{user.projectId}
  215. </if>
  216. <if test="user.companyId != null">
  217. tbu.company_id = #{user.companyId}
  218. </if>
  219. <if test="user.keyName != null and user.keyName != ''">
  220. tbu.username like concat('%',#{user.keyName},'%')
  221. </if>
  222. <if test="type == 0">
  223. tbp.creator_id = #{user.id}
  224. </if>
  225. <if test="type == 1">
  226. tbp.manager_id = #{user.id}
  227. </if>
  228. </where>
  229. GROUP BY tbpu.user_id ,tbpu.project_id;
  230. order by tbpu.user_id
  231. </select>
  232. <resultMap id="BaseResultMapPower" type="com.hssx.cloudmodel.entity.vo.ProjectVO">
  233. <id column="id" property="id" />
  234. <result column="project_name" property="projectName" />
  235. <result column="project_id" property="projectId" />
  236. <result column="user_id" property="userId" />
  237. <result column="username" property="username"/>
  238. <result column="company_name" property="companyName" />
  239. <result column="powerString" property="powerString" />
  240. <collection property="powers" javaType="java.util.List" ofType="com.hssx.cloudmodel.entity.Power"
  241. select="queryPowerByUserIdAndProject" column="{userId = user_id,projectId = project_id}">
  242. </collection>
  243. </resultMap>
  244. <resultMap id="BasePower" type="com.hssx.cloudmodel.entity.Power">
  245. <result column="power_type" property="powerType" />
  246. <result column="user_id" property="userId" />
  247. <result column="project_id" property="projectId" />
  248. </resultMap>
  249. <select id="selectUserPowerList" resultMap="BaseResultMapPower">
  250. SELECT
  251. tbpu.user_id user_id,tbpu.project_id project_id,tbu.username username,tbc.company_name,
  252. tbp.project_name
  253. FROM
  254. `tb_project_user` tbpu
  255. LEFT JOIN
  256. tb_project tbp
  257. ON tbp.id = tbpu.project_id
  258. LEFT JOIN
  259. tb_user tbu
  260. ON tbpu.user_id = tbu.id
  261. LEFT JOIN
  262. tb_company tbc
  263. ON tbc.id = tbu.company_id
  264. <where>
  265. <if test="user.projectId != null and user.projectId !=''">
  266. AND tbpu.project_id = #{user.projectId}
  267. </if>
  268. <if test="user.cId != null and user.cId !=''">
  269. AND tbu.company_id = #{user.cId}
  270. </if>
  271. <if test="user.keyName != null and user.keyName != ''">
  272. AND tbu.username like concat('%',#{user.keyName},'%')
  273. </if>
  274. <if test="type == 0">
  275. AND tbp.creator_id = #{user.id}
  276. </if>
  277. <if test="type == 1">
  278. AND tbp.manager_id = #{user.id}
  279. </if>
  280. </where>
  281. </select>
  282. <!--一对多的子查询 queryCustomCompaniesId-->
  283. <select id="queryPowerByUserIdAndProject" resultMap="BasePower" parameterType="java.util.Map">
  284. SELECT
  285. tbpw.user_id,tbpw.project_id,tbpw.power_type
  286. from
  287. `tb_power` tbpw
  288. WHERE
  289. tbpw.project_id = #{projectId}
  290. and
  291. tbpw.user_id =#{userId}
  292. </select>
  293. </mapper>