WorkOrderMaterialMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  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.iocoder.yudao.module.makeplan.dal.mysql.workorder.WorkOrderMaterialMapper">
  4. <resultMap id="BaseResultMap" type="cn.iocoder.yudao.module.makeplan.dal.dataobject.workorder.WorkOrderMaterialDO">
  5. <id column="id" property="id"/>
  6. <result column="WorkOrd" property="workOrd"/>
  7. <result column="Line" property="line"/>
  8. <result column="ItemNum" property="itemNum"/>
  9. <result column="Descr" property="descr"/>
  10. <result column="Op" property="op"/>
  11. <result column="OpDescr" property="opDescr"/>
  12. <result column="Batch" property="batch"/>
  13. <result column="Location" property="location"/>
  14. <result column="LotSerial" property="lotSerial"/>
  15. <result column="QtyRequired" property="qtyRequired"/>
  16. <result column="FrozenBOMQty" property="frozenBOMQty"/>
  17. <result column="QtyOrded" property="qtyOrded"/>
  18. <result column="QtyRec" property="qtyRec"/>
  19. <result column="background" property="background"/>
  20. <result column="QtyAllocated" property="qtyAllocated"/>
  21. <result column="QtytoIssue" property="qtytoIssue"/>
  22. <result column="QtyIssued" property="qtyIssued"/>
  23. <result column="QtyPicked" property="qtyPicked"/>
  24. <result column="QtyPosted" property="qtyPosted"/>
  25. <result column="QtyReturned" property="qtyReturned"/>
  26. <result column="QtyReject" property="qtyReject"/>
  27. <result column="Status" property="status"/>
  28. <result column="UnitCost" property="unitCost"/>
  29. <result column="StdCost" property="stdCost"/>
  30. <result column="Price" property="price"/>
  31. <result column="UM" property="um"/>
  32. <result column="IsMainMas" property="isMainMas"/>
  33. <result column="Domain" property="domain"/>
  34. <result column="Site" property="site"/>
  35. <result column="FromLocation" property="fromLocation"/>
  36. <result column="FromSite" property="fromSite"/>
  37. <result column="Project" property="project"/>
  38. <result column="ProductLine" property="productLine"/>
  39. <result column="Dimension1" property="dimension1"/>
  40. <result column="Dimension2" property="dimension2"/>
  41. <result column="IsActive" property="isActive"/>
  42. <result column="IsConfirm" property="isConfirm"/>
  43. <result column="IsChanged" property="isChanged"/>
  44. <result column="RecID" property="recID"/>
  45. <result column="WorkOrdMasterRecID" property="workOrdMasterRecID"/>
  46. <result column="BusinessID" property="businessID"/>
  47. <result column="EffTime" property="effTime"/>
  48. <result column="CreateTime" property="createTime"/>
  49. <result column="UpdateTime" property="updateTime"/>
  50. <result column="CreateUser" property="createUser"/>
  51. <result column="UpdateUser" property="updateUser"/>
  52. </resultMap>
  53. <!-- 分页查询工单物料明细 -->
  54. <select id="selectPageWithJoin" resultMap="BaseResultMap">
  55. SELECT
  56. wd.RecID as id,
  57. wd.Domain,
  58. wm.Batch,
  59. wd.WorkOrd,
  60. wd.Line,
  61. wd.ItemNum,
  62. im.Descr,
  63. wd.Op,
  64. CONCAT(CAST(wd.Op AS CHAR), ' ', IFNULL(rd.Descr, '')) as OpDescr,
  65. wd.QtyRequired,
  66. wd.Location,
  67. wd.LotSerial,
  68. wd.FrozenBOMQty,
  69. wm.QtyOrded,
  70. wd.WorkOrdMasterRecID,
  71. IFNULL(nd.QtyRec, 0) as QtyRec,
  72. CASE
  73. WHEN wd.IsActive = 0 THEN 'WorkOrd:#FF6C6C;ItemNum:#FF6C6C'
  74. ELSE 'WorkOrd:#FFFFFF;ItemNum:#FFFFFF'
  75. END as background,
  76. CAST(wd.IsActive AS SIGNED) as IsActive,
  77. wd.QtyAllocated,
  78. wd.QtytoIssue,
  79. wd.QtyIssued,
  80. wd.QtyPicked,
  81. wd.QtyPosted,
  82. wd.QtyReturned,
  83. wd.QtyReject,
  84. wd.Status,
  85. wd.UnitCost,
  86. wd.StdCost,
  87. wd.Price,
  88. wd.UM,
  89. wd.IsMainMas,
  90. wd.Site,
  91. wd.FromLocation,
  92. wd.FromSite,
  93. wd.Project,
  94. wd.ProductLine,
  95. wd.Dimension1,
  96. wd.Dimension2,
  97. wd.IsConfirm,
  98. wd.IsChanged,
  99. wd.BusinessID,
  100. wd.EffTime,
  101. wd.CreateTime,
  102. wd.UpdateTime,
  103. wd.CreateUser,
  104. wd.UpdateUser
  105. FROM WorkOrdDetail wd
  106. INNER JOIN WorkOrdMaster wm ON wd.Domain = wm.Domain AND wd.WorkOrd = wm.WorkOrd
  107. INNER JOIN ItemMaster im ON wd.Domain = im.Domain AND wd.ItemNum = im.ItemNum
  108. LEFT JOIN RoutingOpDetail rd ON wd.Domain = rd.Domain AND wd.ItemNum = rd.RoutingCode AND wd.Op = rd.Op
  109. LEFT JOIN NbrDetail nd ON wd.WorkOrd = nd.WorkOrd
  110. AND nd.ItemNum = wd.ItemNum
  111. AND nd.IsActive = wd.IsActive
  112. AND wd.Domain = nd.Domain
  113. AND UPPER(nd.Type) = 'SM'
  114. WHERE UPPER(wm.Status) IN ('', 'P', 'R', 'W', 'S')
  115. AND UPPER(IFNULL(wm.Typed, '')) IN ('', 'RW', 'TEST', 'TCN')
  116. <if test="reqVO.workOrd != null and reqVO.workOrd != ''">
  117. AND wd.WorkOrd LIKE CONCAT('%', #{reqVO.workOrd}, '%')
  118. </if>
  119. <if test="reqVO.itemNum != null and reqVO.itemNum != ''">
  120. AND wd.ItemNum LIKE CONCAT('%', #{reqVO.itemNum}, '%')
  121. </if>
  122. <if test="reqVO.location != null and reqVO.location != ''">
  123. AND wd.Location = #{reqVO.location}
  124. </if>
  125. <if test="reqVO.op != null and reqVO.op != ''">
  126. AND wd.Op = #{reqVO.op}
  127. </if>
  128. ORDER BY wd.RecID DESC
  129. </select>
  130. <!-- 查询工单物料明细列表 -->
  131. <select id="selectListWithJoin" resultMap="BaseResultMap">
  132. SELECT
  133. wd.RecID as id,
  134. wd.Domain,
  135. wm.Batch,
  136. wd.WorkOrd,
  137. wd.Line,
  138. wd.ItemNum,
  139. im.Descr,
  140. wd.Op,
  141. CONCAT(CAST(wd.Op AS CHAR), ' ', IFNULL(rd.Descr, '')) as OpDescr,
  142. wd.QtyRequired,
  143. wd.Location,
  144. wd.LotSerial,
  145. wd.FrozenBOMQty,
  146. wm.QtyOrded,
  147. wd.WorkOrdMasterRecID,
  148. IFNULL(nd.QtyRec, 0) as QtyRec,
  149. CASE
  150. WHEN wd.IsActive = 0 THEN 'WorkOrd:#FF6C6C;ItemNum:#FF6C6C'
  151. ELSE 'WorkOrd:#FFFFFF;ItemNum:#FFFFFF'
  152. END as background,
  153. CAST(wd.IsActive AS SIGNED) as IsActive
  154. FROM WorkOrdDetail wd
  155. INNER JOIN WorkOrdMaster wm ON wd.Domain = wm.Domain AND wd.WorkOrd = wm.WorkOrd
  156. INNER JOIN ItemMaster im ON wd.Domain = im.Domain AND wd.ItemNum = im.ItemNum
  157. LEFT JOIN RoutingOpDetail rd ON wd.Domain = rd.Domain AND wd.ItemNum = rd.RoutingCode AND wd.Op = rd.Op
  158. LEFT JOIN NbrDetail nd ON wd.WorkOrd = nd.WorkOrd
  159. AND nd.ItemNum = wd.ItemNum
  160. AND nd.IsActive = wd.IsActive
  161. AND wd.Domain = nd.Domain
  162. AND UPPER(nd.Type) = 'SM'
  163. WHERE UPPER(wm.Status) IN ('', 'P', 'R', 'W', 'S')
  164. AND UPPER(IFNULL(wm.Typed, '')) IN ('', 'RW', 'TEST', 'TCN')
  165. <if test="reqVO.workOrd != null and reqVO.workOrd != ''">
  166. AND wd.WorkOrd LIKE CONCAT('%', #{reqVO.workOrd}, '%')
  167. </if>
  168. <if test="reqVO.itemNum != null and reqVO.itemNum != ''">
  169. AND wd.ItemNum LIKE CONCAT('%', #{reqVO.itemNum}, '%')
  170. </if>
  171. <if test="reqVO.location != null and reqVO.location != ''">
  172. AND wd.Location = #{reqVO.location}
  173. </if>
  174. <if test="reqVO.op != null and reqVO.op != ''">
  175. AND wd.Op = #{reqVO.op}
  176. </if>
  177. ORDER BY wd.RecID DESC
  178. </select>
  179. <!-- 获取工单列表(用于下拉选择) -->
  180. <select id="selectWorkOrderList" resultType="java.util.HashMap">
  181. SELECT
  182. WorkOrd as value,
  183. WorkOrd as label
  184. FROM WorkOrdMaster
  185. WHERE UPPER(IFNULL(Status, '')) IN ('', 'P', 'R', 'W', 'S')
  186. AND UPPER(IFNULL(Typed, '')) IN ('', 'RW', 'TEST', 'TCN')
  187. ORDER BY WorkOrd DESC
  188. </select>
  189. <!-- 根据ID查询(忽略多租户) -->
  190. <select id="selectByIdIgnoreTenant" resultType="cn.iocoder.yudao.module.makeplan.dal.dataobject.workorder.WorkOrderMaterialDO">
  191. SELECT
  192. RecID as id,
  193. WorkOrd,
  194. Line,
  195. ItemNum,
  196. Op,
  197. Location,
  198. LotSerial,
  199. QtyRequired,
  200. QtyAllocated,
  201. QtytoIssue,
  202. QtyIssued,
  203. QtyPicked,
  204. QtyPosted,
  205. QtyReturned,
  206. QtyReject,
  207. Status,
  208. UnitCost,
  209. StdCost,
  210. Price,
  211. UM,
  212. IsMainMas,
  213. Domain,
  214. Site,
  215. FromLocation,
  216. FromSite,
  217. Project,
  218. ProductLine,
  219. Dimension1,
  220. Dimension2,
  221. IsActive,
  222. IsConfirm,
  223. IsChanged,
  224. RecID,
  225. WorkOrdMasterRecID,
  226. BusinessID,
  227. EffTime,
  228. CreateTime,
  229. UpdateTime,
  230. CreateUser,
  231. UpdateUser
  232. FROM WorkOrdDetail
  233. WHERE RecID = #{id}
  234. </select>
  235. <!-- 根据ID更新(忽略多租户) -->
  236. <update id="updateByIdIgnoreTenant">
  237. UPDATE WorkOrdDetail
  238. <set>
  239. <if test="entity.workOrd != null">WorkOrd = #{entity.workOrd},</if>
  240. <if test="entity.line != null">Line = #{entity.line},</if>
  241. <if test="entity.itemNum != null">ItemNum = #{entity.itemNum},</if>
  242. <if test="entity.op != null">Op = #{entity.op},</if>
  243. <if test="entity.location != null">Location = #{entity.location},</if>
  244. <if test="entity.lotSerial != null">LotSerial = #{entity.lotSerial},</if>
  245. <if test="entity.qtyRequired != null">QtyRequired = #{entity.qtyRequired},</if>
  246. <if test="entity.qtyAllocated != null">QtyAllocated = #{entity.qtyAllocated},</if>
  247. <if test="entity.qtytoIssue != null">QtytoIssue = #{entity.qtytoIssue},</if>
  248. <if test="entity.qtyIssued != null">QtyIssued = #{entity.qtyIssued},</if>
  249. <if test="entity.qtyPicked != null">QtyPicked = #{entity.qtyPicked},</if>
  250. <if test="entity.qtyPosted != null">QtyPosted = #{entity.qtyPosted},</if>
  251. <if test="entity.qtyReturned != null">QtyReturned = #{entity.qtyReturned},</if>
  252. <if test="entity.qtyReject != null">QtyReject = #{entity.qtyReject},</if>
  253. <if test="entity.status != null">Status = #{entity.status},</if>
  254. <if test="entity.unitCost != null">UnitCost = #{entity.unitCost},</if>
  255. <if test="entity.stdCost != null">StdCost = #{entity.stdCost},</if>
  256. <if test="entity.price != null">Price = #{entity.price},</if>
  257. <if test="entity.um != null">UM = #{entity.um},</if>
  258. <if test="entity.isMainMas != null">IsMainMas = #{entity.isMainMas},</if>
  259. <if test="entity.domain != null">Domain = #{entity.domain},</if>
  260. <if test="entity.site != null">Site = #{entity.site},</if>
  261. <if test="entity.fromLocation != null">FromLocation = #{entity.fromLocation},</if>
  262. <if test="entity.fromSite != null">FromSite = #{entity.fromSite},</if>
  263. <if test="entity.project != null">Project = #{entity.project},</if>
  264. <if test="entity.productLine != null">ProductLine = #{entity.productLine},</if>
  265. <if test="entity.dimension1 != null">Dimension1 = #{entity.dimension1},</if>
  266. <if test="entity.dimension2 != null">Dimension2 = #{entity.dimension2},</if>
  267. <if test="entity.isActive != null">IsActive = #{entity.isActive},</if>
  268. <if test="entity.isConfirm != null">IsConfirm = #{entity.isConfirm},</if>
  269. <if test="entity.isChanged != null">IsChanged = #{entity.isChanged},</if>
  270. <if test="entity.workOrdMasterRecID != null">WorkOrdMasterRecID = #{entity.workOrdMasterRecID},</if>
  271. <if test="entity.businessID != null">BusinessID = #{entity.businessID},</if>
  272. <if test="entity.effTime != null">EffTime = #{entity.effTime},</if>
  273. UpdateTime = NOW(),
  274. <if test="entity.updateUser != null">UpdateUser = #{entity.updateUser},</if>
  275. </set>
  276. WHERE RecID = #{entity.id}
  277. </update>
  278. </mapper>