You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

197 lines
8.7 KiB

  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.xujie.modules.inspection.mapper.InspectionRequestHeaderMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.xujie.modules.inspection.entity.InspectionRequestHeader">
  6. <id column="site" property="site" />
  7. <id column="request_no" property="requestNo" />
  8. <result column="request_date" property="requestDate" />
  9. <result column="need_inspect_date" property="needInspectDate" />
  10. <result column="supplier_no" property="supplierNo" />
  11. <result column="create_by" property="createBy" />
  12. <result column="create_date" property="createDate" />
  13. <result column="inspect_address" property="inspectAddress" />
  14. <result column="inspect_contract" property="inspectContract" />
  15. <result column="remark" property="remark" />
  16. <result column="status" property="status" />
  17. <result column="status_db" property="statusDb" />
  18. <result column="qc_operator" property="qcOperator" />
  19. <result column="inspect_date" property="inspectDate" />
  20. <result column="plan_start_date" property="planStartDate" />
  21. <result column="plan_end_date" property="planEndDate" />
  22. <result column="scheduled_date" property="scheduledDate" />
  23. <result column="scheduled_by" property="scheduledBy" />
  24. <result column="schedule_remark" property="scheduleRemark" />
  25. <result column="supplier_name" property="supplierName" />
  26. </resultMap>
  27. <!-- 通用查询结果列 -->
  28. <sql id="BaseColumnList">
  29. h.site, h.request_no, h.request_date, h.need_inspect_date, h.supplier_no, h.create_by, h.create_date, h.inspect_address, h.inspect_contract, h.remark, h.status, h.status_db, h.qc_operator, h.inspect_date, h.plan_start_date, h.plan_end_date, h.scheduled_date, h.scheduled_by, h.schedule_remark, s.supplier_name
  30. </sql>
  31. <select id="myPage" resultType="com.xujie.modules.inspection.entity.InspectionRequestHeader">
  32. select
  33. <include refid="BaseColumnList"/>
  34. from srm_inspection_request_header h
  35. left join srm_supplier s on h.supplier_no = s.supplier_no and h.site = s.site
  36. <where>
  37. <if test="query.site != null and query.site != '' "> and h.site = #{query.site}</if>
  38. <if test="query.requestNo != null and query.requestNo != '' "> and h.request_no like '%${query.requestNo}%'</if>
  39. <if test="query.supplierNo != null and query.supplierNo != '' "> and h.supplier_no like '%${query.supplierNo}%'</if>
  40. <if test="query.supplierName != null and query.supplierName != '' "> and s.supplier_name like '%${query.supplierName}%'</if>
  41. <if test="query.status != null and query.status != '' "> and h.status_db = #{query.status}</if>
  42. <if test="query.qcOperator != null and query.qcOperator != '' "> and h.qc_operator like '%${query.qcOperator}%'</if>
  43. <if test="query.createBy != null and query.createBy != '' "> and h.create_by like '%${query.createBy}%'</if>
  44. <if test="query.requestDateStart != null and query.requestDateStart != '' "> and h.request_date &gt;= #{query.requestDateStart}</if>
  45. <if test="query.requestDateEnd != null and query.requestDateEnd != '' "> and h.request_date &lt;= #{query.requestDateEnd}</if>
  46. <if test="query.needInspectDateStart != null and query.needInspectDateStart != '' "> and h.need_inspect_date &gt;= #{query.needInspectDateStart}</if>
  47. <if test="query.needInspectDateEnd != null and query.needInspectDateEnd != '' "> and h.need_inspect_date &lt;= #{query.needInspectDateEnd}</if>
  48. <if test="query.planStartDateStr != null and query.planStartDateStr != '' "> and h.plan_start_date &gt;= #{query.planStartDateStr}</if>
  49. <if test="query.planEndDateStr != null and query.planEndDateStr != '' "> and h.plan_end_date &lt;= #{query.planEndDateStr}</if>
  50. </where>
  51. order by h.request_date desc
  52. </select>
  53. <select id="queryPoPage" resultType="com.xujie.modules.inspection.data.InspectionRequestItemVO">
  54. SELECT
  55. pod.site,
  56. pod.order_no,
  57. pod.item_no,
  58. pod.part_no,
  59. pod.order_ref1,
  60. pod.order_ref2,
  61. pod.qty,
  62. pod.to_inspect_qty,
  63. p.part_desc AS partDesc,
  64. ISNULL(pod.to_inspect_qty,0)
  65. AS toInspectQty,
  66. (
  67. pod.qty - ISNULL(pod.to_inspect_qty,0)
  68. )
  69. AS waitInspectQty,
  70. ISNULL(pod.c_crd,pod.want_receive_date)
  71. AS crd,
  72. poh.ship_via AS shipMethod,
  73. poh.supplier_no,
  74. ss.supplier_name
  75. FROM PODetail pod
  76. INNER JOIN POHeader poh
  77. ON poh.order_no = pod.order_no
  78. AND poh.site = pod.site
  79. LEFT JOIN srm_supplier ss
  80. ON ss.site = pod.site
  81. AND ss.supplier_no = poh.supplier_no
  82. LEFT JOIN part p
  83. ON pod.part_no = p.part_no
  84. WHERE pod.site = #{query.site}
  85. AND poh.status NOT IN ('Closed','Cancelled')
  86. AND (
  87. pod.qty - ISNULL(pod.to_inspect_qty,0)
  88. ) > 0
  89. <if test="query.supplierNo != null and query.supplierNo != ''">
  90. AND poh.supplier_no = #{query.supplierNo}
  91. </if>
  92. <if test="query.orderNo != null and query.orderNo != ''">
  93. AND pod.order_no like concat('%',#{query.orderNo},'%')
  94. </if>
  95. <if test="query.partNo != null and query.partNo != ''">
  96. AND pod.part_no like concat('%',#{query.partNo},'%')
  97. </if>
  98. ORDER BY pod.id DESC
  99. </select>
  100. <update id="cancel">
  101. UPDATE srm_inspection_request_header
  102. SET status = '已取消',
  103. status_db = 'Cancelled'
  104. WHERE site = #{site}
  105. AND request_no = #{requestNo}
  106. </update>
  107. <select id="selectByRequestNo" resultType="com.xujie.modules.inspection.entity.InspectionRequestHeader">
  108. SELECT <include refid="BaseColumnList"/>
  109. FROM srm_inspection_request_header h
  110. LEFT JOIN srm_supplier s ON h.supplier_no = s.supplier_no AND h.site = s.site
  111. WHERE h.site = #{site}
  112. AND h.request_no = #{requestNo}
  113. </select>
  114. <select id="getQcPersonList" resultType="com.xujie.modules.inspection.entity.QcPersonList">
  115. SELECT username, user_display
  116. FROM sys_user
  117. <where>
  118. <if test="qc.userName != null and qc.userName != ''">
  119. AND username LIKE CONCAT('%', #{qc.userName}, '%')
  120. </if>
  121. <if test="qc.userDisplay != null and qc.userDisplay != ''">
  122. AND user_display LIKE CONCAT('%', #{qc.userDisplay}, '%')
  123. </if>
  124. </where>
  125. ORDER BY username
  126. </select>
  127. <delete id="deleteByRequestNo">
  128. DELETE FROM srm_inspection_request_header
  129. WHERE site = #{site}
  130. AND request_no = #{requestNo}
  131. </delete>
  132. <update id="confirm">
  133. UPDATE srm_inspection_request_header
  134. SET status = '已确认',
  135. status_db = 'Confirmed'
  136. WHERE site = #{site}
  137. AND request_no = #{requestNo}
  138. </update>
  139. <update id="audit">
  140. UPDATE srm_inspection_request_header
  141. SET status = '已审核',
  142. status_db = 'Audited'
  143. WHERE site = #{site}
  144. AND request_no = #{requestNo}
  145. </update>
  146. <update id="batchSchedule">
  147. UPDATE srm_inspection_request_header
  148. SET
  149. qc_operator = #{qcOperator},
  150. plan_start_date = #{planStartDate},
  151. plan_end_date = #{planEndDate},
  152. scheduled_date = #{scheduledDate},
  153. scheduled_by = #{scheduledBy},
  154. schedule_remark = #{remark},
  155. status = '已排程',
  156. status_db = 'Scheduled'
  157. WHERE request_no IN
  158. <foreach collection="requestNos"
  159. item="item"
  160. open="("
  161. separator=","
  162. close=")">
  163. #{item}
  164. </foreach>
  165. </update>
  166. <select id="queryScheduleView"
  167. resultType="com.xujie.modules.inspection.data.InspectionScheduleViewVO">
  168. SELECT
  169. h.request_no AS requestNo,
  170. s.supplier_name AS supplierName,
  171. h.inspect_address AS inspectAddress,
  172. h.plan_start_date AS planStartDate,
  173. h.plan_end_date AS planEndDate
  174. FROM srm_inspection_request_header h
  175. LEFT JOIN srm_supplier s
  176. ON h.supplier_no = s.supplier_no
  177. WHERE h.qc_operator = #{qcOperator}
  178. AND h.status_db = 'Scheduled'
  179. AND h.plan_start_date IS NOT NULL
  180. AND h.plan_end_date IS NOT NULL
  181. AND h.plan_end_date >= GETDATE()
  182. ORDER BY h.plan_start_date ASC
  183. </select>
  184. </mapper>