WorkOrderMapper.xml 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <!DOCTYPE mapper
  2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.bosshand.virgo.api.dao.WorkOrderDao">
  5. <resultMap type="com.bosshand.virgo.api.model.WorkOrder" id="workOrderResult">
  6. <id column="id" property="id"/>
  7. <result column="projectId" property="projectId"/>
  8. <result column="projectItemTargetRoomIds" property="projectItemTargetRoomIds"/>
  9. <result column="tenantType" property="tenantType"/>
  10. <result column="merchantId" property="merchantId"/>
  11. <result column="merchantName" property="merchantName"/>
  12. <result column="clientId" property="clientId"/>
  13. <result column="clientName" property="clientName"/>
  14. <result column="userId" property="userId"/>
  15. <result column="contractId" property="contractId"/>
  16. <result column="contractCode" property="contractCode"/>
  17. <result column="deviceName" property="deviceName"/>
  18. <result column="followUpPerson" property="followUpPerson"/>
  19. <result column="followUpPersonName" property="followUpPersonName"/>
  20. <result column="followUpPersonPhone" property="followUpPersonPhone"/>
  21. <result column="workWay" property="workWay"/>
  22. <result column="compendious" property="compendious"/>
  23. <result column="picture" property="picture"/>
  24. <result column="date" property="date"/>
  25. <result column="name" property="name"/>
  26. <result column="type" property="type"/>
  27. <result column="status" property="status"/>
  28. <result column="attachment" property="attachment"/>
  29. <result column="data" property="data"/>
  30. </resultMap>
  31. <insert id="insert" parameterType="com.bosshand.virgo.api.model.WorkOrder" useGeneratedKeys="true" keyProperty="id">
  32. INSERT INTO work_order(`projectId`, `projectItemTargetRoomIds`, `tenantType`, `merchantId`, `clientId`, `userId`, `contractId`, `contractCode`, `deviceName`, `followUpPerson`,
  33. `workWay`, `compendious`, `picture`, `date`, `name`, `type`, `status`, `attachment`, `data`)
  34. VALUES (#{projectId}, #{projectItemTargetRoomIds}, #{tenantType}, #{merchantId}, #{clientId}, #{userId}, #{contractId}, #{contractCode}, #{deviceName}, #{followUpPerson},
  35. #{workWay}, #{compendious}, #{picture}, now(), #{name}, #{type}, #{status}, #{attachment}, #{data})
  36. </insert>
  37. <delete id="delete">
  38. DELETE from work_order where id=#{id}
  39. </delete>
  40. <update id="update" parameterType="com.bosshand.virgo.api.model.WorkOrder">
  41. UPDATE work_order
  42. <trim prefix="set" suffixOverrides=",">
  43. <if test="projectId!=0">projectId=#{projectId},</if>
  44. <if test="projectItemTargetRoomIds!=null">projectItemTargetRoomIds=#{projectItemTargetRoomIds},</if>
  45. <if test="tenantType!=null">tenantType=#{tenantType},</if>
  46. <if test="merchantId!=0">merchantId=#{merchantId},</if>
  47. <if test="clientId!=0">clientId=#{clientId},</if>
  48. <if test="userId!=0">userId=#{userId},</if>
  49. <if test="contractId!=0">contractId=#{contractId},</if>
  50. <if test="contractCode!=null">contractCode=#{contractCode},</if>
  51. <if test="deviceName!=null">deviceName=#{deviceName},</if>
  52. <if test="followUpPerson!=0">followUpPerson=#{followUpPerson},</if>
  53. <if test="workWay!=null">workWay=#{workWay},</if>
  54. <if test="compendious!=null">compendious=#{compendious},</if>
  55. <if test="picture!=null">picture=#{picture},</if>
  56. <if test="name!=null">name=#{name},</if>
  57. <if test="type!=null">type=#{type},</if>
  58. <if test="status!=null">status=#{status},</if>
  59. <if test="attachment!=null">attachment=#{attachment},</if>
  60. <if test="data!=null">data=#{data},</if>
  61. </trim>
  62. WHERE id=#{id}
  63. </update>
  64. <sql id="query">
  65. SELECT a.*, b.name as followUpPersonName, b.phone as followUpPersonPhone, c.name as merchantName, d.name as clientName FROM work_order a
  66. LEFT JOIN mgr_user b ON a.followUpPerson = b.id
  67. LEFT JOIN merchant c ON a.merchantId = c.id
  68. LEFT JOIN mgr_client d ON a.clientId = d.id
  69. </sql>
  70. <select id="get" resultMap="workOrderResult">
  71. <include refid="query"/>
  72. where a.id = #{id}
  73. </select>
  74. <select id="getTotalCount" parameterType="com.bosshand.virgo.api.model.WorkOrder" resultType="Integer">
  75. SELECT count(*) FROM work_order
  76. <where>
  77. <if test="projectId!=0">and projectId=#{projectId}</if>
  78. <if test="projectItemTargetRoomIds != null">and
  79. <foreach item="projectItemTargetRoomId" collection="projectItemTargetRoomIds.split(',')" open="(" separator=" or " close=")">
  80. FIND_IN_SET (#{projectItemTargetRoomId}, projectItemTargetRoomIds)
  81. </foreach>
  82. </if>
  83. <if test="tenantType!=null">and tenantType=#{tenantType}</if>
  84. <if test="merchantId!=0">and merchantId=#{merchantId}</if>
  85. <if test="clientId!=0">and clientId=#{clientId}</if>
  86. <if test="userId!=0">and userId=#{userId}</if>
  87. <if test="contractId!=0">and contractId=#{contractId}</if>
  88. <if test="contractCode!=null">and contractCode=#{contractCode}</if>
  89. <if test="deviceName!=null">and deviceName=#{deviceName}</if>
  90. <if test="followUpPerson!=0">and followUpPerson=#{followUpPerson}</if>
  91. <if test="workWay!=null">and workWay=#{workWay}</if>
  92. <if test="compendious!=null">and compendious=#{compendious}</if>
  93. <if test="picture!=null">and picture=#{picture}</if>
  94. <if test="name!=null">and name=#{name}</if>
  95. <if test="type!=null">and type=#{type}</if>
  96. <if test="status!=null">and status=#{status}</if>
  97. <if test="statusList!=null"> and status in
  98. <foreach item="item" index="index" collection="statusList" open="(" separator="," close=")">
  99. #{item}
  100. </foreach>
  101. </if>
  102. <if test="attachment!=null">and attachment=#{attachment}</if>
  103. <if test="data!=null">and data=#{data}</if>
  104. </where>
  105. </select>
  106. <select id="getLimit" resultMap="workOrderResult">
  107. <include refid="query"/>
  108. <where>
  109. <if test="p.projectId!=0">and a.projectId=#{p.projectId}</if>
  110. <if test="p.projectItemTargetRoomIds != null">and
  111. <foreach item="projectItemTargetRoomId" collection="p.projectItemTargetRoomIds.split(',')" open="(" separator=" or " close=")">
  112. FIND_IN_SET (#{projectItemTargetRoomId}, a.projectItemTargetRoomIds)
  113. </foreach>
  114. </if>
  115. <if test="p.tenantType!=null">and a.tenantType=#{p.tenantType}</if>
  116. <if test="p.merchantId!=0">and a.merchantId=#{p.merchantId}</if>
  117. <if test="p.clientId!=0">and a.clientId=#{p.clientId}</if>
  118. <if test="p.userId!=0">and a.userId=#{p.userId}</if>
  119. <if test="p.contractId!=0">and a.contractId=#{p.contractId}</if>
  120. <if test="p.contractCode!=null">and a.contractCode=#{p.contractCode}</if>
  121. <if test="p.deviceName!=null">and a.deviceName=#{p.deviceName}</if>
  122. <if test="p.followUpPerson!=0">and a.followUpPerson=#{p.followUpPerson}</if>
  123. <if test="p.workWay!=null">and a.workWay=#{p.workWay}</if>
  124. <if test="p.compendious!=null">and a.compendious=#{p.compendious}</if>
  125. <if test="p.picture!=null">and a.picture=#{p.picture}</if>
  126. <if test="p.name!=null">and a.name=#{p.name}</if>
  127. <if test="p.type!=null">and a.type=#{p.type}</if>
  128. <if test="p.status!=null">and a.status=#{p.status}</if>
  129. <if test="p.statusList!=null"> and a.status in
  130. <foreach item="item" index="index" collection="p.statusList" open="(" separator="," close=")">
  131. #{item}
  132. </foreach>
  133. </if>
  134. <if test="p.attachment!=null">and a.attachment=#{p.attachment}</if>
  135. <if test="p.data!=null">and a.data=#{p.data}</if>
  136. </where>
  137. order by a.date desc
  138. limit #{currIndex} , #{pageSize}
  139. </select>
  140. <select id="getList" resultMap="workOrderResult">
  141. SELECT * FROM work_order
  142. <where>
  143. <if test="projectItemTargetRoomIds != null">and
  144. <foreach item="projectItemTargetRoomId" collection="projectItemTargetRoomIds.split(',')" open="(" separator=" or " close=")">
  145. FIND_IN_SET (#{projectItemTargetRoomId}, projectItemTargetRoomIds)
  146. </foreach>
  147. </if>
  148. </where>
  149. </select>
  150. <select id="projectCount" resultType="map">
  151. SELECT COUNT(`id`) as totalNumber, COUNT(if(`status`=3,true,null)) as completedNumber, COUNT(if(`status`!=3,true,null)) as incompleteNumber
  152. FROM work_order WHERE projectId = #{projectId} and type in (${types})
  153. </select>
  154. </mapper>