ProjectDao_getProjectManagerByDept.sql 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. SELECT
  2. project.id as id, project.create_name as create_name, project.create_by create_by, project.create_date create_date,
  3. project.update_name update_name, project.update_by update_by, project.update_date update_date, project.code code,
  4. project.name name, pm.realname as leader, project.zone zone, project.customer customer, project.status status,
  5. project.activetime activetime, project.addr addr, project.currentprocessstart currentprocessstart, project.currentprocessend currentprocessend,
  6. project.abbreviation abbreviation, project.type type, project.defnum1 defnum1, project.defnum2 defnum2, project.defnum3 defnum3,
  7. project.defnum4 defnum4, project.defnum5 defnum5, project.defnum6 defnum6, project.defnum7 defnum7, project.defnum8 defnum8,
  8. project.defnum9 defnum9, project.defnum10 defnum10, project.defstr1 defstr1, project.defstr2 defstr2, project.defstr3 defstr3,
  9. project.defstr4 defstr4, project.defstr5 defstr5, project.defstr6 defstr6, project.defstr7 defstr7, project.defstr8 defstr8,
  10. project.defstr9 defstr9, project.defstr10 defstr10, project.leadername leadername, project.customername customername,
  11. case when ufavorite.projectid is null then '0' else '1' end as favorite
  12. FROM t_b_project AS project
  13. LEFT JOIN t_b_project_favorite AS ufavorite ON ufavorite.projectid = project.id and ufavorite.userid = :paramDto.userid
  14. left join (select
  15. proj.id as projectid ,
  16. GROUP_CONCAT(user.realname) as realname,
  17. GROUP_CONCAT(user.userid) as userid
  18. from t_s_user_org uo
  19. left join t_s_depart dept on uo.org_id = dept.id
  20. left join t_b_project proj on proj.id = dept.projectid
  21. inner join (
  22. select bu.id as userid,realname
  23. from t_s_role_user ru
  24. left join t_s_base_user bu on ru.userid = bu.id
  25. left join t_s_role role on role.id = ru.roleid
  26. where role.rolecode = 'P_XMJL') user on user.userid = uo.user_id
  27. WHERE LENGTH(dept.org_code) = 6 and proj.id is not null
  28. group by projectid) PM on pm.projectid = project.id
  29. WHERE
  30. project.id = project.id
  31. <#if paramDto.id ?exists && paramDto.id ?length gt 0>
  32. AND project.id = :paramDto.id
  33. </#if>
  34. <#if paramDto.code ?exists && paramDto.code ?length gt 0>
  35. AND project.code LIKE CONCAT('%', :paramDto.code ,'%')
  36. </#if>
  37. <#if paramDto.name ?exists && paramDto.name ?length gt 0>
  38. AND project.name LIKE CONCAT('%', :paramDto.name ,'%')
  39. </#if>
  40. <#if paramDto.zone ?exists && paramDto.zone ?length gt 0>
  41. AND project.zone = :paramDto.zone
  42. </#if>
  43. <#if paramDto.customer ?exists && paramDto.customer ?length gt 0>
  44. AND project.customer = :paramDto.customer
  45. </#if>
  46. <#if paramDto.status ?exists && paramDto.status ?length gt 0>
  47. AND project.status = :paramDto.status
  48. </#if>
  49. <#if paramDto.type ?exists && paramDto.type ?length gt 0>
  50. AND project.type = :paramDto.type
  51. </#if>
  52. <#if paramDto.abbreviation ?exists && paramDto.abbreviation ?length gt 0>
  53. AND project.abbreviation LIKE CONCAT('%', :paramDto.abbreviation ,'%')
  54. </#if>
  55. <#if authSql ?exists && authSql ?length gt 0>
  56. ${authSql}
  57. </#if>
  58. <#if sortorder ?exists && sortorder ?length gt 0>
  59. order by ${sortorder}
  60. </#if>