赫艾后端
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.

6404 lines
286 KiB

6 months ago
1 month ago
1 month ago
1 month ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
1 month ago
6 months ago
6 months ago
2 months ago
6 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
3 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
2 months ago
2 months ago
6 months ago
3 months ago
6 months ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
3 months ago
2 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
2 months ago
2 months ago
2 months ago
6 months ago
6 months ago
6 months ago
7 months ago
6 months ago
2 months ago
3 months ago
6 months ago
6 months ago
6 months ago
2 months ago
1 month ago
  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.heai.modules.pms.mapper.QcMapper">
  4. <!-- ================================================= 检验方法 ================================================= -->
  5. <!-- 条件查询检验方法 -->
  6. <select id="qcMethodSearch" parameterType="com.heai.modules.pms.data.QcMethodData" resultType="com.heai.modules.pms.data.QcMethodData">
  7. SELECT
  8. qm.site,
  9. qm.bu_no,
  10. qm.method_no,
  11. qm.method_name,
  12. qm.create_date,
  13. qm.create_by,
  14. dbo.getOperatorDesc(qm.site, qm.create_by) as createByDesc,
  15. qm.method_remark,
  16. qm.update_date,
  17. qm.update_by,
  18. dbo.getOperatorDesc(qm.site, qm.update_by) as updateByDesc,
  19. qm.inspection_type_no,
  20. qit.inspection_type_name
  21. FROM qc_method as qm
  22. LEFT JOIN qc_inspection_type as qit on qm.site = qit.site and qm.inspection_type_no = qit.inspection_type_no
  23. <where>
  24. <if test="query.site != null and query.site != ''">
  25. AND qm.site = #{query.site}
  26. </if>
  27. <if test="query.methodNo != null and query.methodNo != ''">
  28. AND qm.method_no LIKE '%' + #{query.methodNo} +'%'
  29. </if>
  30. <if test="query.methodName != null and query.methodName != ''">
  31. AND qm.method_name LIKE '%' + #{query.methodName} +'%'
  32. </if>
  33. <if test="query.inspectionTypeNo != null and query.inspectionTypeNo != ''">
  34. AND qm.inspection_type_no = #{query.inspectionTypeNo}
  35. </if>
  36. </where>
  37. </select>
  38. <!-- 获得检验方法单号 -->
  39. <select id="getMethodNo" resultType="string" parameterType="com.heai.modules.pms.data.QcMethodData">
  40. SELECT
  41. Right('0000' + convert(varchar(10),isnull(max(convert(INT,Right(method_no,4))),0)+1),4)
  42. FROM qc_method
  43. WHERE site = #{site} AND inspection_type_no = #{inspectionTypeNo} and bu_no = #{buNo}
  44. </select>
  45. <!-- 新增检验方法 -->
  46. <insert id="qcMethodSave" parameterType="com.heai.modules.pms.data.QcMethodData">
  47. INSERT INTO qc_method (site, bu_no, method_no, method_name, create_date, create_by, method_remark, update_date, update_by, inspection_type_no)
  48. VALUES (#{site}, #{buNo}, #{methodNo}, #{methodName}, GetDate(), #{createBy}, #{methodRemark}, getDate(), #{updateBy}, #{inspectionTypeNo})
  49. </insert>
  50. <!-- 修改检验方法 -->
  51. <update id="qcMethodUpdate" parameterType="com.heai.modules.pms.data.QcMethodData">
  52. UPDATE qc_method
  53. SET method_name = #{methodName},
  54. method_remark = #{methodRemark},
  55. update_date = getDate(),
  56. update_by = #{updateBy},
  57. inspection_type_no = #{inspectionTypeNo}
  58. WHERE site = #{site} and method_no = #{methodNo}
  59. </update>
  60. <!-- 检查方法是否在被项目使用 -->
  61. <select id="checkMethodIsUsed" parameterType="com.heai.modules.pms.data.QcMethodData" resultType="com.heai.modules.pms.data.EamPropertiesItemData">
  62. SELECT
  63. ItemNo
  64. FROM qc_method_item
  65. WHERE site = #{site} and method_no = #{methodNo} and bu_no = #{buNo}
  66. </select>
  67. <!-- 删除检验方法 -->
  68. <delete id="qcMethodDelete" parameterType="com.heai.modules.pms.data.QcMethodData">
  69. DELETE FROM qc_method
  70. WHERE site = #{site} and method_no = #{methodNo}
  71. </delete>
  72. <!-- ================================================= 检验项目 ================================================= -->
  73. <!-- 根据条件查询检验项目 -->
  74. <select id="qcItemSearch" parameterType="com.heai.modules.pms.data.QcItemData" resultType="com.heai.modules.pms.data.QcItemData">
  75. SELECT
  76. epi.site,
  77. epi.bu_no,
  78. epi.ItemNo,
  79. epi.ItemDesc,
  80. epi.DefaultValue,
  81. epi.ValueType,
  82. epi.ValueType_DB as valueTypeDb,
  83. epi.ValueChooseFlag,
  84. epi.CreatedDate,
  85. epi.CreatedBy,
  86. dbo.getOperatorDesc(epi.site, epi.CreatedBy) as createdByDesc,
  87. epi.MaxValue,
  88. epi.MinValue,
  89. epi.ItemRemark,
  90. epi.ItemType,
  91. epi.update_date,
  92. epi.update_by,
  93. dbo.getOperatorDesc(epi.site, epi.update_by) as updateByDesc,
  94. qm.method_no,
  95. qm.method_name,
  96. qm.method_remark,
  97. epi.inspection_type_no,
  98. qit.inspection_type_name,
  99. epi.item_sampling_quantity,
  100. epi.sampling_programme_no,
  101. qsip.sampling_programme_desc,
  102. epi.sampling_level_no,
  103. qsil.sampling_level_desc,
  104. epi.default_sampling_proportion,
  105. epi.collection_flag,
  106. epi.collection_source,
  107. epi.collection_method,
  108. epi.picture_flag,
  109. CASE WHEN epi.collection_method = 'plc' THEN 'PLC'
  110. WHEN epi.collection_method = 'file' THEN '文件'
  111. WHEN epi.collection_method = 'image' THEN '图片'
  112. else '' end as collectionMethodDesc,
  113. epi.collection_condition,
  114. epi.collection_data_content
  115. FROM eam_properties_item as epi
  116. LEFT JOIN qc_method_item as qmi on epi.ItemNo = qmi.ItemNo and epi.site = qmi.site
  117. LEFT JOIN qc_method as qm on qmi.method_no = qm.method_no and qmi.site = qm.site
  118. LEFT JOIN qc_inspection_type as qit on qit.inspection_type_no = epi.inspection_type_no and qit.site = epi.site
  119. left join qc_sampling_inspection_programme as qsip on qsip.site = epi.site and qsip.sampling_programme_no = epi.sampling_programme_no
  120. left join qc_sampling_inspection_level as qsil on qsil.site = epi.site and qsil.sampling_level_no = epi.sampling_level_no
  121. <where>
  122. <if test="query.site != null and query.site != ''">
  123. AND epi.site LIKE '%' + #{query.site} +'%'
  124. </if>
  125. <if test="query.itemDesc != null and query.itemDesc != ''">
  126. AND epi.ItemDesc LIKE '%' + #{query.itemDesc} +'%'
  127. </if>
  128. <if test="query.itemNo != null and query.itemNo != ''">
  129. AND epi.ItemNo LIKE '%' + #{query.itemNo} +'%'
  130. </if>
  131. <if test="query.inspectionTypeNo != null and query.inspectionTypeNo != ''">
  132. AND epi.inspection_type_no = #{query.inspectionTypeNo}
  133. </if>
  134. </where>
  135. </select>
  136. <!-- 检测是否存在该项目 -->
  137. <select id="checkQcItem" parameterType="com.heai.modules.pms.data.QcItemData" resultType="com.heai.modules.pms.data.QcItemData">
  138. SELECT ItemNo,
  139. ItemDesc
  140. FROM eam_properties_item
  141. WHERE site = #{site} and ItemNo = #{itemNo} and ItemType = #{itemType}
  142. </select>
  143. <!-- 获得检验项目单号 -->
  144. <select id="getItemNo" resultType="string" parameterType="com.heai.modules.pms.data.QcItemData">
  145. SELECT
  146. Right('0000' + convert(varchar(10),isnull(max(convert(INT,Right(ItemNo,4))),0)+1),4)
  147. FROM eam_properties_item
  148. WHERE site = #{site} and ItemType = 'D' and inspection_type_no = #{inspectionTypeNo} and bu_no = #{buNo}
  149. </select>
  150. <!-- 新增检验项目 -->
  151. <insert id="qcItemSave" parameterType="com.heai.modules.pms.data.QcItemData">
  152. INSERT INTO eam_properties_item (site,bu_no,ItemNo, ItemDesc, DefaultValue, ValueType, ValueType_DB, ValueChooseFlag, CreatedDate, CreatedBy, MaxValue, MinValue, ItemRemark, ItemType, update_date, update_by, inspection_type_no, item_sampling_quantity, sampling_programme_no, sampling_level_no, default_sampling_proportion, collection_flag, collection_source, collection_method, collection_condition, collection_data_content,picture_flag)
  153. VALUES (#{site},#{buNo}, #{itemNo}, #{itemDesc}, #{defaultValue}, #{valueType}, #{valueTypeDb}, #{valueChooseFlag}, GetDate(), #{createdBy}, #{maxValue,jdbcType=DECIMAL}, #{minValue,jdbcType=DECIMAL}, #{itemRemark}, #{itemType}, getDate(), #{updateBy}, #{inspectionTypeNo}, #{itemSamplingQuantity}, #{samplingProgrammeNo}, #{samplingLevelNo}, #{defaultSamplingProportion}, #{collectionFlag}, #{collectionSource}, #{collectionMethod}, #{collectionCondition}, #{collectionDataContent},#{pictureFlag})
  154. </insert>
  155. <!-- 新增项目里的方法 -->
  156. <insert id="qcItemMethodSave" parameterType="com.heai.modules.pms.data.QcItemData">
  157. INSERT INTO qc_method_item (ItemNo, method_no, site,bu_no)
  158. VALUES (#{itemNo}, #{methodNo}, #{site},#{buNo})
  159. </insert>
  160. <!-- 修改检验项目 -->
  161. <update id="qcItemUpdate" parameterType="com.heai.modules.pms.data.QcItemData">
  162. UPDATE eam_properties_item
  163. SET ItemDesc = #{itemDesc},
  164. DefaultValue = #{defaultValue},
  165. ValueType = #{valueType},
  166. ValueType_DB = #{valueTypeDb},
  167. ValueChooseFlag = #{valueChooseFlag},
  168. MaxValue = #{maxValue,jdbcType=DECIMAL},
  169. MinValue = #{minValue,jdbcType=DECIMAL},
  170. ItemRemark = #{itemRemark},
  171. update_date = getDate(),
  172. update_by = #{updateBy},
  173. inspection_type_no = #{inspectionTypeNo},
  174. item_sampling_quantity = #{itemSamplingQuantity},
  175. sampling_programme_no = #{samplingProgrammeNo},
  176. sampling_level_no = #{samplingLevelNo},
  177. default_sampling_proportion = #{defaultSamplingProportion},
  178. collection_flag = #{collectionFlag},
  179. collection_source = #{collectionSource},
  180. collection_method = #{collectionMethod},
  181. collection_condition = #{collectionCondition},
  182. collection_data_content = #{collectionDataContent},
  183. picture_flag = #{pictureFlag}
  184. WHERE site = #{site} and ItemNo = #{itemNo} and ItemType = #{itemType}
  185. </update>
  186. <!-- 修改项目中的方法 -->
  187. <update id="qcItemMethodUpdate" parameterType="com.heai.modules.pms.data.QcItemData">
  188. UPDATE qc_method_item
  189. SET method_no = #{methodNo}
  190. WHERE site = #{site} and ItemNo = #{itemNo}
  191. </update>
  192. <!-- 检查项目是否在被模板使用 -->
  193. <select id="checkItemIsUsed" parameterType="com.heai.modules.pms.data.QcItemData" resultType="com.heai.modules.pms.data.EamPropertiesModelDetailData">
  194. SELECT template_id
  195. FROM qc_template_detailed
  196. WHERE site = #{site} and ItemNo = #{itemNo} and bu_no = #{buNo}
  197. </select>
  198. <!-- 删除检验项目 -->
  199. <delete id="qcItemDelete" parameterType="com.heai.modules.pms.data.QcItemData">
  200. DELETE
  201. FROM eam_properties_item
  202. WHERE site = #{site} and ItemNo = #{itemNo} and ItemType = #{itemType}
  203. </delete>
  204. <!-- 删除项目-方法中间表数据 -->
  205. <delete id="qcItemMethodDelete" parameterType="com.heai.modules.pms.data.QcItemData">
  206. DELETE
  207. FROM qc_method_item
  208. WHERE site = #{site} and ItemNo = #{itemNo}
  209. </delete>
  210. <!-- ================================================= 质检员信息维护 ================================================= -->
  211. <!-- 查询质检员信息列表 -->
  212. <select id="inspectorSearch" resultType="com.heai.modules.pms.data.QcInspectorData">
  213. SELECT inspector_no,
  214. inspector_name,
  215. inspector_phone,
  216. inspector_type,
  217. inspector_active
  218. FROM qc_inspector
  219. </select>
  220. <!-- 检验是否已存在该质检员 -->
  221. <select id="checkInspector" resultType="com.heai.modules.pms.data.QcInspectorData">
  222. SELECT inspector_name
  223. FROM qc_inspector
  224. WHERE inspector_no = #{inspectorNo}
  225. </select>
  226. <!-- 新增质检员 -->
  227. <insert id="inspectorSave" parameterType="com.heai.modules.pms.data.QcInspectorData">
  228. INSERT INTO qc_inspector (inspector_no, inspector_name, inspector_phone, inspector_type, inspector_active, create_time)
  229. VALUES (#{inspectorNo}, #{inspectorName}, #{inspectorPhone}, #{inspectorType}, #{inspectorActive}, getDate())
  230. </insert>
  231. <!-- 修改质检员 -->
  232. <update id="inspectorUpdate" parameterType="com.heai.modules.pms.data.QcInspectorData">
  233. UPDATE qc_inspector
  234. SET inspector_name = #{inspectorName},
  235. inspector_phone = #{inspectorPhone},
  236. inspector_type = #{inspectorType},
  237. inspector_active = #{inspectorActive}
  238. WHERE inspector_no = #{inspectorNo}
  239. </update>
  240. <!-- 删除质检员 -->
  241. <delete id="inspectorDelete" parameterType="com.heai.modules.pms.data.QcInspectorData">
  242. DELETE FROM qc_inspector
  243. WHERE inspector_no = #{inspectorNo}
  244. </delete>
  245. <!-- ================================================= 抽样矩阵维护 ================================================= -->
  246. <!-- 查询抽样矩阵 -->
  247. <select id="samplingInspectionPlanSearch" parameterType="com.heai.modules.pms.data.QcSamplingInspectionPlanData" resultType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  248. SELECT
  249. qsip.site,
  250. qsip.bu_no,
  251. qsip.sampling_plan_no,
  252. qsip.sampling_plan_desc,
  253. qsip.sampling_qty_no,
  254. qsiq.sampling_qty,
  255. qsiq.sampling_qty_desc,
  256. qsip.sampling_qty_rank_no,
  257. qsiqr.sampling_qty_rank_desc,
  258. qsiqr.min_qty,
  259. qsiqr.max_qty,
  260. qsip.sampling_level_no,
  261. qsil.sampling_level_desc,
  262. qsip.sampling_plan_active,
  263. case when qsip.sampling_plan_active = 'Y' then '是' when qsip.sampling_plan_active = 'N' then '否' else '' end as samplingPlanActiveDesc,
  264. qsip.create_date,
  265. qsip.create_by,
  266. dbo.getOperatorDesc(qsip.site, qsip.create_by) as createByDesc,
  267. qsip.update_date,
  268. qsip.update_by,
  269. dbo.getOperatorDesc(qsip.site, qsip.update_by) as updateByDesc
  270. FROM qc_sampling_inspection_plan as qsip
  271. LEFT JOIN qc_sampling_inspection_qty as qsiq ON qsip.sampling_qty_no = qsiq.sampling_qty_no and qsip.site = qsiq.site and qsip.bu_no = qsiq.bu_no
  272. LEFT JOIN qc_sampling_inspection_qty_rank as qsiqr ON qsip.sampling_qty_rank_no = qsiqr.sampling_qty_rank_no and qsip.site = qsiqr.site and qsip.bu_no = qsiqr.bu_no
  273. LEFT JOIN qc_sampling_inspection_level as qsil ON qsip.sampling_level_no = qsil.sampling_level_no and qsip.site = qsil.site and qsip.bu_no = qsil.bu_no
  274. <where>
  275. <if test="query.site != null and query.site != ''">
  276. AND qsip.site = #{query.site}
  277. </if>
  278. <if test="query.samplingQtyDesc != null and query.samplingQtyDesc != ''">
  279. AND qsiq.sampling_qty_desc LIKE '%' + #{query.samplingQtyDesc}+'%'
  280. </if>
  281. <if test="query.samplingLevelDesc != null and query.samplingLevelDesc != ''">
  282. AND qsil.sampling_level_desc LIKE '%' + #{query.samplingLevelDesc}+'%'
  283. </if>
  284. <if test="query.samplingPlanActive != null and query.samplingPlanActive != ''">
  285. AND qsip.sampling_plan_active = #{query.samplingPlanActive}
  286. </if>
  287. </where>
  288. </select>
  289. <!-- 根据三个编码查矩阵 -->
  290. <select id="selectSamplingPlanByNo" resultType="com.heai.modules.pms.data.QcSamplingInspectionPlanData" parameterType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  291. SELECT top 1
  292. site,
  293. bu_no,
  294. sampling_plan_no,
  295. sampling_qty_no,
  296. sampling_qty_rank_no,
  297. sampling_level_no,
  298. sampling_plan_active
  299. FROM qc_sampling_inspection_plan
  300. WHERE sampling_qty_no = #{samplingQtyNo} AND sampling_qty_rank_no = #{samplingQtyRankNo} AND sampling_level_no = #{samplingLevelNo} AND site = #{site} and bu_no = #{buNo}
  301. </select>
  302. <select id="selectSamplingPlanByOutNo" resultType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  303. SELECT top 1
  304. site,
  305. bu_no,
  306. sampling_plan_no,
  307. sampling_qty_no,
  308. sampling_qty_rank_no,
  309. sampling_level_no,
  310. sampling_plan_active
  311. FROM qc_sampling_inspection_plan
  312. WHERE site = #{site} and bu_no = #{buNo} and sampling_plan_no = #{samplingPlanNo}
  313. </select>
  314. <select id="selectSamplingPlanByNoList"
  315. resultType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  316. SELECT
  317. site,
  318. bu_no,
  319. sampling_plan_no,
  320. sampling_qty_no,
  321. sampling_qty_rank_no,
  322. sampling_level_no,
  323. sampling_plan_active
  324. FROM qc_sampling_inspection_plan
  325. WHERE sampling_qty_no = #{samplingQtyNo} AND sampling_qty_rank_no = #{samplingQtyRankNo} AND sampling_level_no = #{samplingLevelNo} AND site = #{site} and bu_no = #{buNo}
  326. </select>
  327. <select id="selectSamplingPlanByDescList"
  328. resultType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  329. SELECT
  330. site,
  331. bu_no,
  332. sampling_plan_no,
  333. sampling_qty_no,
  334. sampling_qty_rank_no,
  335. sampling_level_no,
  336. sampling_plan_active
  337. FROM qc_sampling_inspection_plan
  338. WHERE sampling_plan_desc = #{samplingPlanDesc} AND site = #{site} and bu_no = #{buNo} and sampling_plan_no != #{samplingPlanNo}
  339. </select>
  340. <!-- 根据名称查矩阵 -->
  341. <select id="selectSamplingPlanByDesc" resultType="com.heai.modules.pms.data.QcSamplingInspectionPlanData" parameterType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  342. SELECT
  343. site,
  344. bu_no,
  345. sampling_plan_no,
  346. sampling_qty_no,
  347. sampling_qty_rank_no,
  348. sampling_level_no,
  349. sampling_plan_active
  350. FROM qc_sampling_inspection_plan
  351. WHERE sampling_plan_desc = #{samplingPlanDesc} AND site = #{site} and bu_no = #{buNo}
  352. </select>
  353. <!-- 获取最大方矩阵编码 -->
  354. <select id="queryLastSamplingPlanNo" resultType="string" parameterType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  355. SELECT top 1 sampling_plan_no
  356. FROM qc_sampling_inspection_plan
  357. where site = #{site} and bu_no = #{buNo}
  358. ORDER BY sampling_plan_no Desc
  359. </select>
  360. <!-- 新增抽样矩阵 -->
  361. <insert id="samplingInspectionPlanSave" parameterType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  362. INSERT INTO qc_sampling_inspection_plan (site, bu_no, sampling_plan_no, sampling_plan_desc, sampling_qty_rank_no, sampling_level_no, sampling_qty_no, sampling_plan_active, create_date, create_by, update_date, update_by)
  363. VALUES (#{site}, #{buNo}, #{samplingPlanNo}, #{samplingPlanDesc}, #{samplingQtyRankNo}, #{samplingLevelNo}, #{samplingQtyNo}, #{samplingPlanActive}, getDate(), #{createBy}, getDate(), #{updateBy})
  364. </insert>
  365. <!-- 修改抽样矩阵 -->
  366. <update id="samplingInspectionPlanUpdate" parameterType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  367. UPDATE qc_sampling_inspection_plan
  368. SET sampling_qty_rank_no = #{samplingQtyRankNo},
  369. sampling_level_no = #{samplingLevelNo},
  370. sampling_qty_no = #{samplingQtyNo},
  371. sampling_plan_desc = #{samplingPlanDesc},
  372. sampling_plan_active = #{samplingPlanActive},
  373. update_date = getDate(),
  374. update_by = #{updateBy}
  375. WHERE sampling_plan_no = #{samplingPlanNo} AND site = #{site} and bu_no = #{buNo}
  376. </update>
  377. <!-- 删除抽样矩阵 -->
  378. <delete id="samplingInspectionPlanDelete" parameterType="com.heai.modules.pms.data.QcSamplingInspectionPlanData">
  379. DELETE FROM qc_sampling_inspection_plan
  380. WHERE sampling_plan_no = #{samplingPlanNo} AND site = #{site} and bu_no = #{buNo}
  381. </delete>
  382. <!-- ================================================= 检验模板维护 ================================================= -->
  383. <!-- 查询模板 -->
  384. <select id="templateSearch" parameterType="com.heai.modules.pms.data.QcTemplateData" resultType="com.heai.modules.pms.data.QcTemplateData">
  385. SELECT
  386. qt.site,
  387. qt.bu_no,
  388. qt.template_id,
  389. qt.template_name,
  390. qt.template_remark,
  391. qt.template_type,
  392. qt.template_version,
  393. qt.sampling_programme_no,
  394. qsip.sampling_programme_Desc,
  395. qt.inspection_type_no,
  396. qit.inspection_type_name,
  397. qt.sampling_level_no,
  398. qsil.sampling_level_desc,
  399. qt.inspection_cycle,
  400. qt.create_time,
  401. qt.create_by,
  402. dbo.getOperatorDesc(qt.site, qt.create_by) as createByDesc,
  403. qt.update_date,
  404. qt.update_by,
  405. dbo.getOperatorDesc(qt.site, qt.update_by) as updateByDesc,
  406. qt.AQL,
  407. qt.AC,
  408. qt.RE,
  409. qt.default_sampling_quantity,
  410. qt.default_sampling_proportion
  411. FROM qc_template as qt
  412. LEFT JOIN qc_inspection_type as qit on qt.inspection_type_no = qit.inspection_type_no and qt.site = qit.site
  413. LEFT JOIN qc_sampling_inspection_level as qsil on qt.sampling_level_no = qsil.sampling_level_no and qt.site = qsil.site and qt.bu_no = qsil.bu_no
  414. LEFT JOIN qc_sampling_inspection_programme as qsip on qt.sampling_programme_no = qsip.sampling_programme_no and qt.site = qsip.site and qt.bu_no = qsip.bu_no
  415. <where>
  416. <if test = "query.site != null and query.site != ''">
  417. AND qt.site = #{query.site}
  418. </if>
  419. <if test = "query.templateId != null and query.templateId != ''">
  420. AND qt.template_id LIKE '%' + #{query.templateId}+'%'
  421. </if>
  422. <if test = "query.templateName != null and query.templateName != ''">
  423. AND qt.template_name LIKE '%' + #{query.templateName}+'%'
  424. </if>
  425. <if test = "query.inspectionTypeNo != null and query.inspectionTypeNo != ''">
  426. AND qt.inspection_type_no = #{query.inspectionTypeNo}
  427. </if>
  428. </where>
  429. order by qt.create_time desc
  430. </select>
  431. <!-- 获得检验模板单号 -->
  432. <select id="getTemplateNo" resultType="string" parameterType="com.heai.modules.pms.data.QcTemplateData">
  433. SELECT
  434. Right('0000' + convert(varchar(10),isnull(max(convert(INT,Right(template_id,3))),0)+1),3)
  435. FROM qc_template
  436. WHERE site = #{site} and inspection_type_no = #{inspectionTypeNo} and bu_no = #{buNo}
  437. </select>
  438. <!-- 新增模板 -->
  439. <insert id="templateSave" parameterType="com.heai.modules.pms.data.QcTemplateData">
  440. INSERT INTO qc_template (site,bu_no,template_id, template_name, template_version, template_remark, template_type, sampling_programme_no, inspection_type_no, create_time, create_by, sampling_level_no, inspection_cycle, AQL, AC, RE, default_sampling_quantity, default_sampling_proportion, update_date, update_by)
  441. VALUES (#{site},#{buNo}, #{templateId}, #{templateName},#{templateVersion}, #{templateRemark}, #{templateType}, #{samplingProgrammeNo}, #{inspectionTypeNo}, getDate(), #{createBy}, #{samplingLevelNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{aql}, #{ac}, #{re}, #{defaultSamplingQuantity}, #{defaultSamplingProportion}, getDate(), #{updateBy})
  442. </insert>
  443. <!-- 修改模板 -->
  444. <update id="templateUpdate" parameterType="com.heai.modules.pms.data.QcTemplateData">
  445. UPDATE qc_template
  446. SET template_name = #{templateName},
  447. template_version = #{templateVersion},
  448. template_remark = #{templateRemark},
  449. template_type = #{templateType},
  450. sampling_programme_no = #{samplingProgrammeNo},
  451. inspection_cycle = #{inspectionCycle},
  452. inspection_type_no = #{inspectionTypeNo},
  453. sampling_level_no = #{samplingLevelNo},
  454. AQL = #{aql},
  455. AC = #{ac},
  456. RE = #{re},
  457. default_sampling_quantity = #{defaultSamplingQuantity},
  458. default_sampling_proportion = #{defaultSamplingProportion},
  459. update_date = getDate(),
  460. update_by = #{updateBy}
  461. WHERE template_id = #{templateId} AND site = #{site}
  462. </update>
  463. <!-- 查询模板里的项目详情 -->
  464. <select id="templateDetailsSearch" resultType="com.heai.modules.pms.data.QcTemplateData">
  465. SELECT
  466. a.site,
  467. a.bu_no,
  468. a.template_id,
  469. a.ItemNo,
  470. b.ItemDesc,
  471. COALESCE(ad.default_value,a.default_value) AS default_value,
  472. b.ValueType,
  473. b.ValueType_DB,
  474. a.max_value,
  475. a.min_value,
  476. b.ItemRemark,
  477. b.ItemType,
  478. a.object_id,
  479. eo.objectDesc,
  480. b.item_sampling_quantity,
  481. b.sampling_programme_no,
  482. c.sampling_programme_desc,
  483. b.sampling_level_no,
  484. d.sampling_level_desc,
  485. b.default_sampling_proportion,a.order_id
  486. FROM qc_template_detailed a
  487. INNER JOIN eam_properties_item b ON a.ItemNo = b.ItemNo and a.site = b.site
  488. left join qc_part_attr_detailed ad on ad.item_no = b.ItemNo and b.site = ad.site and ad.attribute_no =#{attributeNo}
  489. left join qc_sampling_inspection_programme as c on b.site = c.site and b.sampling_programme_no = c.sampling_programme_no
  490. left join qc_sampling_inspection_level as d on b.site = d.site and b.sampling_level_no = d.sampling_level_no
  491. LEFT JOIN eam_object eo ON a.object_id = eo.ObjectID and a.site = b.site
  492. WHERE a.template_id = #{templateId} AND b.ItemType = #{itemType} and a.site = #{site}
  493. order by a.order_id,a.ItemNo
  494. </select>
  495. <!-- 查询模板里是否已存在该项目 -->
  496. <select id="selectItemDetails" resultType="com.heai.modules.pms.data.QcTemplateData">
  497. SELECT template_id,
  498. ItemNo,
  499. default_value,
  500. max_value,
  501. min_value
  502. FROM qc_template_detailed
  503. WHERE template_id = #{templateId} and ItemNo = #{itemNo} and site = #{site} and bu_no = #{buNo}
  504. </select>
  505. <!-- 查询项目的最大最小值 -->
  506. <select id="selectDetail" resultType="com.heai.modules.pms.data.QcTemplateData">
  507. SELECT ItemNo,
  508. DefaultValue,
  509. MaxValue,
  510. MinValue
  511. FROM eam_properties_item
  512. WHERE ItemNo = #{itemNo} and ItemType = #{itemType} and site = #{site}
  513. </select>
  514. <!-- 新增模板的检验项目 -->
  515. <insert id="addItemDetails" parameterType="com.heai.modules.pms.data.QcTemplateData">
  516. INSERT INTO qc_template_detailed (template_id, ItemNo, default_value, max_value, min_value, site, bu_no,order_id)
  517. VALUES (#{templateId}, #{itemNo}, #{defaultValue}, #{maxValue,jdbcType=DECIMAL}, #{minValue,jdbcType=DECIMAL}, #{site}, #{buNo},#{orderId})
  518. </insert>
  519. <!-- 删除模板的检验项目 -->
  520. <delete id="delItemDetails" >
  521. DELETE FROM qc_template_detailed
  522. WHERE template_id = #{templateId} and ItemNo = #{itemNo} and site = #{site} and bu_no = #{buNo}
  523. </delete>
  524. <!-- 获取当前模板不包含的项目 -->
  525. <select id="getItemList" resultType="com.heai.modules.pms.data.QcTemplateData">
  526. SELECT
  527. a.site,
  528. a.bu_no,
  529. a.itemNo,
  530. a.ItemDesc,
  531. a.DefaultValue,
  532. a.MaxValue,
  533. a.MinValue
  534. FROM eam_properties_item a
  535. LEFT JOIN qc_template_detailed b ON b.template_id = #{templateId} and b.ItemNo = a.ItemNo and a.site = b.site
  536. WHERE a.ItemType = #{itemType} and a.site = #{site} and b.template_id is null and dbo.qc_get_inspection_type_name(a.site, a.inspection_type_no) = #{inspectionTypeName}
  537. </select>
  538. <!-- 查询项目 -->
  539. <select id="getItem" resultType="com.heai.modules.pms.data.QcTemplateData">
  540. SELECT
  541. a.site,
  542. a.bu_no,
  543. a.itemNo,
  544. a.ItemDesc,
  545. a.DefaultValue,
  546. a.MaxValue,
  547. a.MinValue
  548. FROM eam_properties_item a
  549. LEFT JOIN qc_template_detailed b ON b.template_id = #{templateId} and b.ItemNo = a.ItemNo and a.site = b.site and a.bu_no = b.bu_no
  550. <where>
  551. a.ItemType = #{itemType} and a.site = #{site} and b.template_id is null and a.bu_no = #{buNo} and dbo.qc_get_inspection_type_name(a.site, a.inspection_type_no) = #{inspectionTypeName}
  552. <if test = "itemNo != null and itemNo != ''">
  553. AND a.ItemNo LIKE '%' + #{itemNo} + '%'
  554. </if>
  555. <if test = "itemDesc != null and itemDesc != ''">
  556. AND a.ItemDesc LIKE '%' + #{itemDesc} + '%'
  557. </if>
  558. <if test = "inspectionTypeNo != null and inspectionTypeNo != ''">
  559. AND a.inspection_type_no = #{inspectionTypeNo}
  560. </if>
  561. </where>
  562. </select>
  563. <!-- ===================== qc_part_attr_detailed 物料属性检验标准(site+attribute_no+item_no) ===================== -->
  564. <select id="partAttrDetailedSearch" resultType="com.heai.modules.pms.data.QcTemplateData">
  565. SELECT
  566. d.site,
  567. d.bu_no,
  568. d.attribute_no AS attributeNo,
  569. d.item_no AS itemNo,
  570. d.inspection_type_no AS inspectionTypeNo,
  571. b.ItemDesc,
  572. d.default_value AS defaultValue,
  573. b.ValueType AS valueType,
  574. b.ValueType_DB AS valueTypeDb,
  575. d.max_value AS maxValue,
  576. d.min_value AS minValue,
  577. b.ItemRemark AS itemRemark,
  578. b.ItemType AS itemType,
  579. d.object_id AS objectID,
  580. eo.objectDesc,
  581. d.order_id AS orderId
  582. FROM qc_part_attr_detailed d
  583. INNER JOIN eam_properties_item b ON d.item_no = b.ItemNo AND d.site = b.site
  584. LEFT JOIN eam_object eo ON d.object_id = eo.ObjectID AND d.site = b.site
  585. WHERE d.site = #{site}
  586. AND d.attribute_no = #{attributeNo}
  587. AND d.bu_no = #{buNo}
  588. ORDER BY d.order_id, d.item_no
  589. </select>
  590. <select id="getPartAttrItemList" resultType="com.heai.modules.pms.data.QcTemplateData">
  591. SELECT
  592. a.site,
  593. a.bu_no,
  594. a.itemNo,
  595. a.ItemDesc,
  596. a.DefaultValue,
  597. a.MaxValue,
  598. a.MinValue
  599. FROM eam_properties_item a
  600. LEFT JOIN qc_part_attr_detailed d
  601. ON d.site = a.site
  602. AND d.bu_no = #{buNo}
  603. AND d.attribute_no = #{attributeNo}
  604. AND d.item_no = a.ItemNo
  605. WHERE a.ItemType = #{itemType}
  606. AND a.site = #{site}
  607. AND a.bu_no = #{buNo}
  608. AND d.item_no IS NULL
  609. AND dbo.qc_get_inspection_type_name(a.site, a.inspection_type_no) = #{inspectionTypeName}
  610. </select>
  611. <select id="getPartAttrItem" resultType="com.heai.modules.pms.data.QcTemplateData">
  612. SELECT
  613. a.site,
  614. a.bu_no,
  615. a.itemNo,
  616. a.ItemDesc,
  617. a.DefaultValue,
  618. a.MaxValue,
  619. a.MinValue
  620. FROM eam_properties_item a
  621. LEFT JOIN qc_part_attr_detailed d
  622. ON d.site = a.site
  623. AND d.bu_no = #{buNo}
  624. AND d.attribute_no = #{attributeNo}
  625. AND d.item_no = a.ItemNo
  626. <where>
  627. a.ItemType = #{itemType}
  628. AND a.site = #{site}
  629. AND d.item_no IS NULL
  630. AND a.bu_no = #{buNo}
  631. AND dbo.qc_get_inspection_type_name(a.site, a.inspection_type_no) = #{inspectionTypeName}
  632. <if test="itemNo != null and itemNo != ''">
  633. AND a.ItemNo LIKE '%' + #{itemNo} + '%'
  634. </if>
  635. <if test="itemDesc != null and itemDesc != ''">
  636. AND a.ItemDesc LIKE '%' + #{itemDesc} + '%'
  637. </if>
  638. <if test="inspectionTypeNo != null and inspectionTypeNo != ''">
  639. AND a.inspection_type_no = #{inspectionTypeNo}
  640. </if>
  641. </where>
  642. </select>
  643. <select id="selectPartAttrItemDetails" resultType="com.heai.modules.pms.data.QcTemplateData">
  644. SELECT site, bu_no, attribute_no AS attributeNo, item_no AS itemNo
  645. FROM qc_part_attr_detailed
  646. WHERE site = #{site}
  647. AND bu_no = #{buNo}
  648. AND attribute_no = #{attributeNo}
  649. AND item_no = #{itemNo}
  650. </select>
  651. <insert id="insertPartAttrDetailed" parameterType="com.heai.modules.pms.data.QcTemplateData">
  652. INSERT INTO qc_part_attr_detailed
  653. (site, bu_no, attribute_no, item_no, inspection_type_no, default_value, max_value, min_value, object_id, order_id, create_time)
  654. VALUES
  655. (#{site}, #{buNo}, #{attributeNo}, #{itemNo}, #{inspectionTypeNo}, #{defaultValue}, #{maxValue,jdbcType=DECIMAL}, #{minValue,jdbcType=DECIMAL}, #{objectID}, #{orderId}, getDate())
  656. </insert>
  657. <delete id="deletePartAttrDetailed">
  658. DELETE FROM qc_part_attr_detailed
  659. WHERE site = #{site}
  660. AND bu_no = #{buNo}
  661. AND attribute_no = #{attributeNo}
  662. AND item_no = #{itemNo}
  663. </delete>
  664. <delete id="deletePartAttrDetailedAll" parameterType="com.heai.modules.pms.data.QcTemplateData">
  665. DELETE FROM qc_part_attr_detailed
  666. WHERE site = #{site}
  667. AND bu_no = #{buNo}
  668. AND attribute_no = #{attributeNo}
  669. </delete>
  670. <select id="getPartAttrDetailedMaxOrderId" resultType="java.lang.Integer">
  671. SELECT ISNULL(MAX(order_id), 0) + 1
  672. FROM qc_part_attr_detailed
  673. WHERE site = #{site}
  674. AND bu_no = #{buNo}
  675. AND attribute_no = #{attributeNo}
  676. </select>
  677. <select id="getUpPartAttrItemData" resultType="com.heai.modules.pms.data.QcTemplateData">
  678. SELECT TOP 1
  679. site,
  680. bu_no,
  681. attribute_no AS attributeNo,
  682. item_no AS itemNo,
  683. order_id AS orderId
  684. FROM qc_part_attr_detailed
  685. WHERE #{orderId} > order_id
  686. AND site = #{site}
  687. AND bu_no = #{buNo}
  688. AND attribute_no = #{attributeNo}
  689. ORDER BY order_id DESC
  690. </select>
  691. <select id="getDownPartAttrItemData" resultType="com.heai.modules.pms.data.QcTemplateData">
  692. SELECT TOP 1
  693. site,
  694. bu_no,
  695. attribute_no AS attributeNo,
  696. item_no AS itemNo,
  697. order_id AS orderId
  698. FROM qc_part_attr_detailed
  699. WHERE order_id > #{orderId}
  700. AND site = #{site}
  701. AND bu_no = #{buNo}
  702. AND attribute_no = #{attributeNo}
  703. ORDER BY order_id
  704. </select>
  705. <update id="updatePartAttrDetailedOrder">
  706. UPDATE qc_part_attr_detailed
  707. SET order_id = #{orderId}
  708. WHERE site = #{site}
  709. AND bu_no = #{buNo}
  710. AND attribute_no = #{attributeNo}
  711. AND item_no = #{itemNo}
  712. </update>
  713. <!-- 删除模板 -->
  714. <delete id="templateDelete" parameterType="com.heai.modules.pms.data.QcTemplateData">
  715. DELETE FROM qc_template
  716. WHERE template_id = #{templateId} AND site = #{site}
  717. </delete>
  718. <!-- 物料属性模板是否已引用该检验模板号(存在则不允许删除检验模板) -->
  719. <select id="countQcAttributeTemplateByTemplateId" resultType="java.lang.Integer" parameterType="com.heai.modules.pms.data.QcTemplateData">
  720. SELECT COUNT(1)
  721. FROM qc_attribute_template
  722. WHERE site = #{site}
  723. AND template_id = #{templateId}
  724. <if test="buNo != null and buNo != ''">
  725. AND bu_no = #{buNo}
  726. </if>
  727. </select>
  728. <!-- 删除模板-项目中间表 -->
  729. <delete id="itemItemDelete" parameterType="com.heai.modules.pms.data.QcTemplateData">
  730. DELETE FROM qc_template_detailed
  731. WHERE template_id = #{templateId} and site = #{site}
  732. </delete>
  733. <!-- 搜索所有检验类型 -->
  734. <select id="inspectionTypeSearch" resultType="com.heai.modules.pms.data.QcInspectionTypeData" parameterType="com.heai.modules.pms.data.QcInspectionTypeData">
  735. SELECT inspection_type_no,
  736. inspection_type_name
  737. FROM qc_inspection_type
  738. WHERE site = #{site}
  739. order by num
  740. </select>
  741. <!-- 搜索所有设备 -->
  742. <select id="objectSearch" resultType="com.heai.modules.pms.data.EamObjectData">
  743. SELECT
  744. ObjectID,
  745. ObjectDesc
  746. FROM eam_object
  747. WHERE Active = 'Y' and site = #{site} and bu_no = #{buNo}
  748. </select>
  749. <!-- 导入文件检验 -->
  750. <select id="getItemByItemNo" resultType="com.heai.modules.pms.data.EamPropertiesItemData" parameterType="com.heai.modules.pms.data.QcItemData">
  751. SELECT ItemDesc,
  752. ItemType
  753. FROM eam_properties_item
  754. WHERE ItemDesc = #{itemDesc}
  755. AND DefaultValue = #{defaultValue}
  756. AND MaxValue = #{maxValue}
  757. AND MinValue = #{minValue}
  758. AND ItemType = #{itemType}
  759. </select>
  760. <!-- 新增检验项目 -->
  761. <insert id="insertItem" parameterType="com.heai.modules.pms.data.EamPropertiesItemData">
  762. INSERT INTO eam_properties_item (ItemNo, ItemDesc,DefaultValue,ValueType,ValueType_DB, CreatedDate,CreatedBy,MaxValue, MinValue, ItemRemark,ItemType)
  763. VALUES(#{itemNo},#{itemDesc}, #{defaultValue}, #{valueType}, #{valueTypeDb}, GetDate(), #{createdBy}, #{maxValue,jdbcType=DECIMAL}, #{minValue,jdbcType=DECIMAL}, #{itemRemark}, #{itemType})
  764. </insert>
  765. <!-- &lt;!&ndash; 获取最大项目编码 &ndash;&gt;-->
  766. <!-- <select id="queryLastItemNo" resultType="string" parameterType="QcItemData">-->
  767. <!-- SELECT top 1 ItemNo-->
  768. <!-- FROM eam_properties_item-->
  769. <!-- WHERE ItemType = #{itemType}-->
  770. <!-- ORDER BY ItemNo Desc-->
  771. <!-- </select>-->
  772. <!-- 根据模板名称查询模板 -->
  773. <select id="selectTemplateByDesc" parameterType="com.heai.modules.pms.data.QcTemplateData" resultType="com.heai.modules.pms.data.QcTemplateData">
  774. SELECT template_id,
  775. template_name,
  776. template_version
  777. FROM qc_template
  778. WHERE template_name = #{templateName}
  779. AND site = #{site}
  780. AND template_version = #{templateVersion}
  781. </select>
  782. <delete id="delTemplateItem" parameterType="com.heai.modules.pms.data.QcTemplateData">
  783. delete qc_template_detailed
  784. WHERE template_id = #{templateId} and site = #{site} and bu_no = #{buNo}
  785. </delete>
  786. <!-- &lt;!&ndash; 修改项目明细的最大最小值 &ndash;&gt;-->
  787. <!-- <insert id="saveItemDetailed">-->
  788. <!-- INSERT INTO qc_template_detailed-->
  789. <!-- (site, bu_no, template_id, ItemNo, default_value, max_value, min_value)-->
  790. <!-- VALUES-->
  791. <!-- <foreach collection="list" item="item" separator=",">-->
  792. <!-- (#{item.site}, #{item.buNo}, #{item.templateId}, #{item.itemNo}, #{item.defaultValue}, #{item.maxValue,jdbcType=DECIMAL}, #{item.minValue,jdbcType=DECIMAL})-->
  793. <!-- </foreach>-->
  794. <!-- </insert>-->
  795. <!-- 修改项目明细的最大最小值 -->
  796. <insert id="saveItemDetailed">
  797. INSERT INTO qc_template_detailed
  798. (site, bu_no, template_id, ItemNo, default_value, max_value, min_value, order_id)
  799. VALUES
  800. (#{site}, #{buNo}, #{templateId}, #{itemNo}, #{defaultValue}, #{maxValue,jdbcType=DECIMAL}, #{minValue,jdbcType=DECIMAL},#{orderId})
  801. </insert>
  802. <!-- 查询项目明细 -->
  803. <select id="selectItem" resultType="com.heai.modules.pms.data.QcTemplateData">
  804. SELECT ItemNo,
  805. ItemDesc,
  806. DefaultValue,
  807. ValueType,
  808. ValueType_DB,
  809. MaxValue,
  810. MinValue,
  811. ItemRemark,
  812. ItemType,
  813. site,
  814. bu_no
  815. FROM eam_properties_item
  816. WHERE ItemNo = #{itemNo} AND ItemType = #{itemType} AND bu_no = #{buNo}
  817. </select>
  818. <!-- ================================================= 样本量维护 ================================================= -->
  819. <!-- 查询样本量 -->
  820. <select id="samplingQtySearch" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyData" resultType="com.heai.modules.pms.data.QcSamplingInspectionQtyData">
  821. SELECT
  822. site,
  823. bu_no,
  824. sampling_qty_no,
  825. sampling_qty_desc,
  826. sampling_qty,
  827. sampling_qty_remark,
  828. sampling_qty_active,
  829. case when sampling_qty_active = 'Y' then '是' when sampling_qty_active = 'N' then '否' else '' end as samplingQtyActiveDesc,
  830. create_date,
  831. create_by,
  832. dbo.getOperatorDesc(site, create_by) as createByDesc,
  833. update_date,
  834. update_by,
  835. dbo.getOperatorDesc(site, update_by) as updateByDesc
  836. FROM qc_sampling_inspection_qty
  837. <where>
  838. <if test="query.site != null and query.site != ''">
  839. AND site = #{query.site}
  840. </if>
  841. <if test="query.samplingQtyNo != null and query.samplingQtyNo != ''">
  842. AND sampling_qty_no LIKE '%' + #{query.samplingQtyNo} + '%'
  843. </if>
  844. <if test="query.samplingQtyDesc != null and query.samplingQtyDesc != ''">
  845. AND sampling_qty_desc LIKE '%' + #{query.samplingQtyDesc} + '%'
  846. </if>
  847. <if test="query.samplingQty != null">
  848. AND sampling_qty = #{query.samplingQty,jdbcType=DECIMAL}
  849. </if>
  850. <if test="query.samplingQtyActive != null and query.samplingQtyActive != ''">
  851. AND sampling_qty_active = #{query.samplingQtyActive}
  852. </if>
  853. </where>
  854. </select>
  855. <!-- 新增样本量 -->
  856. <insert id="samplingQtySave" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyData">
  857. INSERT INTO qc_sampling_inspection_qty (site, bu_no, sampling_qty_no, sampling_qty, sampling_qty_remark, sampling_qty_active, sampling_qty_desc, create_date, create_by, update_date, update_by)
  858. VALUES(#{site}, #{buNo}, #{samplingQtyNo}, #{samplingQty,jdbcType=DECIMAL}, #{samplingQtyRemark}, #{samplingQtyActive}, #{samplingQtyDesc}, getDate(), #{createBy}, getDate(), #{updateBy})
  859. </insert>
  860. <!-- 根据样本量字码查询样本量 -->
  861. <select id="selectSamplingQtyByDesc" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyData" resultType="com.heai.modules.pms.data.QcSamplingInspectionQtyData">
  862. SELECT
  863. site,
  864. bu_no,
  865. sampling_qty_no,
  866. sampling_qty_desc,
  867. sampling_qty,
  868. sampling_qty_remark,
  869. sampling_qty_active
  870. FROM qc_sampling_inspection_qty
  871. WHERE sampling_qty_desc = #{samplingQtyDesc} AND site = #{site} and bu_no = #{buNo}
  872. </select>
  873. <!-- 获取最大样本量编码 -->
  874. <select id="queryLastSamplingQtyNo" resultType="string" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyData">
  875. SELECT top 1 sampling_qty_no
  876. FROM qc_sampling_inspection_qty
  877. where site = #{site} and bu_no = #{buNo}
  878. ORDER BY sampling_qty_no Desc
  879. </select>
  880. <!-- 修改样本量 -->
  881. <update id="samplingQtyUpdate" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyData">
  882. UPDATE qc_sampling_inspection_qty
  883. SET sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  884. sampling_qty_desc = #{samplingQtyDesc},
  885. sampling_qty_remark = #{samplingQtyRemark},
  886. sampling_qty_active = #{samplingQtyActive},
  887. update_date = getDate(),
  888. update_by = #{updateBy}
  889. WHERE sampling_qty_no = #{samplingQtyNo} AND site = #{site} and bu_no = #{buNo}
  890. </update>
  891. <!-- 根据样本量编码查询矩阵 -->
  892. <select id="selectSamplingPlanBySamplingQtyNo" resultType="com.heai.modules.pms.data.QcSamplingInspectionPlanData" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyData">
  893. SELECT
  894. site,
  895. sampling_plan_no,
  896. sampling_qty_no,
  897. sampling_qty_rank_no,
  898. sampling_level_no,
  899. sampling_plan_active
  900. FROM qc_sampling_inspection_plan
  901. WHERE site = #{site} AND sampling_qty_no = #{samplingQtyNo} and bu_no = #{buNo}
  902. </select>
  903. <!-- 删除样本量 -->
  904. <delete id="samplingQtyDelete" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyData">
  905. DELETE FROM qc_sampling_inspection_qty
  906. WHERE site = #{site} AND sampling_qty_no = #{samplingQtyNo} AND sampling_qty_desc = #{samplingQtyDesc} and bu_no = #{buNo}
  907. </delete>
  908. <!-- ================================================= 批量级次维护 ================================================= -->
  909. <!-- 查询批量级次 -->
  910. <select id="samplingQtyRankSearch" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyRankData" resultType="com.heai.modules.pms.data.QcSamplingInspectionQtyRankData">
  911. SELECT
  912. site,
  913. bu_no,
  914. sampling_qty_rank_no,
  915. sampling_qty_rank_desc,
  916. min_qty,
  917. max_qty,
  918. sampling_qty_rank_active,
  919. case when sampling_qty_rank_active = 'Y' then '是' when sampling_qty_rank_active = 'N' then '否' else '' end as samplingQtyRankActiveDesc,
  920. sampling_qty_rank_Remark,
  921. create_date,
  922. create_by,
  923. dbo.getOperatorDesc(site, create_by) as createByDesc,
  924. update_date,
  925. update_by,
  926. dbo.getOperatorDesc(site, update_by) as updateByDesc
  927. FROM qc_sampling_inspection_qty_rank
  928. <where>
  929. <if test="query.site != null and query.site != ''">
  930. AND site = #{query.site}
  931. </if>
  932. <if test="query.samplingQtyRankNo != null and query.samplingQtyRankNo != ''">
  933. AND sampling_qty_rank_no LIKE '%' + #{query.samplingQtyRankNo}+'%'
  934. </if>
  935. <if test="query.samplingQtyRankDesc != null and query.samplingQtyRankDesc != ''">
  936. AND sampling_qty_rank_desc LIKE '%' + #{query.samplingQtyRankDesc}+'%'
  937. </if>
  938. <if test="query.samplingQtyRankActive != null and query.samplingQtyRankActive != ''">
  939. AND sampling_qty_rank_active = #{query.samplingQtyRankActive}
  940. </if>
  941. </where>
  942. </select>
  943. <!-- 根据名称查询批量级次 -->
  944. <select id="selectSamplingQtyRankByDesc" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyRankData" resultType="com.heai.modules.pms.data.QcSamplingInspectionQtyRankData">
  945. SELECT
  946. site,
  947. bu_no,
  948. sampling_qty_rank_no,
  949. sampling_qty_rank_desc,
  950. min_qty,
  951. max_qty,
  952. sampling_qty_rank_active,
  953. sampling_qty_rank_Remark
  954. FROM qc_sampling_inspection_qty_rank
  955. WHERE sampling_qty_rank_desc = #{samplingQtyRankDesc} AND site = #{site} and bu_no = #{buNo}
  956. </select>
  957. <!-- 获取最大批量级次编码 -->
  958. <select id="queryLastSamplingQtyRankNo" resultType="string" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyRankData">
  959. SELECT top 1 sampling_qty_rank_no
  960. FROM qc_sampling_inspection_qty_rank
  961. where site = #{site} and bu_no = #{buNo}
  962. ORDER BY sampling_qty_rank_no Desc
  963. </select>
  964. <!-- 新增批量级次 -->
  965. <insert id="samplingQtyRankSave" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyRankData">
  966. INSERT INTO qc_sampling_inspection_qty_rank (site, bu_no, sampling_qty_rank_no, sampling_qty_rank_desc, min_qty, max_qty, sampling_qty_rank_Remark, sampling_qty_rank_active, create_date, create_by, update_date, update_by)
  967. VALUES(#{site}, #{buNo}, #{samplingQtyRankNo}, #{samplingQtyRankDesc}, #{minQty,jdbcType=DECIMAL}, #{maxQty,jdbcType=DECIMAL}, #{samplingQtyRankRemark}, #{samplingQtyRankActive}, getDate(), #{createBy}, getDate(), #{updateBy})
  968. </insert>
  969. <!-- 根据批量级次编码查询矩阵 -->
  970. <select id="selectSamplingPlanBySamplingQtyRankNo" resultType="com.heai.modules.pms.data.QcSamplingInspectionPlanData" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyRankData">
  971. SELECT
  972. site,
  973. bu_no,
  974. sampling_plan_no,
  975. sampling_qty_no,
  976. sampling_qty_rank_no,
  977. sampling_level_no,
  978. sampling_plan_active
  979. FROM qc_sampling_inspection_plan
  980. WHERE site = #{site} AND sampling_qty_rank_no = #{samplingQtyRankNo} and bu_no = #{buNo}
  981. </select>
  982. <!-- 修改批量级次 -->
  983. <update id="samplingQtyRankUpdate" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyRankData">
  984. UPDATE qc_sampling_inspection_qty_rank
  985. SET sampling_qty_rank_desc = #{samplingQtyRankDesc},
  986. min_qty = #{minQty,jdbcType=DECIMAL},
  987. max_qty = #{maxQty,jdbcType=DECIMAL},
  988. sampling_qty_rank_Remark = #{samplingQtyRankRemark},
  989. sampling_qty_rank_active = #{samplingQtyRankActive},
  990. update_date = getDate(),
  991. update_by = #{updateBy}
  992. WHERE sampling_qty_rank_no = #{samplingQtyRankNo} AND site = #{site} and bu_no = #{buNo}
  993. </update>
  994. <!-- 删除批量级次 -->
  995. <delete id="samplingQtyRankDelete" parameterType="com.heai.modules.pms.data.QcSamplingInspectionQtyRankData">
  996. DELETE FROM qc_sampling_inspection_qty_rank
  997. WHERE site = #{site} and bu_no = #{buNo}
  998. AND sampling_qty_rank_no = #{samplingQtyRankNo}
  999. AND sampling_qty_rank_desc = #{samplingQtyRankDesc}
  1000. </delete>
  1001. <!-- ================================================= 检验等级维护 ================================================= -->
  1002. <!-- 查询检验等级 -->
  1003. <select id="samplingLevelSearch" parameterType="com.heai.modules.pms.data.QcSamplingInspectionLevelData" resultType="com.heai.modules.pms.data.QcSamplingInspectionLevelData">
  1004. SELECT
  1005. site,
  1006. bu_no,
  1007. sampling_level_no,
  1008. sampling_level_desc,
  1009. sampling_level_remark,
  1010. sampling_level_active,
  1011. case when sampling_level_active = 'Y' then '是' when sampling_level_active = 'N' then '否' else '' end as samplingLevelActiveDesc,
  1012. create_date,
  1013. create_by,
  1014. dbo.getOperatorDesc(site, create_by) as createByDesc,
  1015. update_date,
  1016. update_by,
  1017. dbo.getOperatorDesc(site, update_by) as updateByDesc
  1018. FROM qc_sampling_inspection_level
  1019. <where>
  1020. <if test="query.site != null and query.site != ''">
  1021. AND site = #{query.site}
  1022. </if>
  1023. <if test="query.samplingLevelNo != null and query.samplingLevelNo != ''">
  1024. AND sampling_level_no LIKE '%' + #{query.samplingLevelNo}+'%'
  1025. </if>
  1026. <if test="query.samplingLevelDesc != null and query.samplingLevelDesc != ''">
  1027. AND sampling_level_desc LIKE '%' + #{query.samplingLevelDesc}+'%'
  1028. </if>
  1029. <if test="query.samplingLevelActive != null and query.samplingLevelActive != ''">
  1030. AND sampling_level_active = #{query.samplingLevelActive}
  1031. </if>
  1032. </where>
  1033. </select>
  1034. <!-- 根据名称查询检验等级 -->
  1035. <select id="selectSamplingLevelByDesc" parameterType="com.heai.modules.pms.data.QcSamplingInspectionLevelData" resultType="com.heai.modules.pms.data.QcSamplingInspectionLevelData">
  1036. SELECT
  1037. site,
  1038. bu_no,
  1039. sampling_level_no,
  1040. sampling_level_desc,
  1041. sampling_level_remark,
  1042. sampling_level_active
  1043. FROM qc_sampling_inspection_level
  1044. WHERE sampling_level_desc = #{samplingLevelDesc} AND site = #{site} and bu_no = #{buNo}
  1045. </select>
  1046. <!-- 获取最大检验等级编码 -->
  1047. <select id="queryLastSamplingLevelNo" resultType="string" parameterType="com.heai.modules.pms.data.QcSamplingInspectionLevelData">
  1048. SELECT top 1 sampling_level_no
  1049. FROM qc_sampling_inspection_level
  1050. where site = #{site} and bu_no = #{buNo}
  1051. ORDER BY sampling_level_no Desc
  1052. </select>
  1053. <!-- 新增检验等级 -->
  1054. <insert id="samplingLevelSave" parameterType="com.heai.modules.pms.data.QcSamplingInspectionLevelData">
  1055. INSERT INTO qc_sampling_inspection_level (site, bu_no, sampling_level_no, sampling_level_desc, sampling_level_remark, sampling_level_active, create_date, create_by, update_date, update_by)
  1056. VALUES (#{site}, #{buNo}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingLevelRemark}, #{samplingLevelActive}, getDate(), #{createBy}, getDate(), #{updateBy})
  1057. </insert>
  1058. <!-- 根据检验等级编码查询矩阵 -->
  1059. <select id="selectSamplingPlanBySamplingLevelNo" resultType="com.heai.modules.pms.data.QcSamplingInspectionPlanData" parameterType="com.heai.modules.pms.data.QcSamplingInspectionLevelData">
  1060. SELECT
  1061. site,
  1062. bu_no,
  1063. sampling_plan_no,
  1064. sampling_qty_no,
  1065. sampling_qty_rank_no,
  1066. sampling_level_no,
  1067. sampling_plan_active
  1068. FROM qc_sampling_inspection_plan
  1069. WHERE site = #{site} and bu_no = #{buNo}
  1070. AND sampling_level_no = #{samplingLevelNo}
  1071. </select>
  1072. <!-- 修改检验等级 -->
  1073. <update id="samplingLevelUpdate" parameterType="com.heai.modules.pms.data.QcSamplingInspectionLevelData">
  1074. UPDATE qc_sampling_inspection_level
  1075. SET sampling_level_desc = #{samplingLevelDesc},
  1076. sampling_level_remark = #{samplingLevelRemark},
  1077. sampling_level_active = #{samplingLevelActive},
  1078. update_date = getDate(),
  1079. update_by = #{updateBy}
  1080. WHERE sampling_level_no = #{samplingLevelNo}
  1081. AND site = #{site} and bu_no = #{buNo}
  1082. </update>
  1083. <!-- 删除检验等级 -->
  1084. <delete id="samplingLevelDelete" parameterType="com.heai.modules.pms.data.QcSamplingInspectionLevelData">
  1085. DELETE FROM qc_sampling_inspection_level
  1086. WHERE site = #{site} and bu_no = #{buNo}
  1087. AND sampling_level_no = #{samplingLevelNo}
  1088. AND sampling_level_desc = #{samplingLevelDesc}
  1089. </delete>
  1090. <!-- ================================================= 物料属性设置维护 ================================================= -->
  1091. <!-- 查询物料属性 -->
  1092. <select id="qcPartAttributeSearch" parameterType="com.heai.modules.pms.data.QcPartAttributeData" resultType="com.heai.modules.pms.data.QcPartAttributeData">
  1093. SELECT
  1094. qa.site,
  1095. qa.bu_no,
  1096. p.PartNo as partNo,
  1097. p.PartDescription as partDesc,
  1098. p.cinv_source_code as cinvSourceCode,
  1099. p.sku as sku,
  1100. p.FamilyID,
  1101. p.invtype as familyName,
  1102. p.spec,
  1103. p.umid,
  1104. qa.supplier_no,
  1105. dbo.qc_get_supplier_name(qa.site, qa.supplier_no) as supplierDesc,
  1106. qa.attribute_remark,
  1107. qa.create_time,
  1108. qa.create_by,
  1109. dbo.getOperatorDesc(qa.site, qa.create_by) as createByDesc,
  1110. qa.attribute_type,
  1111. qa.update_date,
  1112. qa.update_by,
  1113. dbo.getOperatorDesc(qa.site, qa.update_by) as updateByDesc,
  1114. qa.exempt_inspection,
  1115. qa.iqc_exempt as iqcExempt,
  1116. qa.fai_exempt as faiExempt,
  1117. qa.ipqc_exempt as ipqcExempt,
  1118. qa.pqc_exempt as pqcExempt,
  1119. qa.fqc_exempt as fqcExempt,
  1120. qa.oqc_exempt as oqcExempt,
  1121. qa.sqc_exempt as sqcExempt,
  1122. qa.First_IPQC_Patrol_time as firstIPQCPatrolTime,
  1123. qa.Last_IPQC_Patrol_time as lastIPQCPatrolTime,
  1124. qa.Cycle_IPQC_Patrol_time as cycleIPQCPatrolTime,
  1125. qa.defaultValue,
  1126. qa.standardValue,
  1127. qa.maxValue,
  1128. qa.minValue
  1129. FROM qc_part_attribute qa
  1130. INNER JOIN part p on qa.attribute_no = p.PartNo and qa.site = p.site
  1131. <where>
  1132. and qa.attribute_type = #{query.attributeType}
  1133. <if test = "query.partNo != null and query.partNo != ''">
  1134. AND qa.attribute_no LIKE '%' + #{query.partNo}+'%'
  1135. </if>
  1136. <if test = "query.partDesc != null and query.partDesc != ''">
  1137. AND p.PartDescription LIKE '%' + #{query.partDesc}+'%'
  1138. </if>
  1139. <if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
  1140. AND p.cinv_source_code LIKE '%' + #{query.cinvSourceCode}+'%'
  1141. </if>
  1142. <if test = "query.sku != null and query.sku != ''">
  1143. AND p.sku LIKE '%' + #{query.sku}+'%'
  1144. </if>
  1145. <if test = "query.familyName != null and query.familyName != ''">
  1146. AND p.invtype LIKE '%' + #{query.familyName}+'%'
  1147. </if>
  1148. </where>
  1149. </select>
  1150. <!-- 查询是否已有该物料属性 -->
  1151. <select id="selectPartAttributeByNo" resultType="com.heai.modules.pms.data.QcPartAttributeData" parameterType="com.heai.modules.pms.data.QcPartAttributeData">
  1152. SELECT
  1153. attribute_no,
  1154. supplier_no,
  1155. attribute_remark,
  1156. attribute_type
  1157. FROM qc_part_attribute
  1158. WHERE site = #{site} and attribute_no = #{partNo} and attribute_type = #{attributeType} and bu_no = #{buNo}
  1159. </select>
  1160. <!-- 新增物料属性 -->
  1161. <insert id="qcPartAttributeSave" parameterType="com.heai.modules.pms.data.QcPartAttributeData">
  1162. INSERT INTO qc_part_attribute (attribute_no, supplier_no, attribute_remark, create_time, create_by, attribute_type, site, exempt_inspection, iqc_exempt, fai_exempt, ipqc_exempt, pqc_exempt, fqc_exempt, oqc_exempt, sqc_exempt, bu_no,First_IPQC_Patrol_time,Last_IPQC_Patrol_time,Cycle_IPQC_Patrol_time,defaultValue,standardValue,maxValue,minValue)
  1163. VALUES(#{partNo}, #{supplierNo}, #{attributeRemark}, getDate(), #{createBy}, #{attributeType}, #{site}, #{exemptInspection}, #{iqcExempt}, #{faiExempt}, #{ipqcExempt}, #{pqcExempt}, #{fqcExempt}, #{oqcExempt}, #{sqcExempt}, #{buNo},#{firstIPQCPatrolTime},#{lastIPQCPatrolTime},#{cycleIPQCPatrolTime},#{defaultValue},#{standardValue},#{maxValue},#{minValue})
  1164. </insert>
  1165. <!-- 物料属性修改 -->
  1166. <update id="qcPartAttributeEdit" parameterType="com.heai.modules.pms.data.QcPartAttributeData">
  1167. UPDATE qc_part_attribute
  1168. SET attribute_remark = #{attributeRemark},
  1169. exempt_inspection = #{exemptInspection},
  1170. iqc_exempt = #{iqcExempt},
  1171. fai_exempt = #{faiExempt},
  1172. ipqc_exempt = #{ipqcExempt},
  1173. pqc_exempt = #{pqcExempt},
  1174. fqc_exempt = #{fqcExempt},
  1175. oqc_exempt = #{oqcExempt},
  1176. sqc_exempt = #{sqcExempt},
  1177. update_date = getDate(),
  1178. update_by = #{updateBy},
  1179. defaultValue = #{defaultValue},
  1180. standardValue = #{standardValue},
  1181. maxValue = #{maxValue},
  1182. minValue = #{minValue},
  1183. First_IPQC_Patrol_time = #{firstIPQCPatrolTime},
  1184. Last_IPQC_Patrol_time = #{lastIPQCPatrolTime},
  1185. Cycle_IPQC_Patrol_time = #{cycleIPQCPatrolTime}
  1186. WHERE site = #{site} and attribute_no = #{partNo} and attribute_type = #{attributeType} and bu_no = #{buNo}
  1187. </update>
  1188. <update id="syncPartExemptFlagsFromQcPartAttribute" parameterType="com.heai.modules.pms.data.QcPartAttributeData">
  1189. UPDATE part
  1190. SET iqc_exempt = #{iqcExempt},
  1191. fai_exempt = #{faiExempt},
  1192. ipqc_exempt = #{ipqcExempt},
  1193. pqc_exempt = #{pqcExempt},
  1194. fqc_exempt = #{fqcExempt},
  1195. sqc_exempt = #{sqcExempt}
  1196. WHERE site = #{site} AND partNo = #{partNo}
  1197. </update>
  1198. <update id="resetPartExemptFlags">
  1199. UPDATE part
  1200. SET iqc_exempt = 'N',
  1201. fai_exempt = 'N',
  1202. ipqc_exempt = 'N',
  1203. pqc_exempt = 'N',
  1204. fqc_exempt = 'N',
  1205. sqc_exempt = 'N'
  1206. WHERE site = #{site} AND partNo = #{partNo}
  1207. </update>
  1208. <!-- 删除物料属性 -->
  1209. <delete id="qcPartAttributeDelete" parameterType="com.heai.modules.pms.data.QcPartAttributeData">
  1210. DELETE FROM qc_part_attribute
  1211. WHERE site = #{site} and bu_no = #{buNo} and attribute_no = #{partNo} and attribute_type = #{attributeType}
  1212. </delete>
  1213. <!-- 删除物料属性模板 -->
  1214. <delete id="deletePartAttributeTemplate" parameterType="com.heai.modules.pms.data.QcPartAttributeData">
  1215. DELETE FROM qc_attribute_template
  1216. WHERE site = #{site} and bu_no = #{buNo} and attribute_no = #{partNo} and attribute_type = #{attributeType}
  1217. </delete>
  1218. <!-- 查询类别模板 -->
  1219. <select id="searchPartAttributeDetails" resultType="com.heai.modules.pms.data.QcTemplateData" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1220. SELECT
  1221. qat.site,
  1222. qat.bu_no,
  1223. qpa.attribute_no,
  1224. qpa.attribute_type,
  1225. qt.template_id,
  1226. qt.template_name,
  1227. qt.template_remark,
  1228. qt.template_version,
  1229. qat.sampling_programme_no,
  1230. qsip.sampling_programme_desc,
  1231. qat.AQL,
  1232. qat.AC,
  1233. qat.RE,
  1234. qt.inspection_type_no,
  1235. qit.inspection_type_name,
  1236. qt.default_sampling_quantity,
  1237. qt.default_sampling_proportion,
  1238. qat.sampling_level_no,
  1239. qsil.sampling_level_desc,
  1240. qat.inspection_cycle,
  1241. qat.operation,
  1242. qat.manufacturer_id,
  1243. qat.ipqc_inspection_method,
  1244. dbo.qc_get_supplier_name(qat.site, qat.manufacturer_id) as manufacturerName,
  1245. qat.resource_id,
  1246. qat.customer_id as customerID,
  1247. cu.CustomerName as customerName
  1248. FROM qc_attribute_template as qat
  1249. LEFT JOIN qc_part_attribute as qpa ON qpa.attribute_no = qat.attribute_no and qat.site = qpa.site and qat.bu_no = qpa.bu_no
  1250. LEFT JOIN qc_template as qt ON qat.template_id = qt.template_id and qat.site = qt.site and qat.bu_no = qt.bu_no
  1251. LEFT JOIN qc_sampling_inspection_level as qsil ON qat.sampling_level_no = qsil.sampling_level_no and qat.site = qsil.site and qat.bu_no = qsil.bu_no
  1252. LEFT JOIN qc_inspection_type as qit ON qt.inspection_type_no = qit.inspection_type_no and qt.site = qit.site
  1253. LEFT JOIN qc_sampling_inspection_programme as qsip ON qat.sampling_programme_no = qsip.sampling_programme_no and qat.site = qsip.site and qat.bu_no = qsip.bu_no
  1254. LEFT JOIN Customer as cu ON qat.site = cu.site AND qat.customer_id = cu.CustomerID
  1255. <where>
  1256. qat.site = #{site} and qpa.attribute_type = #{attributeType} and qpa.attribute_no = #{attributeNo} and qat.bu_no = #{buNo}
  1257. <if test="inspectionTypeNo !=null and inspectionTypeNo != ''">
  1258. and qt.inspection_type_no = #{inspectionTypeNo}
  1259. </if>
  1260. <if test="operation !=null and operation != ''">
  1261. and qat.operation = #{operation}
  1262. </if>
  1263. </where>
  1264. </select>
  1265. <!-- 物料属性模板查重 -->
  1266. <select id="searchPartRepeat" resultType="com.heai.modules.pms.data.QcTemplateData" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1267. SELECT
  1268. attribute_no,
  1269. template_id
  1270. FROM qc_attribute_template
  1271. WHERE attribute_no = #{attributeNo}
  1272. AND template_id = #{templateId}
  1273. AND attribute_type = #{attributeType}
  1274. AND special_field = #{specialField}
  1275. </select>
  1276. <!-- 新增物料属性模板 -->
  1277. <insert id="savePartAttributeDetails" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1278. INSERT INTO qc_attribute_template
  1279. (attribute_no, template_id, sampling_level_no, inspection_cycle, sampling_programme_no, AQL, AC, RE,
  1280. attribute_type, operation, manufacturer_id, resource_id, site, bu_no, customer_id, inspection_type_no)
  1281. VALUES
  1282. (#{attributeNo}, #{templateId}, #{samplingLevelNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{samplingProgrammeNo}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL},
  1283. #{attributeType}, #{operation}, #{manufacturerID}, #{resourceID}, #{site}, #{buNo}, #{customerID}, #{inspectionTypeNo})
  1284. </insert>
  1285. <!-- 可选模板 -->
  1286. <select id="getTemplateList" resultType="com.heai.modules.pms.data.QcTemplateData" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1287. SELECT
  1288. qt.template_id,
  1289. qt.template_name,
  1290. qit.inspection_type_name
  1291. FROM qc_template as qt
  1292. LEFT JOIN qc_attribute_template as qat ON qat.template_id = qt.template_id and qat.attribute_no = #{attributeNo}
  1293. LEFT JOIN qc_inspection_type AS qit ON qt.inspection_type_no = qit.inspection_type_no
  1294. <where>
  1295. qt.site = #{site}
  1296. AND qat.attribute_no is null
  1297. <if test = "inspectionTypeNo != null and inspectionTypeNo != ''">
  1298. AND qt.inspection_type_no = #{inspectionTypeNo}
  1299. </if>
  1300. <if test = "templateId != null and templateId != ''">
  1301. AND qt.template_id LIKE '%' + #{templateId}+'%'
  1302. </if>
  1303. <if test = "templateName != null and templateName != ''">
  1304. AND qt.template_name LIKE '%' + #{templateName}+'%'
  1305. </if>
  1306. </where>
  1307. </select>
  1308. <!-- 已有模板 -->
  1309. <select id="getPartTemplateList" resultType="com.heai.modules.pms.data.QcTemplateData" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1310. SELECT
  1311. qt.template_id,
  1312. qt.template_name,
  1313. qit.inspection_type_name,
  1314. qat.operation,
  1315. qat.manufacturer_id,
  1316. vs.supplierName as manufacturerName,
  1317. qat.resource_id,
  1318. qat.customer_id as customerID,
  1319. cu.CustomerName as customerName
  1320. FROM qc_attribute_template as qat
  1321. LEFT JOIN qc_template as qt ON qat.template_id = qt.template_id and qat.site = qt.site and qat.bu_no = qt.bu_no
  1322. LEFT JOIN qc_inspection_type AS qit ON qt.inspection_type_no = qit.inspection_type_no and qt.site = qit.site
  1323. LEFT JOIN view_Supplier as vs ON qat.site = vs.site AND qat.manufacturer_id = vs.SupplierID
  1324. LEFT JOIN Customer as cu ON qat.site = cu.site AND qat.customer_id = cu.CustomerID
  1325. WHERE qt.site = #{site} AND qat.attribute_no = #{attributeNo} and qt.bu_no = #{buNo}
  1326. </select>
  1327. <select id="countPartTemplateByTemplateId" resultType="java.lang.Integer" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1328. SELECT COUNT(1)
  1329. FROM qc_attribute_template
  1330. <where>
  1331. site = #{site}
  1332. and bu_no = #{buNo}
  1333. and attribute_no = #{attributeNo}
  1334. and attribute_type = #{attributeType}
  1335. and template_id = #{templateId}
  1336. </where>
  1337. </select>
  1338. <!-- 物料可选模板 -->
  1339. <select id="getTemplateListAll" resultType="com.heai.modules.pms.data.QcTemplateData" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1340. SELECT
  1341. qt.template_id,
  1342. qt.template_name,
  1343. qit.inspection_type_name
  1344. FROM qc_template as qt
  1345. LEFT JOIN qc_inspection_type AS qit ON qt.inspection_type_no = qit.inspection_type_no and qt.site = qit.site
  1346. <where>
  1347. qt.site = #{site} and qt.bu_no = #{buNo}
  1348. <if test = "inspectionTypeNo != null and inspectionTypeNo != ''">
  1349. AND qt.inspection_type_no = #{inspectionTypeNo}
  1350. </if>
  1351. <if test = "templateId != null and templateId != ''">
  1352. AND qt.template_id LIKE '%' + #{templateId}+'%'
  1353. </if>
  1354. <if test = "templateName != null and templateName != ''">
  1355. AND qt.template_name LIKE '%' + #{templateName}+'%'
  1356. </if>
  1357. </where>
  1358. </select>
  1359. <!-- 删除物料属性模板 -->
  1360. <delete id="deletePartAttributeDetails" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1361. DELETE FROM qc_attribute_template
  1362. <where>
  1363. site = #{site} and bu_no = #{buNo} and attribute_no = #{attributeNo} and template_id = #{templateId} and attribute_type = #{attributeType}
  1364. <if test = "operation != null and operation != ''">
  1365. and operation = #{operation}
  1366. </if>
  1367. <if test = "resourceID != null and resourceID != ''">
  1368. and resource_id = #{resourceID}
  1369. </if>
  1370. <if test = "manufacturerID != null and manufacturerID != ''">
  1371. and manufacturer_id = #{manufacturerID}
  1372. </if>
  1373. <if test = "customerID != null and customerID != ''">
  1374. and customer_id = #{customerID}
  1375. </if>
  1376. </where>
  1377. </delete>
  1378. <!-- 查询模板的基础数据 -->
  1379. <select id="selectTemplateData" resultType="com.heai.modules.pms.data.QcTemplateData" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1380. SELECT
  1381. template_id,
  1382. template_name,
  1383. sampling_programme_no,
  1384. sampling_level_no,
  1385. inspection_cycle,
  1386. AQL,
  1387. AC,
  1388. RE,
  1389. inspection_type_no
  1390. FROM qc_template
  1391. WHERE site = #{site} AND template_id = #{templateId} and bu_no = #{buNo}
  1392. </select>
  1393. <!-- 新增物料属性模板详情 -->
  1394. <update id="saveAttributeDetailed" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1395. UPDATE qc_attribute_template
  1396. SET sampling_level_no = #{samplingLevelNo},
  1397. inspection_cycle = #{inspectionCycle,jdbcType=DECIMAL},
  1398. sampling_programme_no = #{samplingProgrammeNo},
  1399. AQL = #{aql,jdbcType=DECIMAL},
  1400. AC = #{ac,jdbcType=DECIMAL},
  1401. ipqc_inspection_method = #{ipqcInspectionMethod},
  1402. RE = #{re,jdbcType=DECIMAL}
  1403. <where>
  1404. site = #{site} and attribute_no = #{attributeNo} AND template_id = #{templateId} AND attribute_type = #{attributeType} and bu_no = #{buNo}
  1405. <if test = "operation != null and operation != ''">
  1406. AND operation = #{operation}
  1407. </if>
  1408. <if test = "resourceID != null and resourceID != ''">
  1409. AND resource_id = #{resourceID}
  1410. </if>
  1411. <if test = "manufacturerID != null and manufacturerID != ''">
  1412. AND manufacturer_id = #{manufacturerID}
  1413. </if>
  1414. </where>
  1415. </update>
  1416. <!-- 更新物料属性修改时间 -->
  1417. <update id="updatePartAttributeTime" parameterType="com.heai.modules.pms.data.QcTemplateData">
  1418. UPDATE qc_part_attribute
  1419. SET update_date = getDate(),
  1420. update_by = #{updateBy}
  1421. WHERE site = #{site} and attribute_no = #{attributeNo} and attribute_type = #{attributeType} and bu_no = #{buNo}
  1422. </update>
  1423. <!-- ================================================= 类别属性设置维护 ================================================= -->
  1424. <!-- 查询类别属性 -->
  1425. <select id="qcFamilyAttributeSearch" parameterType="com.heai.modules.pms.data.QcPartAttributeData" resultType="com.heai.modules.pms.data.QcPartAttributeData">
  1426. SELECT
  1427. qa.site,
  1428. qa.bu_no,
  1429. qa.attribute_no as familyID,
  1430. pf.FamilyName,
  1431. qa.supplier_no,
  1432. qa.attribute_remark,
  1433. qa.create_time,
  1434. qa.create_by,
  1435. qa.update_date,
  1436. qa.update_by,
  1437. qa.attribute_type
  1438. FROM qc_part_attribute as qa
  1439. LEFT JOIN PartFamily as pf on qa.attribute_no = pf.FamilyID and qa.site = pf.site
  1440. <where>
  1441. and qa.attribute_type = #{query.attributeType}
  1442. <if test="query.site != null and query.site != ''">
  1443. AND site = #{query.site}
  1444. </if>
  1445. <if test = "query.familyID != null and query.familyID != ''">
  1446. AND qa.attribute_no LIKE '%' + #{query.familyID}+'%'
  1447. </if>
  1448. <if test = "query.familyName != null and query.familyName != ''">
  1449. AND pf.FamilyName LIKE '%' + #{query.familyName}+'%'
  1450. </if>
  1451. </where>
  1452. </select>
  1453. <!-- 新增类别属性 -->
  1454. <insert id="qcFamilyAttributeSave" parameterType="com.heai.modules.pms.data.QcPartAttributeData">
  1455. INSERT INTO qc_part_attribute (attribute_no, attribute_remark, create_time, create_by, attribute_type, site, bu_no)
  1456. VALUES(#{familyID}, #{attributeRemark}, getDate(), #{createBy}, #{attributeType}, #{site}, #{buNo})
  1457. </insert>
  1458. <!-- 删除分类属性 -->
  1459. <delete id="qcFamilyAttributeDelete" parameterType="com.heai.modules.pms.data.QcPartAttributeData">
  1460. DELETE FROM qc_part_attribute
  1461. WHERE site = #{site} and attribute_no = #{familyID} and attribute_type = #{attributeType} and bu_no = #{buNo}
  1462. </delete>
  1463. <!-- 删除分类属性模板 -->
  1464. <delete id="deleteFamilyAttributeTemplate" parameterType="com.heai.modules.pms.data.QcPartAttributeData">
  1465. DELETE FROM qc_attribute_template
  1466. WHERE site = #{site} and attribute_no = #{familyID} and attribute_type = #{attributeType} and bu_no = #{buNo}
  1467. </delete>
  1468. <!-- ================================================= 抽样方案维护 ================================================= -->
  1469. <!-- 查询类别属性 -->
  1470. <select id="samplingProgrammeSearch" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData" resultType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1471. SELECT
  1472. site,
  1473. bu_no,
  1474. sampling_programme_no,
  1475. sampling_programme_desc,
  1476. sampling_programme_code,
  1477. create_time,
  1478. create_by,
  1479. dbo.getOperatorDesc(site, create_by) as createByDesc,
  1480. update_date,
  1481. update_by,
  1482. dbo.getOperatorDesc(site, update_by) as updateByDesc
  1483. FROM qc_sampling_inspection_programme
  1484. <where>
  1485. <if test="query.site != null and query.site != ''">
  1486. AND site = #{query.site}
  1487. </if>
  1488. <if test = "query.samplingProgrammeNo != null and query.samplingProgrammeNo != ''">
  1489. AND sampling_programme_no LIKE '%' + #{query.samplingProgrammeNo}+'%'
  1490. </if>
  1491. <if test = "query.samplingProgrammeCode != null and query.samplingProgrammeCode != ''">
  1492. AND sampling_programme_code LIKE '%' + #{query.samplingProgrammeCode}+'%'
  1493. </if>
  1494. <if test = "query.samplingProgrammeDesc != null and query.samplingProgrammeDesc != ''">
  1495. AND sampling_programme_desc LIKE '%' + #{query.samplingProgrammeDesc}+'%'
  1496. </if>
  1497. </where>
  1498. </select>
  1499. <!-- 新增抽样方案 -->
  1500. <insert id="samplingProgrammeSave" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1501. INSERT INTO qc_sampling_inspection_programme (site, bu_no, sampling_programme_no, sampling_programme_desc, sampling_programme_code, create_time, create_by, update_date, update_by)
  1502. VALUES(#{site}, #{buNo}, #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{samplingProgrammeCode}, getDate(), #{createBy}, getDate(), #{updateBy})
  1503. </insert>
  1504. <!-- 删除抽样方案 -->
  1505. <delete id="samplingProgrammeDelete" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1506. DELETE FROM qc_sampling_inspection_programme
  1507. WHERE site = #{site} and bu_no = #{buNo}
  1508. AND sampling_programme_no = #{samplingProgrammeNo}
  1509. </delete>
  1510. <!-- 删除抽样方案中的矩阵 -->
  1511. <delete id="deletePlanByProgrammeNo" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1512. DELETE FROM qc_programme_plan
  1513. WHERE sampling_programme_no = #{samplingProgrammeNo} and site = #{site} and bu_no = #{buNo}
  1514. </delete>
  1515. <!-- 根据名称查询抽样方案 -->
  1516. <select id="selectSamplingProgrammeByDesc" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData" resultType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1517. SELECT
  1518. site,
  1519. bu_no,
  1520. sampling_programme_no,
  1521. sampling_programme_desc
  1522. FROM qc_sampling_inspection_programme
  1523. WHERE sampling_programme_desc = #{samplingProgrammeDesc} AND site = #{site} and bu_no = #{buNo}
  1524. </select>
  1525. <!-- 获取最大抽样方案编码 -->
  1526. <select id="queryLastSamplingProgrammeNo" resultType="string" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1527. SELECT top 1 sampling_programme_no
  1528. FROM qc_sampling_inspection_programme
  1529. where site = #{site} and bu_no = #{buNo}
  1530. ORDER BY sampling_programme_no Desc
  1531. </select>
  1532. <!-- 搜索抽样方案中的矩阵 -->
  1533. <select id="searchSamplingProgrammeDetails" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData" resultType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1534. SELECT
  1535. qpp.site,
  1536. qpp.bu_no,
  1537. qpp.sampling_programme_no,
  1538. qsip.sampling_plan_no,
  1539. qsip.sampling_plan_Desc,
  1540. qsip.sampling_qty_no,
  1541. qsiq.sampling_qty_desc,
  1542. qsiq.sampling_qty,
  1543. qsip.sampling_qty_rank_no,
  1544. qsiqr.sampling_qty_rank_desc,
  1545. qsiqr.min_qty,
  1546. qsiqr.max_qty,
  1547. qsip.sampling_level_no,
  1548. qsil.sampling_level_desc,
  1549. qsip.sampling_plan_active
  1550. FROM qc_programme_plan as qpp
  1551. LEFT JOIN qc_sampling_inspection_plan as qsip on qpp.sampling_plan_no = qsip.sampling_plan_no and qpp.site = qsip.site and qpp.bu_no = qsip.bu_no
  1552. LEFT JOIN qc_sampling_inspection_qty as qsiq on qsip.sampling_qty_no = qsiq.sampling_qty_no and qsip.site = qsiq.site and qsip.bu_no = qsiq.bu_no
  1553. LEFT JOIN qc_sampling_inspection_qty_rank as qsiqr on qsip.sampling_qty_rank_no = qsiqr.sampling_qty_rank_no and qsip.site = qsiqr.site and qsip.bu_no = qsiqr.bu_no
  1554. LEFT JOIN qc_sampling_inspection_level as qsil on qsip.sampling_level_no = qsil.sampling_level_no and qsip.site = qsil.site and qsip.bu_no = qsil.bu_no
  1555. WHERE qpp.sampling_programme_no = #{samplingProgrammeNo} and qpp.site = #{site} and qpp.bu_no = #{buNo}
  1556. </select>
  1557. <!-- 获取该方案不包含的矩阵 -->
  1558. <select id="getPlanList" resultType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1559. SELECT
  1560. qip.sampling_plan_no,
  1561. qip.sampling_plan_desc
  1562. FROM qc_sampling_inspection_plan as qip
  1563. LEFT JOIN qc_programme_plan as qpp ON qpp.sampling_plan_no = qip.sampling_plan_no and qpp.sampling_programme_no = #{samplingProgrammeNo} and qpp.site = qip.site and qpp.bu_no = qip.bu_no
  1564. WHERE qip.site = #{site} and qip.bu_no = #{buNo} AND qpp.sampling_programme_no is null
  1565. </select>
  1566. <!-- 获取当前方案所包含的矩阵 -->
  1567. <select id="getProgrammePlanList" resultType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1568. SELECT
  1569. qip.sampling_plan_no,
  1570. qip.sampling_plan_desc
  1571. FROM qc_programme_plan as qpp
  1572. LEFT JOIN qc_sampling_inspection_plan as qip ON qpp.sampling_plan_no = qip.sampling_plan_no and qpp.site = qip.site and qpp.bu_no = qip.bu_no
  1573. WHERE qip.site = #{site} and qip.bu_no = #{buNo} AND qpp.sampling_programme_no = #{samplingProgrammeNo}
  1574. </select>
  1575. <!-- 查重 -->
  1576. <select id="searchPlanRepeat" resultType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1577. SELECT
  1578. sampling_plan_no,
  1579. sampling_programme_no
  1580. FROM qc_programme_plan
  1581. WHERE sampling_programme_no = #{samplingProgrammeNo} AND sampling_plan_no = #{samplingPlanNo} and site = #{site} and bu_no = #{buNo}
  1582. </select>
  1583. <!-- 新增抽样方案中的矩阵 -->
  1584. <insert id="saveSamplingProgrammeDetails" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1585. INSERT INTO qc_programme_plan (site, bu_no, sampling_programme_no, sampling_plan_no)
  1586. VALUES (#{site}, #{buNo}, #{samplingProgrammeNo}, #{samplingPlanNo})
  1587. </insert>
  1588. <!-- 更新抽样方案修改时间 -->
  1589. <update id="updateSamplingInspectionProgrammeDate" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1590. UPDATE qc_sampling_inspection_programme
  1591. SET update_date = getDate(),
  1592. update_by = #{updateBy}
  1593. WHERE site = #{site} AND sampling_programme_no = #{samplingProgrammeNo} and bu_no = #{buNo}
  1594. </update>
  1595. <!-- 删除抽样方案中的矩阵 -->
  1596. <delete id="deleteSamplingProgrammeDetails" parameterType="com.heai.modules.pms.data.QcSamplingInspectionProgrammeData">
  1597. DELETE FROM qc_programme_plan
  1598. WHERE sampling_programme_no = #{samplingProgrammeNo} and sampling_plan_no = #{samplingPlanNo} and site = #{site} and bu_no = #{buNo}
  1599. </delete>
  1600. <!-- ================================================= FAI检验维护 ================================================= -->
  1601. <!-- 查询FAI基础数据 -->
  1602. <select id="selectFAIBasicData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  1603. SELECT
  1604. top 1
  1605. a.orderno as orderNo,
  1606. j.part_no,
  1607. j.part_desc,
  1608. c.operation_desc,
  1609. b.approve_qty as rollQty,
  1610. a.s_resourceid as resourceId,
  1611. DBO.getResourceDesc(a.site, a.s_resourceid) as resourceDesc,
  1612. a.itemno as itemNo,
  1613. a.id as ssrId
  1614. FROM soscheduledrouting as a
  1615. LEFT JOIN sfdc as b
  1616. ON a.site = b.site and a.seqno = b.assjob_seq_no and b.id in (
  1617. select min(sfdc.id)
  1618. from sfdc
  1619. group by sfdc.assjob_seq_no, site
  1620. )
  1621. LEFT JOIN so_routing as c
  1622. ON c.site = a.site and c.order_no = a.orderno and a.itemno = c.item_no
  1623. LEFT JOIN part j
  1624. ON a.site = j.site and a.part_no = j.part_no
  1625. WHERE a.itemno = '10'
  1626. AND a.id not in (select ssr_id from qc_fai_record)
  1627. AND b.approve_qty is not null
  1628. ORDER BY a.id desc
  1629. </select>
  1630. <!-- 获取该物料属性下维护的iqc -->
  1631. <select id="selectPartAttributeByPartNo" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  1632. SELECT
  1633. qat.site,
  1634. qat.bu_no,
  1635. qat.attribute_no,
  1636. qat.template_id,
  1637. qat.sampling_level_no,
  1638. qsil.sampling_level_desc,
  1639. qat.inspection_cycle,
  1640. qat.sampling_programme_no,
  1641. qsip.sampling_programme_desc,
  1642. qat.AQL,
  1643. qat.AC,
  1644. qat.RE,
  1645. qt.default_sampling_quantity,
  1646. qt.default_sampling_proportion
  1647. FROM qc_attribute_template as qat
  1648. LEFT JOIN qc_template as qt ON qat.template_id = qt.template_id and qat.site = qt.site and qat.bu_no = qt.bu_no
  1649. LEFT JOIN qc_sampling_inspection_level as qsil ON qat.sampling_level_no = qsil.sampling_level_no and qat.site = qsil.site and qat.bu_no = qsil.bu_no
  1650. LEFT JOIN qc_sampling_inspection_programme as qsip ON qat.sampling_programme_no = qsip.sampling_programme_no and qat.site = qsip.site and qat.bu_no = qsip.bu_no
  1651. WHERE qat.site = #{site} and qat.bu_no = #{buNo}
  1652. AND qat.attribute_no = #{partNo}
  1653. AND qat.attribute_type = #{attributeType}
  1654. AND qt.inspection_type_no = #{inspectionTypeNo}
  1655. AND qat.manufacturer_id = #{supplierNo}
  1656. </select>
  1657. <!-- 获取该物料属性下维护的ipqc -->
  1658. <select id="selectPartAttributeByOperationAndResource" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  1659. SELECT
  1660. qat.site,
  1661. qat.bu_no,
  1662. qat.attribute_no,
  1663. qat.template_id,
  1664. qat.sampling_level_no,
  1665. qsil.sampling_level_desc,
  1666. qat.inspection_cycle,
  1667. qat.sampling_programme_no,
  1668. qsip.sampling_programme_desc,
  1669. qat.AQL,
  1670. qat.AC,
  1671. qat.RE,
  1672. qt.default_sampling_quantity,
  1673. qt.default_sampling_proportion
  1674. FROM qc_attribute_template as qat
  1675. LEFT JOIN qc_template as qt ON qat.template_id = qt.template_id and qat.site = qt.site and qat.bu_no = qt.bu_no
  1676. LEFT JOIN qc_sampling_inspection_level as qsil ON qat.sampling_level_no = qsil.sampling_level_no and qat.site = qsil.site and qat.bu_no = qsil.bu_no
  1677. LEFT JOIN qc_sampling_inspection_programme as qsip ON qat.sampling_programme_no = qsip.sampling_programme_no and qat.site = qsip.site and qat.bu_no = qsip.bu_no
  1678. WHERE qat.site = #{site} and qat.bu_no = #{buNo}
  1679. AND qat.attribute_no = #{partNo}
  1680. AND qat.attribute_type = #{attributeType1}
  1681. AND qt.inspection_type_no = #{inspectionTypeNo}
  1682. AND qat.operation = #{operationDesc}
  1683. AND qat.resource_id = #{resourceId}
  1684. </select>
  1685. <!-- 获取模板详情 -->
  1686. <select id="selectTemplate" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  1687. SELECT
  1688. qt.site,
  1689. qt.bu_no,
  1690. qt.template_id,
  1691. qt.sampling_level_no,
  1692. qsil.sampling_level_desc,
  1693. qt.inspection_cycle,
  1694. qt.sampling_programme_no,
  1695. qsip.sampling_programme_desc,
  1696. qt.AQL,
  1697. qt.AC,
  1698. qt.RE,
  1699. qt.default_sampling_quantity,
  1700. qt.default_sampling_proportion
  1701. FROM qc_template as qt
  1702. LEFT JOIN qc_sampling_inspection_level as qsil ON qt.sampling_level_no = qsil.sampling_level_no and qt.site = qsil.site and qt.bu_no = qsil.bu_no
  1703. LEFT JOIN qc_sampling_inspection_programme as qsip ON qt.sampling_programme_no = qsip.sampling_programme_no and qt.site = qsip.site and qt.bu_no = qsip.bu_no
  1704. WHERE qt.site = #{site} and qt.template_id = #{templateId} and qt.bu_no = #{buNo}
  1705. </select>
  1706. <select id="selectAttrTemplate" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  1707. SELECT B.TransNo,B.Site,
  1708. B.ItemNo,
  1709. B.FromOpsID,
  1710. B.FromWorkCenterNo,
  1711. B.ToWorkCenterNo,
  1712. B.ToOpsID,
  1713. B.OrderNo,
  1714. B.PartNo,
  1715. B.TransQty,
  1716. B.ConfirmQty,
  1717. B.TaskNo,
  1718. B.InsStatus,
  1719. B.ToConfirmQty,
  1720. B.seqNo,
  1721. A.FromProLineNo,
  1722. A.ToProLineNo,
  1723. A.ToWarehouseID,
  1724. A.FromEnteredby,
  1725. A.FromEnteredDate,
  1726. A.TransDate,
  1727. A.ToReceiver,
  1728. A.FromReceiver,
  1729. A.FromRemark,
  1730. A.ToRemark,
  1731. A.ConfirmedFlag,
  1732. A.ToConfirmedBy,
  1733. A.ToEnteredby,
  1734. A.ToEnteredDate,
  1735. A.LatestUpdatedBy,
  1736. A.LatestUpdatedDate,
  1737. A.RecordVersion,
  1738. A.Status,
  1739. A.ToTypeFlag_DB,
  1740. A.ToTypeFlag,
  1741. A.ConfirmedTransNo,
  1742. A.need_inspect_flag,
  1743. A.inspected_flag,
  1744. A.inspect_result,
  1745. A.inspect_remark,
  1746. A.NeedReceiveFlag
  1747. FROM SOOpsTransferHeader A
  1748. INNER JOIN SOOpsTransferDetail B ON A.Site = B.SITE AND A.TransNo = B.TransNo
  1749. INNER JOIN qc_attribute_template e on D.SITE = B.site and D.attribute_no = B.PartNo
  1750. WHERE A.SITE = #{site} AND E.bu_no = #{buNo} AND B.TransNo = #{refInfo1} AND B.ItemNo = #{refInfo2} AND E.inspection_type_no =#{inspectionTypeNo}
  1751. <if test="operation != null and operation != ''">
  1752. AND E.operation = #{operation}
  1753. </if>
  1754. <if test="resourceId != null and resourceId != ''">
  1755. AND E.resource_id = #{resourceId}
  1756. </if>
  1757. </select>
  1758. <select id="selectAttrTemplateByPartNo" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  1759. SELECT
  1760. B.TransNo,B.Site,
  1761. B.ItemNo,
  1762. B.FromOpsID,
  1763. B.FromWorkCenterNo,
  1764. B.ToWorkCenterNo,
  1765. B.ToOpsID,
  1766. B.OrderNo,
  1767. B.PartNo,
  1768. B.TransQty,
  1769. B.ConfirmQty,
  1770. B.TaskNo,
  1771. B.InsStatus,
  1772. B.ToConfirmQty,
  1773. B.seqNo,
  1774. A.FromProLineNo,
  1775. A.ToProLineNo,
  1776. A.ToWarehouseID,
  1777. A.FromEnteredby,
  1778. A.FromEnteredDate,
  1779. A.TransDate,
  1780. A.ToReceiver,
  1781. A.FromReceiver,
  1782. A.FromRemark,
  1783. A.ToRemark,
  1784. A.ConfirmedFlag,
  1785. A.ToConfirmedBy,
  1786. A.ToEnteredby,
  1787. A.ToEnteredDate,
  1788. A.LatestUpdatedBy,
  1789. A.LatestUpdatedDate,
  1790. A.RecordVersion,
  1791. A.Status,
  1792. A.ToTypeFlag_DB,
  1793. A.ToTypeFlag,
  1794. A.ConfirmedTransNo,
  1795. A.need_inspect_flag,
  1796. A.inspected_flag,
  1797. A.inspect_result,
  1798. A.inspect_remark,
  1799. A.NeedReceiveFlag,
  1800. T.template_id, T.sampling_level_no, T.sampling_programme_no, D.UMID, D.PartDescription, SUM(B.TransQty) AS total_required_qty, ISNULL(T.iqc_exempt, 'N'), ISNULL(T.fai_exempt, 'N'), ISNULL(T.ipqc_exempt, 'N'), ISNULL(T.pqc_exempt, 'N'), ISNULL(T.fqc_exempt, 'N'), ISNULL(T.oqc_exempt, 'N')
  1801. FROM SOOpsTransferHeader A
  1802. LEFT JOIN SOOpsTransferDetail B ON A.Site = B.SITE AND A.TransNo = B.TransNo
  1803. INNER JOIN part D ON D.SITE = B.Site AND D.PartNo = B.PartNo
  1804. --采用最小颗粒度匹配原则(① 物料+工序+机台 ② 物料+工序 ③ 物料)
  1805. OUTER APPLY (
  1806. SELECT TOP 1 S.*,O. iqc_exempt,O.fqc_exempt,O.ipqc_exempt,O.pqc_exempt,O.oqc_exempt,O.fai_exempt FROM qc_attribute_template s
  1807. INNER JOIN qc_part_attribute O ON S.site = O.site AND S.bu_no = O.bu_no AND S.attribute_no = O.attribute_no
  1808. WHERE O.site = #{site} AND O.attribute_no = 'FP00003' AND inspection_type_no = '101' --AND ipqc_inspection_method = '首检'
  1809. AND (
  1810. (S.operation = #{operator} AND S.resource_id = #{resourceId}) -- ① 物料+工序+机台
  1811. OR (S.operation = #{operator} AND ( S.resource_id IS NULL OR S.resource_id ='') ) -- ② 物料+工序
  1812. OR ((S.operation IS NULL OR S.operation = '') AND (S.resource_id IS NULL OR S.resource_id ='' )) -- ③ 物料
  1813. )
  1814. ORDER BY
  1815. CASE
  1816. WHEN S.operation = #{operator} AND S.resource_id = #{resourceId} THEN 1
  1817. WHEN S.operation = #{operator} AND S.resource_id IS NULL THEN 2
  1818. WHEN S.operation IS NULL AND S.resource_id IS NULL THEN 3
  1819. ELSE 4
  1820. END
  1821. ) T
  1822. WHERE A.SITE = #{site} AND t.bu_no = #{buNo} AND A.TransNo = #{refInfo1} AND B.ItemNo =#{refInfo2}
  1823. GROUP BY B.OrderNo,B.PartNo,T.template_id,T.sampling_level_no,T.sampling_programme_no, D.UMID,D.PartDescription,T.iqc_exempt,T.fai_exempt,T.ipqc_exempt,T.pqc_exempt,T.fqc_exempt,T.oqc_exempt;
  1824. </select>
  1825. <select id="selectTemplateByPartNo" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  1826. WITH base_data AS (
  1827. SELECT DISTINCT
  1828. B.TransNo,B.Site,
  1829. B.ItemNo,
  1830. B.FromOpsID,
  1831. B.FromWorkCenterNo,
  1832. B.ToWorkCenterNo,
  1833. B.ToOpsID,
  1834. B.OrderNo,
  1835. B.PartNo,
  1836. B.TransQty,
  1837. B.ConfirmQty,
  1838. B.TaskNo,
  1839. B.InsStatus,
  1840. B.ToConfirmQty,
  1841. B.seqNo,
  1842. A.FromProLineNo,
  1843. A.ToProLineNo,
  1844. A.ToWarehouseID,
  1845. A.FromEnteredby,
  1846. A.FromEnteredDate,
  1847. A.TransDate,
  1848. A.ToReceiver,
  1849. A.FromReceiver,
  1850. A.FromRemark,
  1851. A.ToRemark,
  1852. A.ConfirmedFlag,
  1853. A.ToConfirmedBy,
  1854. A.ToEnteredby,
  1855. A.ToEnteredDate,
  1856. A.LatestUpdatedBy,
  1857. A.LatestUpdatedDate,
  1858. A.RecordVersion,
  1859. A.Status,
  1860. A.ToTypeFlag_DB,
  1861. A.ToTypeFlag,
  1862. A.ConfirmedTransNo,
  1863. A.need_inspect_flag,
  1864. A.inspected_flag,
  1865. A.inspect_result,
  1866. A.inspect_remark,
  1867. A.NeedReceiveFlag,
  1868. qt.bu_no,
  1869. qt.template_id,
  1870. qt.sampling_level_no,
  1871. qsil.sampling_level_desc,
  1872. qt.inspection_cycle,
  1873. qt.sampling_programme_no,
  1874. qsip.sampling_programme_desc,
  1875. qt.AQL,
  1876. qt.AC,
  1877. qt.RE,
  1878. qt.default_sampling_quantity,
  1879. qt.default_sampling_proportion,
  1880. e.operation as attr_operation,
  1881. e.resource_id as attr_resource_id
  1882. FROM SOOpsTransferHeader A
  1883. INNER JOIN SOOpsTransferDetail B ON A.Site = B.SITE AND A.TransNo = B.TransNo
  1884. INNER JOIN part D ON D.SITE = B.Site AND D.PartNo = B.PartNo
  1885. INNER JOIN qc_attribute_template e on D.SITE = e.site and e.attribute_no = D.PartNo
  1886. INNER JOIN qc_template as qt ON E.SITE = qt.site AND E.bu_no = QT.bu_no AND e.template_id = qt.template_id
  1887. LEFT JOIN qc_sampling_inspection_level as qsil ON qt.sampling_level_no = qsil.sampling_level_no and qt.site = qsil.site and qt.bu_no = qsil.bu_no
  1888. LEFT JOIN qc_sampling_inspection_programme as qsip ON qt.sampling_programme_no = qsip.sampling_programme_no and qt.site = qsip.site and qt.bu_no = qsip.bu_no
  1889. WHERE A.SITE = #{site} AND qt.bu_no = #{buNo} AND A.TransNo = #{refInfo1} AND B.ItemNo = #{refInfo2} AND E.inspection_type_no = #{inspectionTypeNo}
  1890. ),
  1891. candidate_data AS (
  1892. SELECT *,
  1893. CASE
  1894. WHEN (#{operator} IS NOT NULL AND #{operator} != '') AND (#{resourceId} IS NOT NULL AND #{resourceId} != '')
  1895. AND attr_operation = #{operator} AND attr_resource_id = #{resourceId} THEN 1
  1896. WHEN (#{operator} IS NOT NULL AND #{operator} != '') AND (#{resourceId} IS NOT NULL AND #{resourceId} != '')
  1897. AND attr_operation = #{operator} THEN 2
  1898. WHEN (#{operator} IS NOT NULL AND #{operator} != '') AND (#{resourceId} IS NOT NULL AND #{resourceId} != '')
  1899. AND attr_resource_id = #{resourceId} THEN 3
  1900. WHEN (#{operator} IS NOT NULL AND #{operator} != '') AND (#{resourceId} IS NOT NULL AND #{resourceId} != '') THEN 4
  1901. WHEN (#{operator} IS NOT NULL AND #{operator} != '') AND (#{resourceId} IS NULL OR #{resourceId} = '')
  1902. AND attr_operation = #{operator} THEN 1
  1903. WHEN (#{operator} IS NOT NULL AND #{operator} != '') AND (#{resourceId} IS NULL OR #{resourceId} = '') THEN 2
  1904. WHEN (#{operator} IS NULL OR #{operator} = '') AND (#{resourceId} IS NOT NULL AND #{resourceId} != '')
  1905. AND attr_resource_id = #{resourceId} THEN 1
  1906. WHEN (#{operator} IS NULL OR #{operator} = '') AND (#{resourceId} IS NOT NULL AND #{resourceId} != '') THEN 2
  1907. ELSE 1
  1908. END AS match_level
  1909. FROM base_data
  1910. )
  1911. SELECT
  1912. TransNo, Site, ItemNo, FromOpsID, FromWorkCenterNo, ToWorkCenterNo, ToOpsID, OrderNo, PartNo, TransQty, ConfirmQty, TaskNo,
  1913. InsStatus, ToConfirmQty, seqNo, FromProLineNo, ToProLineNo, ToWarehouseID, FromEnteredby, FromEnteredDate, TransDate, ToReceiver,
  1914. FromReceiver, FromRemark, ToRemark, ConfirmedFlag, ToConfirmedBy, ToEnteredby, ToEnteredDate, LatestUpdatedBy, LatestUpdatedDate,
  1915. RecordVersion, Status, ToTypeFlag_DB, ToTypeFlag, ConfirmedTransNo, need_inspect_flag, inspected_flag, inspect_result, inspect_remark,
  1916. NeedReceiveFlag, bu_no, template_id, sampling_level_no, sampling_level_desc, inspection_cycle, sampling_programme_no,
  1917. sampling_programme_desc, AQL, AC, RE, default_sampling_quantity, default_sampling_proportion
  1918. FROM candidate_data
  1919. WHERE match_level = (SELECT MIN(match_level) FROM candidate_data)
  1920. </select>
  1921. <select id="selectTemplateByPartNoForOverLoad" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  1922. WITH base_data AS (
  1923. SELECT DISTINCT
  1924. qt.site,
  1925. qt.bu_no,
  1926. qt.template_id,
  1927. qt.sampling_level_no,
  1928. qsil.sampling_level_desc,
  1929. qt.inspection_cycle,
  1930. qt.sampling_programme_no,
  1931. qsip.sampling_programme_desc,
  1932. qt.AQL,
  1933. qt.AC,
  1934. qt.RE,
  1935. qt.default_sampling_quantity,
  1936. qt.default_sampling_proportion,
  1937. e.operation AS attr_operation,
  1938. e.resource_id AS attr_resource_id
  1939. FROM part d
  1940. INNER JOIN qc_attribute_template e ON d.site = e.site AND d.partNo = e.attribute_no
  1941. INNER JOIN qc_template qt ON e.site = qt.site AND e.bu_no = qt.bu_no AND e.template_id = qt.template_id
  1942. LEFT JOIN qc_sampling_inspection_level qsil ON qt.sampling_level_no = qsil.sampling_level_no AND qt.site = qsil.site AND qt.bu_no = qsil.bu_no
  1943. LEFT JOIN qc_sampling_inspection_programme qsip ON qt.sampling_programme_no = qsip.sampling_programme_no AND qt.site = qsip.site AND qt.bu_no = qsip.bu_no
  1944. WHERE d.site = #{site}
  1945. AND e.bu_no = #{buNo}
  1946. AND d.partNo = #{partNo}
  1947. AND e.inspection_type_no = #{inspectionTypeNo}
  1948. ),
  1949. candidate_data AS (
  1950. SELECT *,
  1951. CASE
  1952. WHEN attr_operation = #{operator} THEN 1
  1953. WHEN attr_resource_id = #{resourceId} THEN 1
  1954. ELSE 2
  1955. END AS match_level
  1956. FROM base_data
  1957. )
  1958. SELECT
  1959. site,
  1960. bu_no,
  1961. template_id,
  1962. sampling_level_no,
  1963. sampling_level_desc,
  1964. inspection_cycle,
  1965. sampling_programme_no,
  1966. sampling_programme_desc,
  1967. AQL,
  1968. AC,
  1969. RE,
  1970. default_sampling_quantity,
  1971. default_sampling_proportion
  1972. FROM candidate_data
  1973. WHERE match_level = (SELECT MIN(match_level) FROM candidate_data)
  1974. </select>
  1975. <!-- 新增FAI主记录信息 -->
  1976. <insert id="saveFAIRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  1977. INSERT INTO qc_fai_record (inspection_no, site, bu_no, state, task_date, inspection_type_no, inspection_cycle, order_no, operation_desc, resource_id, part_no, roll_qty, sampling_qty, ssr_id, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id)
  1978. VALUES(#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId}, #{partNo}, #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId})
  1979. </insert>
  1980. <insert id="saveFAIDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  1981. INSERT INTO qc_fai_detailed_record
  1982. (inspection_no, order_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc,
  1983. AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value,
  1984. max_value, value_type_db, value_type, site, sampling_qty, bu_no,order_id)
  1985. VALUES
  1986. (#{inspectionNo}, #{orderNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc},
  1987. #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL}, #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL},
  1988. #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo},#{orderId,jdbcType=INTEGER})
  1989. </insert>
  1990. <!-- 新增FAI明细记录信息 -->
  1991. <insert id="saveFAIDetailedRecords">
  1992. INSERT INTO qc_fai_detailed_record
  1993. (inspection_no, order_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc,
  1994. AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value,
  1995. max_value, value_type_db, value_type, site, sampling_qty, bu_no, order_id)
  1996. VALUES
  1997. <foreach collection="list" item="item" separator=",">
  1998. (#{item.inspectionNo}, #{item.orderNo}, #{item.templateId}, #{item.samplingLevelNo}, #{item.samplingLevelDesc}, #{item.samplingProgrammeNo}, #{item.samplingProgrammeDesc},
  1999. #{item.aql,jdbcType=DECIMAL}, #{item.ac,jdbcType=DECIMAL}, #{item.re,jdbcType=DECIMAL}, #{item.itemNo}, #{item.itemDesc}, #{item.objectId}, #{item.objectDesc}, #{item.defaultValue}, #{item.minValue,jdbcType=DECIMAL},
  2000. #{item.maxValue,jdbcType=DECIMAL}, #{item.valueTypeDb}, #{item.valueType}, #{item.site}, #{item.samplingQty,jdbcType=DECIMAL}, #{item.buNo}, #{item.orderId})
  2001. </foreach>
  2002. </insert>
  2003. <!-- 查询FAI主记录信息 -->
  2004. <select id="qcFAIInspectionSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2005. SELECT
  2006. a.inspection_no,
  2007. a.site,
  2008. a.bu_no,
  2009. a.state,
  2010. a.inspection_result,
  2011. a.task_date,
  2012. a.inspection_type_no,
  2013. dbo.qc_get_inspection_type_name(a.site, a.inspection_type_no) as inspectionTypeName,
  2014. a.inspection_cycle,
  2015. a.order_no,
  2016. a.operation_desc,
  2017. a.resource_id,
  2018. r.resource_desc,
  2019. a.part_no,
  2020. d.PartDescription as partDesc,
  2021. d.cinv_source_code as cinvSourceCode,
  2022. d.sku as sku,
  2023. d.invdefinetype as invdefinetype,
  2024. a.inspection_remark,
  2025. a.roll_qty,
  2026. a.sampling_qty,
  2027. a.disposal_measures,
  2028. a.disposal_remark,
  2029. a.inspector_date,
  2030. a.inspector_no,
  2031. u.user_display as inspectorName,
  2032. a.ssr_id,
  2033. a.unqualified_qty,
  2034. a.submit_flag,
  2035. a.seq_no,
  2036. a.batch_roll_no,
  2037. a.special_requirements,
  2038. a.work_center_no,
  2039. a.roll_no,
  2040. a.um_id,
  2041. um.UMName as umName,
  2042. a.action_date,
  2043. a.action_by,
  2044. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operator,
  2045. isnull(dbo.joint_name(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operatorName,
  2046. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePerson,
  2047. isnull(dbo.joint_name2(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePersonName,
  2048. a.pass_qty,
  2049. a.not_pass_qty,
  2050. a.batch_qualified_qty,
  2051. a.receipt_no,
  2052. a.receipt_item_no,
  2053. a.ref_info1,
  2054. a.ref_info2,
  2055. a.ref_info3,
  2056. a.ref_info4,
  2057. a.ref_info5
  2058. FROM qc_fai_record as a
  2059. left join part as d on a.site = d.site and a.bu_no = d.sourceBu and a.part_no = d.PartNo
  2060. left join sys_user as u on a.inspector_no = u.username
  2061. left join resource as r on a.site = r.site and a.resource_id = r.resource_id and a.work_center_no = r.work_center_no
  2062. left join UM as um on a.site = um.site and a.um_id = um.UMID
  2063. <where>
  2064. <if test="query.site != null and query.site != ''">
  2065. AND a.site = #{query.site}
  2066. </if>
  2067. <if test = "query.inspectionNo != null and query.inspectionNo != ''">
  2068. AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
  2069. </if>
  2070. <if test = "query.partNo != null and query.partNo != ''">
  2071. AND a.part_no LIKE '%' + #{query.partNo} + '%'
  2072. </if>
  2073. <if test = "query.partDesc != null and query.partDesc != ''">
  2074. AND d.PartDescription LIKE '%' + #{query.partDesc} + '%'
  2075. </if>
  2076. <if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
  2077. AND d.cinv_source_code LIKE '%' + #{query.cinvSourceCode} + '%'
  2078. </if>
  2079. <if test = "query.sku != null and query.sku != ''">
  2080. AND d.sku LIKE '%' + #{query.sku} + '%'
  2081. </if>
  2082. <if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
  2083. AND a.disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
  2084. </if>
  2085. <if test = "query.states != null and query.states.size > 0">
  2086. AND a.state in
  2087. <foreach item="item" collection="query.states" open="(" separator="," close=")">
  2088. #{item}
  2089. </foreach>
  2090. </if>
  2091. <if test = "query.inspectionResult != null and query.inspectionResult != ''">
  2092. AND a.inspection_result = #{query.inspectionResult}
  2093. </if>
  2094. <if test = "query.orderNo != null and query.orderNo != ''">
  2095. AND a.order_no LIKE '%' + #{query.orderNo} + '%'
  2096. </if>
  2097. <if test = "query.seqNo != null and query.seqNo != ''">
  2098. AND a.seq_no LIKE '%' + #{query.seqNo} + '%'
  2099. </if>
  2100. <if test = "query.operationDesc != null and query.operationDesc != ''">
  2101. AND a.operation_desc LIKE '%' + #{query.operationDesc} + '%'
  2102. </if>
  2103. <if test="query.startDate != null">
  2104. AND a.inspector_date >= #{query.startDate}
  2105. </if>
  2106. <if test="query.endDate != null">
  2107. AND #{query.endDate} >= a.inspector_date
  2108. </if>
  2109. <if test="query.startDate2 != null">
  2110. AND a.task_date >= #{query.startDate2}
  2111. </if>
  2112. <if test="query.endDate2 != null">
  2113. AND #{query.endDate2} >= a.task_date
  2114. </if>
  2115. </where>
  2116. ORDER BY
  2117. CASE WHEN a.state = '待检验' THEN 1
  2118. WHEN a.state = '待审核' THEN 2
  2119. WHEN a.state = '已完成' THEN 3
  2120. END, a.task_date desc
  2121. </select>
  2122. <!-- 获取物料的类别编码 -->
  2123. <select id="selectFamilyIdByPartNo" parameterType="string" resultType="string">
  2124. SELECT FamilyID
  2125. FROM part
  2126. WHERE PartNo = #{partNo} AND site = #{site}
  2127. </select>
  2128. <!-- FAI明细记录查询 -->
  2129. <select id="faiDetailSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2130. SELECT
  2131. a.site,
  2132. a.bu_no,
  2133. a.inspection_no,
  2134. a.order_no,
  2135. a.template_id,
  2136. a.sampling_level_no,
  2137. a.sampling_level_desc,
  2138. a.sampling_programme_no,
  2139. a.sampling_programme_desc,
  2140. a.AQL,
  2141. a.AC,
  2142. a.RE,
  2143. a.item_no,
  2144. a.item_desc,
  2145. a.object_id,
  2146. a.object_desc,
  2147. a.default_value,
  2148. a.min_value,
  2149. a.max_value,
  2150. a.text_value,
  2151. a.number_value,
  2152. a.value_type_db,
  2153. a.value_type,
  2154. case when a.item_result = '' or a.item_result is null then 'Y' else a.item_result end as itemResult,
  2155. a.is_submit,
  2156. isnull(a.unqualified_quantity,0) as unqualifiedQuantity,
  2157. a.sampling_qty,
  2158. dbo.qc_get_fai_sub_record_num(a.site, a.bu_no, a.inspection_no, a.item_no) as subDetailRecordNum,
  2159. c.method_no,
  2160. c.method_name,
  2161. c.method_remark,
  2162. (
  2163. SELECT COUNT(*)
  2164. FROM sys_oss
  2165. WHERE order_ref1 = a.site and order_ref2 = a.inspection_no and order_ref3 = a.item_no and order_ref4 = a.bu_no
  2166. ) AS imageDetailNum,
  2167. ISNULL(D.picture_flag,'N') as pictureFlag
  2168. FROM qc_fai_detailed_record as a
  2169. INNER JOIN qc_method_item as b on a.site = b.site and a.item_no = b.ItemNo and a.bu_no = b.bu_no
  2170. INNER JOIN qc_method as c on b.site = c.site and b.method_no = c.method_no and b.bu_no = c.bu_no
  2171. INNER JOIN eam_properties_item as d on a.site = d.site and a.item_no = d.ItemNo and a.bu_no = d.bu_no
  2172. WHERE a.inspection_no = #{inspectionNo} and a.site = #{site} and a.bu_no = #{buNo}
  2173. order by a.order_id
  2174. </select>
  2175. <!-- 修改FAI主记录信息 -->
  2176. <update id="updateFAIMasterRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2177. UPDATE qc_fai_record
  2178. SET disposal_measures = #{disposalMeasures},
  2179. disposal_remark = #{disposalRemark},
  2180. inspection_result = #{inspectionResult},
  2181. inspector_no = #{inspectorNo},
  2182. state = #{state},
  2183. inspection_remark = #{inspectionRemark},
  2184. inspector_date = getDate(),
  2185. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  2186. roll_qty = #{rollQty,jdbcType=DECIMAL},
  2187. unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL},
  2188. pass_qty = #{passQty,jdbcType=DECIMAL},
  2189. not_pass_qty = #{notPassQty,jdbcType=DECIMAL},
  2190. batch_qualified_qty = #{batchQualifiedQty,jdbcType=DECIMAL},
  2191. submit_date = getDate()
  2192. WHERE site = #{site} AND inspection_no = #{inspectionNo} and bu_no = #{buNo}
  2193. </update>
  2194. <!-- 修改FAI明细记录信息 -->
  2195. <update id="updateFAIDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2196. UPDATE qc_fai_detailed_record
  2197. SET item_result = #{itemResult},
  2198. unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL},
  2199. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  2200. text_value = #{textValue},
  2201. number_value = #{numberValue,jdbcType=DECIMAL}
  2202. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  2203. </update>
  2204. <!-- 修改子明细提交标识 -->
  2205. <update id="updateSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2206. UPDATE qc_fai_sub_detail_record
  2207. SET is_submit = 'Y'
  2208. WHERE inspection_no = #{inspectionNo}
  2209. </update>
  2210. <!-- 删除FAI检验记录 -->
  2211. <delete id="deleteFAIRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2212. DELETE FROM qc_fai_record
  2213. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2214. </delete>
  2215. <!-- 删除FAI明细记录信息 -->
  2216. <delete id="deleteFAIDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2217. DELETE FROM qc_fai_detailed_record
  2218. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2219. </delete>
  2220. <!-- 删除FAI子明细记录信息 -->
  2221. <delete id="deleteFAISubDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2222. DELETE FROM qc_fai_sub_detail_record
  2223. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2224. </delete>
  2225. <!-- 修改FAI主记录标识为已提交 -->
  2226. <update id="updateFAIMasterSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2227. UPDATE qc_fai_record
  2228. SET submit_flag = 'Y',
  2229. state = '已完成',
  2230. submit_date = getDate()
  2231. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2232. </update>
  2233. <!-- 修改FAI明细记录标识为已提交 -->
  2234. <update id="updateFAIDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2235. UPDATE qc_fai_detailed_record
  2236. SET is_submit = 'Y'
  2237. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2238. </update>
  2239. <!-- 修改子明细记录标识为已提交 -->
  2240. <update id="updateFAISubDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2241. UPDATE qc_fai_sub_detail_record
  2242. SET is_submit = 'Y'
  2243. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2244. </update>
  2245. <!-- 查询FAI检验记录是否已提交 -->
  2246. <select id="checkFAIIsSubmit" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2247. SELECT submit_flag
  2248. FROM qc_fai_record
  2249. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2250. </select>
  2251. <!-- 删除子明细的老数据 -->
  2252. <delete id="delFAISubDetailedRecord" parameterType="com.heai.modules.pms.data.QcSubDetailInformationData">
  2253. DELETE FROM qc_fai_sub_detail_record
  2254. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  2255. </delete>
  2256. <!-- 新增FAI子明细信息 -->
  2257. <insert id="saveFAISubDetailed">
  2258. INSERT INTO qc_fai_sub_detail_record
  2259. (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e)
  2260. VALUES
  2261. <foreach collection="list" item="item" separator=",">
  2262. (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE})
  2263. </foreach>
  2264. </insert>
  2265. <!-- 查询FAI的子明细 -->
  2266. <select id="selectFAISubDetailedRecord" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.SubDetailValues">
  2267. SELECT
  2268. site,
  2269. bu_no,
  2270. sub_detail_value,
  2271. sampling_location,
  2272. is_submit,
  2273. sampling_location_b,
  2274. num,
  2275. sub_detail_value_b,
  2276. sub_detail_value_c,
  2277. sub_detail_value_d,
  2278. sub_detail_value_e
  2279. FROM qc_fai_sub_detail_record
  2280. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  2281. <if test = "collectionDataContent != null and collectionDataContent != ''">
  2282. AND sub_detail_value ${collectionDataContent}
  2283. </if>
  2284. </select>
  2285. <!-- 获取该项目的子明细值 -->
  2286. <select id="selectFAISubDetailValue" parameterType="string" resultType="com.heai.modules.pms.data.SubDetailValues">
  2287. SELECT sub_detail_value,
  2288. sampling_location,
  2289. is_submit
  2290. FROM qc_fai_sub_detail_record
  2291. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site}
  2292. </select>
  2293. <!-- ================================================= IPQC检验维护 ================================================= -->
  2294. <!-- 查询IPQC基础数据 -->
  2295. <select id="selectIPQCBasicData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2296. SELECT
  2297. top 1
  2298. a.orderno as orderNo,
  2299. j.part_no,
  2300. j.part_desc,
  2301. c.operation_desc,
  2302. b.approve_qty as rollQty,
  2303. a.s_resourceid as resourceId,
  2304. DBO.getResourceDesc(a.site, a.s_resourceid) as resourceDesc,
  2305. a.itemno as itemNo,
  2306. a.id as ssrId
  2307. FROM soscheduledrouting as a
  2308. LEFT JOIN sfdc as b
  2309. ON a.site = b.site and a.seqno = b.assjob_seq_no and b.id in (
  2310. select max(sfdc.id)
  2311. from sfdc
  2312. group by sfdc.assjob_seq_no, site
  2313. )
  2314. LEFT JOIN so_routing as c
  2315. ON c.site = a.site and c.order_no = a.orderno and a.itemno = c.item_no
  2316. LEFT JOIN part j
  2317. ON a.site = j.site and a.part_no = j.part_no
  2318. LEFT JOIN (select ssr_id from qc_ipqc_record where check_type = '末件检') as temp
  2319. ON a.id = temp.ssr_id
  2320. WHERE b.approve_qty is not null and temp.ssr_id is null
  2321. ORDER BY a.id desc
  2322. </select>
  2323. <select id="qcExec" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="string" statementType="CALLABLE">
  2324. {CALL
  2325. getIpqcRecord(#{site,mode=IN,jdbcType=VARCHAR})
  2326. }
  2327. </select>
  2328. <insert id="saveIPQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2329. INSERT INTO qc_ipqc_detailed_record
  2330. (inspection_no, order_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc,
  2331. AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value,
  2332. max_value, value_type_db, value_type, site, sampling_qty, bu_no,order_id)
  2333. VALUES
  2334. (#{inspectionNo}, #{orderNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc},
  2335. #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL}, #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL},
  2336. #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo},#{orderId,jdbcType=INTEGER})
  2337. </insert>
  2338. <!-- 新增IPQC明细记录信息 -->
  2339. <insert id="saveIPQCDetailedRecords">
  2340. INSERT INTO qc_ipqc_detailed_record
  2341. (inspection_no, order_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc,
  2342. AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value,
  2343. max_value, value_type_db, value_type, site, sampling_qty, bu_no, order_id)
  2344. VALUES
  2345. <foreach collection="list" item="item" separator=",">
  2346. (#{item.inspectionNo}, #{item.orderNo}, #{item.templateId}, #{item.samplingLevelNo}, #{item.samplingLevelDesc}, #{item.samplingProgrammeNo}, #{item.samplingProgrammeDesc},
  2347. #{item.aql,jdbcType=DECIMAL}, #{item.ac,jdbcType=DECIMAL}, #{item.re,jdbcType=DECIMAL}, #{item.itemNo}, #{item.itemDesc}, #{item.objectId}, #{item.objectDesc}, #{item.defaultValue}, #{item.minValue,jdbcType=DECIMAL},
  2348. #{item.maxValue,jdbcType=DECIMAL}, #{item.valueTypeDb}, #{item.valueType}, #{item.site}, #{item.samplingQty,jdbcType=DECIMAL}, #{item.buNo}, #{item.orderId})
  2349. </foreach>
  2350. </insert>
  2351. <!-- 新增IPQC主记录信息 -->
  2352. <insert id="saveIPQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2353. INSERT INTO qc_ipqc_record
  2354. (inspection_no, site, bu_no, state, task_date, inspection_type_no, inspection_cycle, order_no, operation_desc, resource_id,
  2355. part_no, roll_qty, sampling_qty, ssr_id, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id,ref_info1,ref_info2)
  2356. VALUES
  2357. (#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId},
  2358. #{partNo}, #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId},#{refInfo1},#{refInfo2})
  2359. </insert>
  2360. <insert id="saveIQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2361. INSERT INTO qc_iqc_record
  2362. (inspection_no, site, bu_no, state, task_date, inspection_type_no, inspection_cycle, order_no, operation_desc, resource_id,
  2363. part_no, roll_qty, sampling_qty, ssr_id, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id,ref_info1,ref_info2)
  2364. VALUES
  2365. (#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId},
  2366. #{partNo}, #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId},#{refInfo1},#{refInfo2})
  2367. </insert>
  2368. <insert id="saveSQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2369. INSERT INTO qc_sqc_record
  2370. (inspection_no, site, bu_no, state, task_date, inspection_type_no, inspection_cycle, order_no, operation_desc, resource_id,
  2371. part_no, roll_qty, sampling_qty, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id,ref_info1,ref_info2)
  2372. VALUES
  2373. (#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId},
  2374. #{partNo}, #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId},#{refInfo1},#{refInfo2})
  2375. </insert>
  2376. <!-- 查询IPQC主记录信息 -->
  2377. <select id="qcIPQCInspectionSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2378. SELECT
  2379. a.inspection_no,
  2380. a.site,
  2381. a.bu_no,
  2382. a.state,
  2383. a.inspection_result,
  2384. a.task_date,
  2385. a.inspection_type_no,
  2386. a.inspection_cycle,
  2387. a.order_no,
  2388. a.operation_desc,
  2389. a.resource_id,
  2390. r.resource_desc,
  2391. a.part_no,
  2392. d.PartDescription as partDesc,
  2393. d.cinv_source_code as cinvSourceCode,
  2394. d.sku as sku,
  2395. d.invdefinetype as invdefinetype,
  2396. a.inspection_remark,
  2397. a.roll_qty,
  2398. a.sampling_qty,
  2399. a.disposal_measures,
  2400. a.disposal_remark,
  2401. a.inspector_date,
  2402. a.inspector_no,
  2403. u.user_display as inspectorName,
  2404. a.ssr_id,
  2405. a.unqualified_qty,
  2406. a.submit_flag,
  2407. a.seq_no,
  2408. a.batch_roll_no,
  2409. a.special_requirements,
  2410. a.work_center_no,
  2411. a.roll_no,
  2412. a.um_id,
  2413. um.UMName as umName,
  2414. a.action_date,
  2415. a.action_by,
  2416. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operator,
  2417. isnull(dbo.joint_name(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operatorName,
  2418. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePerson,
  2419. isnull(dbo.joint_name2(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePersonName,
  2420. a.pass_qty,
  2421. a.not_pass_qty,
  2422. a.batch_qualified_qty,
  2423. a.receipt_no,
  2424. a.receipt_item_no,
  2425. a.ref_info1,
  2426. a.ref_info2,
  2427. a.ref_info3,
  2428. a.ref_info4,
  2429. a.ref_info5
  2430. FROM qc_ipqc_record as a
  2431. left join part as d on a.site = d.site and a.part_no = d.partNo
  2432. left join sys_user as u on a.inspector_no = u.username
  2433. left join resource as r on a.site = r.site and a.resource_id = r.resource_id and a.work_center_no = r.work_center_no
  2434. left join UM as um on a.site = um.site and a.um_id = um.UMID
  2435. <where>
  2436. <if test="query.site != null and query.site != ''">
  2437. AND a.site = #{query.site}
  2438. </if>
  2439. <if test = "query.inspectionNo != null and query.inspectionNo != ''">
  2440. AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
  2441. </if>
  2442. <if test = "query.partNo != null and query.partNo != ''">
  2443. AND a.part_no LIKE '%' + #{query.partNo} + '%'
  2444. </if>
  2445. <if test = "query.partDesc != null and query.partDesc != ''">
  2446. AND d.PartDescription LIKE '%' + #{query.partDesc} + '%'
  2447. </if>
  2448. <if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
  2449. AND d.cinv_source_code LIKE '%' + #{query.cinvSourceCode} + '%'
  2450. </if>
  2451. <if test = "query.sku != null and query.sku != ''">
  2452. AND d.sku LIKE '%' + #{query.sku} + '%'
  2453. </if>
  2454. <if test = "query.states != null and query.states.size > 0">
  2455. AND a.state in
  2456. <foreach item="item" collection="query.states" open="(" separator="," close=")">
  2457. #{item}
  2458. </foreach>
  2459. </if>
  2460. <if test = "query.inspectionTypeNo != null and query.inspectionTypeNo != ''">
  2461. AND a.inspection_type_no = #{query.inspectionTypeNo}
  2462. </if>
  2463. <if test = "query.inspectionResult != null and query.inspectionResult != ''">
  2464. AND a.inspection_result = #{query.inspectionResult}
  2465. </if>
  2466. <if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
  2467. AND a.disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
  2468. </if>
  2469. <if test = "query.orderNo != null and query.orderNo != ''">
  2470. AND a.order_no LIKE '%' + #{query.orderNo} + '%'
  2471. </if>
  2472. <if test = "query.seqNo != null and query.seqNo != ''">
  2473. AND a.seq_no LIKE '%' + #{query.seqNo} + '%'
  2474. </if>
  2475. <if test = "query.operationDesc != null and query.operationDesc != ''">
  2476. AND a.operation_desc LIKE '%' + #{query.operationDesc} + '%'
  2477. </if>
  2478. <if test="query.startDate != null">
  2479. AND a.inspector_date >= #{query.startDate}
  2480. </if>
  2481. <if test="query.endDate != null">
  2482. AND #{query.endDate} >= a.inspector_date
  2483. </if>
  2484. <if test="query.startDate2 != null">
  2485. AND a.task_date >= #{query.startDate2}
  2486. </if>
  2487. <if test="query.endDate2 != null">
  2488. AND #{query.endDate2} >= a.task_date
  2489. </if>
  2490. </where>
  2491. ORDER BY
  2492. CASE WHEN a.state = '待检验' THEN 1
  2493. WHEN a.state = '待审核' THEN 2
  2494. WHEN a.state = '已完成' THEN 3
  2495. END, a.task_date desc
  2496. </select>
  2497. <!-- IPQC明细记录查询 -->
  2498. <select id="ipqcDetailSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2499. SELECT
  2500. a.site,
  2501. a.bu_no,
  2502. a.inspection_no,
  2503. a.order_no,
  2504. a.template_id,
  2505. a.sampling_level_no,
  2506. a.sampling_level_desc,
  2507. a.sampling_programme_no,
  2508. a.sampling_programme_desc,
  2509. a.AQL,
  2510. a.AC,
  2511. a.RE,
  2512. a.item_no,
  2513. a.item_desc,
  2514. a.object_id,
  2515. a.object_desc,
  2516. a.default_value,
  2517. a.min_value,
  2518. a.max_value,
  2519. a.text_value,
  2520. a.number_value,
  2521. a.value_type_db,
  2522. a.value_type,
  2523. case when a.item_result = '' or a.item_result is null then 'Y' else a.item_result end as itemResult,
  2524. a.is_submit,
  2525. isnull(a.unqualified_quantity,0) as unqualifiedQuantity,
  2526. a.sampling_qty,
  2527. dbo.qc_get_ipqc_sub_record_num(a.site, a.bu_no, a.inspection_no, a.item_no) as subDetailRecordNum,
  2528. c.method_no,
  2529. c.method_name,
  2530. c.method_remark,
  2531. (
  2532. SELECT COUNT(*)
  2533. FROM sys_oss
  2534. WHERE order_ref1 = a.site and order_ref2 = a.inspection_no and order_ref3 = a.item_no and order_ref4 = a.bu_no
  2535. ) AS imageDetailNum,
  2536. ISNULL(D.picture_flag,'N') as pictureFlag
  2537. FROM qc_ipqc_detailed_record as a
  2538. INNER JOIN qc_method_item as b on a.site = b.site and a.item_no = b.ItemNo and a.bu_no = b.bu_no
  2539. INNER JOIN qc_method as c on b.site = c.site and b.method_no = c.method_no and b.bu_no = c.bu_no
  2540. INNER JOIN eam_properties_item as d on a.site = d.site and a.item_no = d.ItemNo and a.bu_no = d.bu_no
  2541. WHERE a.inspection_no = #{inspectionNo} and a.site = #{site} and a.bu_no = #{buNo}
  2542. order by a.order_id
  2543. </select>
  2544. <!-- 删除IPQC检验记录 -->
  2545. <delete id="deleteIPQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2546. DELETE FROM qc_ipqc_record
  2547. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2548. </delete>
  2549. <!-- 删除IPQC明细记录信息 -->
  2550. <delete id="deleteIPQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2551. DELETE FROM qc_ipqc_detailed_record
  2552. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2553. </delete>
  2554. <!-- 删除IPQC子明细记录信息 -->
  2555. <delete id="deleteIPQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2556. DELETE FROM qc_ipqc_sub_detail_record
  2557. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2558. </delete>
  2559. <!-- 修改IPQC主记录信息 -->
  2560. <update id="updateIPQCMasterRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2561. UPDATE qc_ipqc_record
  2562. SET disposal_measures = #{disposalMeasures},
  2563. disposal_remark = #{disposalRemark},
  2564. inspection_result = #{inspectionResult},
  2565. inspector_no = #{inspectorNo},
  2566. state = #{state},
  2567. inspection_remark = #{inspectionRemark},
  2568. inspector_date = getDate(),
  2569. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  2570. roll_qty = #{rollQty,jdbcType=DECIMAL},
  2571. unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL},
  2572. pass_qty = #{passQty,jdbcType=DECIMAL},
  2573. not_pass_qty = #{notPassQty,jdbcType=DECIMAL},
  2574. batch_qualified_qty = #{batchQualifiedQty,jdbcType=DECIMAL},
  2575. submit_date = getDate()
  2576. WHERE site = #{site} and inspection_no = #{inspectionNo} and bu_no = #{buNo}
  2577. </update>
  2578. <!-- 修改IPQC明细记录信息 -->
  2579. <update id="updateIPQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2580. UPDATE qc_ipqc_detailed_record
  2581. SET item_result = #{itemResult},
  2582. unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL},
  2583. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  2584. text_value = #{textValue},
  2585. number_value = #{numberValue,jdbcType=DECIMAL}
  2586. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  2587. </update>
  2588. <!-- 修改IPQC主记录标识为已提交 -->
  2589. <update id="updateIPQCMasterSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2590. UPDATE qc_ipqc_record
  2591. SET submit_flag = 'Y',
  2592. state = '已完成',
  2593. submit_date = getDate()
  2594. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2595. </update>
  2596. <!-- 修改IPQC明细记录标识为已提交 -->
  2597. <update id="updateIPQCDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2598. UPDATE qc_ipqc_detailed_record
  2599. SET is_submit = 'Y'
  2600. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2601. </update>
  2602. <!-- 修改IPQC子明细记录标识为已提交 -->
  2603. <update id="updateIPQCSubDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2604. UPDATE qc_ipqc_sub_detail_record
  2605. SET is_submit = 'Y'
  2606. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2607. </update>
  2608. <!-- 删除IPQC子明细的老数据 -->
  2609. <delete id="delIPQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcSubDetailInformationData">
  2610. DELETE FROM qc_ipqc_sub_detail_record
  2611. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  2612. </delete>
  2613. <!-- 新增IPQC子明细信息 -->
  2614. <insert id="saveIPQCSubDetailed">
  2615. INSERT INTO qc_ipqc_sub_detail_record
  2616. (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e)
  2617. VALUES
  2618. <foreach collection="list" item="item" separator=",">
  2619. (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE})
  2620. </foreach>
  2621. </insert>
  2622. <!-- 查询IPQC的子明细 -->
  2623. <select id="selectIPQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.SubDetailValues">
  2624. SELECT
  2625. site,
  2626. bu_no,
  2627. sub_detail_value,
  2628. sampling_location,
  2629. is_submit,
  2630. sampling_location_b,
  2631. num,
  2632. sub_detail_value_b,
  2633. sub_detail_value_c,
  2634. sub_detail_value_d,
  2635. sub_detail_value_e
  2636. FROM qc_ipqc_sub_detail_record
  2637. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  2638. <if test = "collectionDataContent != null and collectionDataContent != ''">
  2639. AND sub_detail_value ${collectionDataContent}
  2640. </if>
  2641. </select>
  2642. <!-- 查询IPQC检验记录是否已提交 -->
  2643. <select id="checkIPQCIsSubmit" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2644. SELECT submit_flag
  2645. FROM qc_ipqc_record
  2646. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2647. </select>
  2648. <!-- 获取该项目的子明细值 -->
  2649. <select id="selectIPQCSubDetailValue" parameterType="string" resultType="com.heai.modules.pms.data.SubDetailValues">
  2650. SELECT sub_detail_value,
  2651. sampling_location,
  2652. is_submit
  2653. FROM qc_ipqc_sub_detail_record
  2654. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site}
  2655. </select>
  2656. <!-- 查询工序列表 -->
  2657. <select id="getOperationList" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2658. SELECT
  2659. DISTINCT
  2660. a.seqno as seqNo,
  2661. a.orderno as orderNo,
  2662. j.partNo,
  2663. j.PartDescription,
  2664. j.invdefinetype,
  2665. j.sku,
  2666. c.OperationDesc as operationDesc,
  2667. a.itemno as operationNo,
  2668. a.s_resourceid as resourceId,
  2669. r.resource_desc as resourceDesc,
  2670. c.work_center_no
  2671. FROM soscheduledrouting as a
  2672. LEFT JOIN RoutingDetail AS c ON c.site = a.site AND a.itemno = c.itemNo
  2673. LEFT JOIN part j ON a.site = j.site and a.partNo = j.partNo
  2674. LEFT JOIN resource r ON a.site = r.site and a.s_resourceid = r.resource_id
  2675. WHERE a.site = #{site} and a.seqno = #{seqNo}
  2676. </select>
  2677. <!-- 根据工单号和工序号查出所有数据 -->
  2678. <select id="getResourceList" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2679. SELECT
  2680. a.s_resourceid as resourceId,
  2681. DBO.getResourceDesc(a.site, a.s_resourceid) as resourceDesc,
  2682. c.work_center_no
  2683. FROM soscheduledrouting as a
  2684. LEFT JOIN sfdc as b ON a.site = b.site and a.seqno = b.assjob_seq_no
  2685. LEFT JOIN so_routing as c ON c.site = a.site and c.order_no = a.orderno and a.itemno = c.item_no
  2686. LEFT JOIN part j ON a.site = j.site and a.part_no = j.part_no
  2687. WHERE a.site = #{site} and b.approve_qty is not null and a.seqno = #{seqNo}
  2688. ORDER BY a.id desc
  2689. </select>
  2690. <!-- a.orderno = #{orderNo} and c.operation_desc = #{operationDesc}-->
  2691. <!-- 查询机台名称 -->
  2692. <select id="selectResourceDesc" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2693. SELECT distinct
  2694. resource_desc
  2695. FROM resource
  2696. WHERE site = #{site} and resource_id = #{resourceId}
  2697. </select>
  2698. <!-- 查询物料名称 -->
  2699. <select id="selectPartDesc" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2700. SELECT distinct
  2701. part_desc
  2702. FROM part
  2703. WHERE site = #{site} and part_no = #{partNo}
  2704. </select>
  2705. <!-- ================================================= IQC检验维护 ================================================= -->
  2706. <!-- 查询IQC基础数据 -->
  2707. <select id="selectIQCBasicData" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2708. SELECT
  2709. qir.inspection_no,
  2710. qir.state,
  2711. qir.create_date as taskDate,
  2712. qir.roll_no,
  2713. qir.part_no,
  2714. p.part_desc,
  2715. p.cinv_source_code,
  2716. p.sku as sku,
  2717. qir.roll_qty,
  2718. qir.print_flag,
  2719. qir.create_by,
  2720. qir.supplier_no,
  2721. qir.site,
  2722. qir.bu_no,
  2723. qir.po_orderNo,
  2724. qir.po_itemNo,
  2725. qir.roll_count
  2726. FROM qc_iqc_record as qir
  2727. LEFT JOIN part p ON qir.part_no = p.part_no and qir.site = p.site
  2728. WHERE qir.site in (select site from eam_access_site where username = #{userName})
  2729. and (qir.site + '-' + qir.bu_no) in (select * from dbo.query_bu(#{userName}))
  2730. and qir.detail_flag = 'N'
  2731. </select>
  2732. <!-- 新增IQC明细记录信息 -->
  2733. <insert id="saveIQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2734. INSERT INTO qc_iqc_detailed_record (inspection_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc, AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value, max_value, value_type_db, value_type, site, sampling_qty, bu_no,order_id)
  2735. VALUES(#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL}, #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL}, #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site}, #{samplingQty}, #{buNo},#{orderId,jdbcType=INTEGER})
  2736. </insert>
  2737. <insert id="saveIQCDetailedRecordByTemplate" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2738. INSERT INTO dbo.qc_iqc_detailed_record
  2739. (
  2740. inspection_no, template_id, sampling_level_no, sampling_level_desc,
  2741. sampling_programme_no, sampling_programme_desc, AQL, AC, RE,
  2742. item_no, item_desc, default_value, min_value, max_value,
  2743. item_result, value_type_db, value_type, is_submit, site, sampling_qty, bu_no, order_id
  2744. )
  2745. SELECT
  2746. #{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc},
  2747. #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL},
  2748. A.ItemNo, B.ItemDesc,
  2749. COALESCE(C.default_value, A.default_value, B.defaultValue),
  2750. COALESCE(C.min_value, A.min_value, B.minvalue),
  2751. COALESCE(C.max_value, A.max_value, B.maxValue),
  2752. 'Y', B.ValueType_DB, B.ValueType, 'N', #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo}, A.order_id
  2753. FROM qc_template_detailed A
  2754. INNER JOIN eam_properties_item B ON A.SITE = B.SITE AND A.bu_no = B.bu_no AND A.ItemNo = B.ItemNo
  2755. LEFT JOIN qc_part_attr_detailed C ON B.site = C.site AND B.bu_no = C.bu_no AND B.ItemNo = C.item_no AND C.attribute_no = #{partNo}
  2756. WHERE A.SITE = #{site} AND A.bu_no = #{buNo} AND A.template_id = #{templateId}
  2757. </insert>
  2758. <insert id="saveFAIDetailedRecordByTemplate" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2759. INSERT INTO dbo.qc_fai_detailed_record
  2760. (
  2761. inspection_no, template_id, sampling_level_no, sampling_level_desc,
  2762. sampling_programme_no, sampling_programme_desc, AQL, AC, RE,
  2763. item_no, item_desc, object_id, object_desc, default_value, min_value, max_value,
  2764. item_result, value_type_db, value_type, is_submit, site, sampling_qty, bu_no, order_id,order_no
  2765. )
  2766. SELECT
  2767. #{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc},
  2768. #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL},
  2769. A.ItemNo, B.ItemDesc, A.object_id, A.object_desc,
  2770. COALESCE(C.default_value, A.default_value, B.defaultValue),
  2771. COALESCE(C.min_value, A.min_value, B.minvalue),
  2772. COALESCE(C.max_value, A.max_value, B.maxValue),
  2773. 'Y', B.ValueType_DB, B.ValueType, 'N', #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo}, A.order_id,#{orderNo}
  2774. FROM qc_template_detailed A
  2775. INNER JOIN eam_properties_item B ON A.SITE = B.SITE AND A.bu_no = B.bu_no AND A.ItemNo = B.ItemNo
  2776. LEFT JOIN qc_part_attr_detailed C ON B.site = C.site AND B.bu_no = C.bu_no AND B.ItemNo = C.item_no AND C.attribute_no = #{partNo}
  2777. WHERE A.SITE = #{site} AND A.bu_no = #{buNo} AND A.template_id = #{templateId}
  2778. </insert>
  2779. <insert id="saveIPQCDetailedRecordByTemplate" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2780. INSERT INTO dbo.qc_ipqc_detailed_record
  2781. (
  2782. inspection_no, template_id, sampling_level_no, sampling_level_desc,
  2783. sampling_programme_no, sampling_programme_desc, AQL, AC, RE,
  2784. item_no, item_desc, object_id, object_desc, default_value, min_value, max_value,
  2785. item_result, value_type_db, value_type, is_submit, site, sampling_qty, bu_no, order_id,order_no
  2786. )
  2787. SELECT
  2788. #{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc},
  2789. #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL},
  2790. A.ItemNo, B.ItemDesc, A.object_id, A.object_desc,
  2791. COALESCE(C.default_value, A.default_value, B.defaultValue),
  2792. COALESCE(C.min_value, A.min_value, B.minvalue),
  2793. COALESCE(C.max_value, A.max_value, B.maxValue),
  2794. 'Y', B.ValueType_DB, B.ValueType, 'N', #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo}, A.order_id,#{orderNo}
  2795. FROM qc_template_detailed A
  2796. INNER JOIN eam_properties_item B ON A.SITE = B.SITE AND A.bu_no = B.bu_no AND A.ItemNo = B.ItemNo
  2797. LEFT JOIN qc_part_attr_detailed C ON B.site = C.site AND B.bu_no = C.bu_no AND B.ItemNo = C.item_no AND C.attribute_no = #{partNo}
  2798. WHERE A.SITE = #{site} AND A.bu_no = #{buNo} AND A.template_id = #{templateId}
  2799. </insert>
  2800. <insert id="saveFQCDetailedRecordByTemplate" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2801. INSERT INTO dbo.qc_fqc_detailed_record
  2802. (
  2803. inspection_no, template_id, sampling_level_no, sampling_level_desc,
  2804. sampling_programme_no, sampling_programme_desc, AQL, AC, RE,
  2805. item_no, item_desc, object_id, default_value, min_value, max_value,
  2806. item_result, value_type_db, value_type, is_submit, site, sampling_qty, bu_no, order_id,order_no
  2807. )
  2808. SELECT
  2809. #{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc},
  2810. #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL},
  2811. A.ItemNo, B.ItemDesc, A.object_id,
  2812. COALESCE(C.default_value, A.default_value, B.defaultValue),
  2813. COALESCE(C.min_value, A.min_value, B.minvalue),
  2814. COALESCE(C.max_value, A.max_value, B.maxValue),
  2815. 'Y', B.ValueType_DB, B.ValueType, 'N', #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo}, A.order_id,#{orderNo}
  2816. FROM qc_template_detailed A
  2817. INNER JOIN eam_properties_item B ON A.SITE = B.SITE AND A.bu_no = B.bu_no AND A.ItemNo = B.ItemNo
  2818. LEFT JOIN qc_part_attr_detailed C ON B.site = C.site AND B.bu_no = C.bu_no AND B.ItemNo = C.item_no AND C.attribute_no = #{partNo}
  2819. WHERE A.SITE = #{site} AND A.bu_no = #{buNo} AND A.template_id = #{templateId}
  2820. </insert>
  2821. <!-- 修改IQC检验记录 -->
  2822. <update id="updateIQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2823. UPDATE qc_iqc_record
  2824. SET inspection_type_no = #{inspectionTypeNo},
  2825. sampling_qty = #{samplingQty},
  2826. inspection_cycle = #{inspectionCycle},
  2827. part_no = #{partNo},
  2828. supplier_no = #{supplierNo},
  2829. part_desc = #{partDesc},
  2830. detail_flag = 'Y',
  2831. state = '未开始',
  2832. action_date = #{actionDate},
  2833. action_by = ''
  2834. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2835. </update>
  2836. <update id="updateFAIRecordOverLoad" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2837. UPDATE qc_fai_record
  2838. SET inspection_type_no = #{inspectionTypeNo},
  2839. sampling_qty = #{samplingQty},
  2840. inspection_cycle = #{inspectionCycle},
  2841. part_no = #{partNo},
  2842. state = '未开始',
  2843. action_date = '',
  2844. action_by = ''
  2845. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2846. </update>
  2847. <update id="updateIPQCRecordOverLoad" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2848. UPDATE qc_ipqc_record
  2849. SET inspection_type_no = #{inspectionTypeNo},
  2850. sampling_qty = #{samplingQty},
  2851. inspection_cycle = #{inspectionCycle},
  2852. part_no = #{partNo},
  2853. state = '未开始',
  2854. action_date = '',
  2855. action_by = ''
  2856. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2857. </update>
  2858. <update id="updateFQCRecordOverLoad" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  2859. UPDATE qc_fqc_record
  2860. SET inspection_type_no = #{inspectionTypeNo},
  2861. sampling_qty = #{samplingQty},
  2862. inspection_cycle = #{inspectionCycle},
  2863. part_no = #{partNo},
  2864. state = '未开始',
  2865. action_date = '',
  2866. action_by = ''
  2867. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  2868. </update>
  2869. <!-- 查询IQC主记录信息 -->
  2870. <select id="qcIQCInspectionSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  2871. SELECT
  2872. a.inspection_no,
  2873. a.site,
  2874. a.bu_no,
  2875. a.state,
  2876. a.inspection_result,
  2877. a.create_date as taskDate,
  2878. a.inspection_type_no,
  2879. a.inspection_cycle,
  2880. a.part_no,
  2881. d.PartDescription as partDesc,
  2882. d.cinv_source_code as cinvSourceCode,
  2883. d.sku,
  2884. d.umid as umId,
  2885. d.invdefinetype as invdefinetype,
  2886. a.inspection_remark,
  2887. a.roll_qty,
  2888. a.sampling_qty,
  2889. a.disposal_measures,
  2890. a.disposal_remark,
  2891. a.inspector_date,
  2892. a.inspector_no,
  2893. u.user_display as inspectorName,
  2894. a.unqualified_quantity,
  2895. a.submit_flag,
  2896. a.roll_no,
  2897. a.supplier_no,
  2898. s.SupplierName as supplierDesc,
  2899. a.po_orderNo,
  2900. a.po_itemNo,
  2901. a.roll_count,
  2902. dbo.qc_get_order_type(a.site, a.po_orderNo, a.po_itemNo) as orderType,
  2903. a.action_date,
  2904. a.action_by,
  2905. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operator,
  2906. isnull(dbo.joint_name(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operatorName,
  2907. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePerson,
  2908. isnull(dbo.joint_name2(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePersonName,
  2909. a.submission_remark,
  2910. a.submission_type,
  2911. a.batch_no,
  2912. a.production_date,
  2913. a.expiration_warning_date,
  2914. a.expiration_date,
  2915. a.cancel_check_date,
  2916. a.submit_date,
  2917. a.pass_qty,
  2918. a.not_pass_qty,
  2919. a.batch_qualified_qty,
  2920. a.receipt_no,
  2921. a.receipt_item_no,
  2922. a.ref_info1,
  2923. a.ref_info2,
  2924. a.ref_info3,
  2925. a.ref_info4,
  2926. a.ref_info5
  2927. FROM qc_iqc_record as a
  2928. left join part as d on a.site = d.site and a.bu_no = d.sourceBu and a.part_no = d.partNo
  2929. left join view_Supplier as s on a.site = s.site and a.supplier_no = s.SupplierID
  2930. left join sys_user as u on a.inspector_no = u.username
  2931. <where>
  2932. <if test="query.site != null and query.site != ''">
  2933. AND a.site = #{query.site}
  2934. </if>
  2935. <if test = "query.inspectionNo != null and query.inspectionNo != ''">
  2936. AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
  2937. </if>
  2938. <if test = "query.states != null and query.states.size > 0">
  2939. AND a.state in
  2940. <foreach item="item" collection="query.states" open="(" separator="," close=")">
  2941. #{item}
  2942. </foreach>
  2943. </if>
  2944. <if test = "query.inspectionResult != null and query.inspectionResult != ''">
  2945. AND a.inspection_result = #{query.inspectionResult}
  2946. </if>
  2947. <if test = "query.partNo != null and query.partNo != ''">
  2948. AND a.part_no LIKE '%' + #{query.partNo} + '%'
  2949. </if>
  2950. <if test = "query.partDesc != null and query.partDesc != ''">
  2951. AND a.part_desc LIKE '%' + #{query.partDesc} + '%'
  2952. </if>
  2953. <if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
  2954. AND d.cinv_source_code LIKE '%' + #{query.cinvSourceCode} + '%'
  2955. </if>
  2956. <if test = "query.sku != null and query.sku != ''">
  2957. AND d.sku LIKE '%' + #{query.sku} + '%'
  2958. </if>
  2959. <if test = "query.supplierDesc != null and query.supplierDesc != ''">
  2960. AND s.SupplierName LIKE '%' + #{query.supplierDesc} + '%'
  2961. </if>
  2962. <if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
  2963. AND a.disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
  2964. </if>
  2965. <if test = "query.inspectorName != null and query.inspectorName != ''">
  2966. u.user_display LIKE '%' + #{query.inspectorName} + '%'
  2967. </if>
  2968. <if test="query.startDate != null">
  2969. AND a.inspector_date >= #{query.startDate}
  2970. </if>
  2971. <if test="query.endDate != null">
  2972. AND #{query.endDate} >= a.inspector_date
  2973. </if>
  2974. <if test="query.startDate2 != null">
  2975. AND a.create_date >= #{query.startDate2}
  2976. </if>
  2977. <if test="query.endDate2 != null">
  2978. AND #{query.endDate2} >= a.create_date
  2979. </if>
  2980. <if test = "query.poOrderNo != null and query.poOrderNo != ''">
  2981. AND a.po_orderNo LIKE '%' + #{query.poOrderNo} + '%'
  2982. </if>
  2983. <if test = "query.poItemNo != null and query.poItemNo != ''">
  2984. AND a.po_itemNo LIKE '%' + #{query.poItemNo} + '%'
  2985. </if>
  2986. <if test = "query.orderType != null and query.orderType != ''">
  2987. AND dbo.qc_get_order_type(a.site, a.po_orderNo, a.po_itemNo) = #{query.orderType}
  2988. </if>
  2989. <if test = "query.submissionType != null and query.submissionType != ''">
  2990. AND a.submission_type = #{query.submissionType}
  2991. </if>
  2992. <if test = "query.invdefinetype != null and query.invdefinetype != ''">
  2993. AND d.invdefinetype LIKE '%' + #{query.invdefinetype} + '%'
  2994. </if>
  2995. </where>
  2996. ORDER BY
  2997. CASE WHEN a.state = '待检验' THEN 1
  2998. WHEN a.state = '待审核' THEN 2
  2999. WHEN a.state = '已完成' THEN 3
  3000. END, a.create_date desc
  3001. </select>
  3002. <!-- IQC明细记录查询 -->
  3003. <select id="iqcDetailSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3004. SELECT
  3005. a.site,
  3006. a.bu_no,
  3007. a.inspection_no,
  3008. a.template_id,
  3009. a.sampling_level_no,
  3010. a.sampling_level_desc,
  3011. a.sampling_programme_no,
  3012. a.sampling_programme_desc,
  3013. a.AQL,
  3014. a.AC,
  3015. a.RE,
  3016. a.item_no,
  3017. a.item_desc,
  3018. a.object_id,
  3019. a.object_desc,
  3020. a.default_value,
  3021. a.min_value,
  3022. a.max_value,
  3023. a.text_value,
  3024. a.number_value,
  3025. a.value_type_db,
  3026. a.value_type,
  3027. case when a.item_result = '' or a.item_result is null then 'Y' else a.item_result end as itemResult,
  3028. a.is_submit,
  3029. isnull(a.unqualified_quantity,0) as unqualifiedQuantity,
  3030. dbo.qc_get_iqc_sub_record_num(a.site, a.bu_no, a.inspection_no, a.item_no) as subDetailRecordNum,
  3031. c.method_no,
  3032. c.method_name,
  3033. c.method_remark,
  3034. a.sampling_qty,
  3035. (
  3036. SELECT COUNT(*)
  3037. FROM sys_oss
  3038. WHERE order_ref1 = a.site and order_ref2 = a.inspection_no and order_ref3 = a.item_no and order_ref4 = a.bu_no
  3039. ) AS imageDetailNum,
  3040. ISNULL(D.picture_flag,'N') as pictureFlag
  3041. FROM qc_iqc_detailed_record as a
  3042. INNER JOIN qc_method_item as b on a.site = b.site and a.item_no = b.ItemNo and a.bu_no = b.bu_no
  3043. INNER JOIN qc_method as c on b.site = c.site and b.method_no = c.method_no and b.bu_no = c.bu_no
  3044. INNER JOIN eam_properties_item as d on a.site = d.site and a.item_no = d.ItemNo and a.bu_no = d.bu_no
  3045. WHERE a.inspection_no = #{inspectionNo} and a.site = #{site} and a.bu_no = #{buNo}
  3046. order by a.order_id
  3047. </select>
  3048. <!-- 查询IQC的子明细 -->
  3049. <select id="selectIQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.SubDetailValues">
  3050. SELECT
  3051. site,
  3052. bu_no,
  3053. sub_detail_value,
  3054. sampling_location,
  3055. is_submit,
  3056. sampling_location_b,
  3057. num,
  3058. sub_detail_value_b,
  3059. sub_detail_value_c,
  3060. sub_detail_value_d,
  3061. sub_detail_value_e
  3062. FROM qc_iqc_sub_detail_record
  3063. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3064. <if test = "collectionDataContent != null and collectionDataContent != ''">
  3065. AND sub_detail_value ${collectionDataContent}
  3066. </if>
  3067. </select>
  3068. <!-- 获取该项目的子明细值 -->
  3069. <select id="selectIQCSubDetailValue" parameterType="string" resultType="com.heai.modules.pms.data.SubDetailValues">
  3070. SELECT sub_detail_value,
  3071. sampling_location,
  3072. is_submit
  3073. FROM qc_iqc_sub_detail_record
  3074. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site}
  3075. </select>
  3076. <!-- 修改IQC主记录信息 -->
  3077. <update id="updateIQCMasterRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3078. UPDATE qc_iqc_record
  3079. SET disposal_measures = #{disposalMeasures},
  3080. disposal_remark = #{disposalRemark},
  3081. inspection_result = #{inspectionResult},
  3082. inspector_no = #{inspectorNo},
  3083. state = #{state},
  3084. inspection_remark = #{inspectionRemark},
  3085. inspector_date = getDate(),
  3086. roll_count = #{rollCount,jdbcType=DECIMAL},
  3087. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  3088. unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL},
  3089. pass_qty = #{passQty,jdbcType=DECIMAL},
  3090. not_pass_qty = #{notPassQty,jdbcType=DECIMAL},
  3091. batch_qualified_qty = #{batchQualifiedQty,jdbcType=DECIMAL},
  3092. submit_date = getDate()
  3093. WHERE site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  3094. </update>
  3095. <!-- 修改IQC明细记录信息 -->
  3096. <update id="updateIQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3097. UPDATE qc_iqc_detailed_record
  3098. SET item_result = #{itemResult},
  3099. unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL},
  3100. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  3101. text_value = #{textValue},
  3102. number_value = #{numberValue,jdbcType=DECIMAL}
  3103. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3104. </update>
  3105. <!-- 查询该记录明细是否已存在 -->
  3106. <select id="checkIQCDetail" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3107. SELECT inspection_no,
  3108. template_id
  3109. FROM qc_iqc_detailed_record
  3110. WHERE inspection_no = #{inspectionNo} and site = #{site}
  3111. </select>
  3112. <!-- 查询IQC检验记录是否已提交 -->
  3113. <select id="checkIQCIsSubmit" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3114. SELECT submit_flag
  3115. FROM qc_iqc_record
  3116. WHERE inspection_no = #{inspectionNo} and site = #{site}
  3117. </select>
  3118. <!-- 删除IQC子明细的老数据 -->
  3119. <delete id="delIQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcSubDetailInformationData">
  3120. DELETE FROM qc_iqc_sub_detail_record
  3121. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3122. </delete>
  3123. <!-- ================================================= SQC检验维护 ================================================= -->
  3124. <!-- 查询SQC基础数据 -->
  3125. <select id="selectSQCBasicData" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3126. SELECT
  3127. qir.inspection_no,
  3128. qir.state,
  3129. qir.create_date as taskDate,
  3130. qir.roll_no,
  3131. qir.part_no,
  3132. p.part_desc,
  3133. p.cinv_source_code,
  3134. p.sku as sku,
  3135. qir.roll_qty,
  3136. qir.print_flag,
  3137. qir.create_by,
  3138. qir.supplier_no,
  3139. qir.site,
  3140. qir.bu_no,
  3141. qir.po_orderNo,
  3142. qir.po_itemNo,
  3143. qir.roll_count
  3144. FROM qc_sqc_record as qir
  3145. LEFT JOIN part p ON qir.part_no = p.part_no and qir.site = p.site
  3146. WHERE qir.site in (select site from eam_access_site where username = #{userName})
  3147. and (qir.site + '-' + qir.bu_no) in (select * from dbo.query_bu(#{userName}))
  3148. and qir.detail_flag = 'N'
  3149. </select>
  3150. <!-- 新增SQC明细记录信息 -->
  3151. <insert id="saveSQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3152. INSERT INTO qc_sqc_detailed_record (inspection_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc, AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value, max_value, value_type_db, value_type, site, sampling_qty, bu_no,order_id)
  3153. VALUES(#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL}, #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL}, #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site}, #{samplingQty}, #{buNo},#{orderId,jdbcType=INTEGER})
  3154. </insert>
  3155. <!-- 修改SQC检验记录 -->
  3156. <update id="updateSQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3157. UPDATE qc_sqc_record
  3158. SET inspection_type_no = #{inspectionTypeNo},
  3159. sampling_qty = #{samplingQty},
  3160. inspection_cycle = #{inspectionCycle},
  3161. part_no = #{partNo},
  3162. supplier_no = #{supplierNo},
  3163. part_desc = #{partDesc},
  3164. detail_flag = 'Y',
  3165. state = '未开始',
  3166. action_date = '',
  3167. action_by = ''
  3168. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3169. </update>
  3170. <!-- 查询SQC主记录信息 -->
  3171. <select id="qcSQCInspectionSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3172. SELECT
  3173. a.inspection_no,
  3174. a.site,
  3175. a.bu_no,
  3176. a.state,
  3177. a.inspection_result,
  3178. a.create_date as taskDate,
  3179. a.inspection_type_no,
  3180. a.inspection_cycle,
  3181. a.part_no,
  3182. d.PartDescription as partDesc,
  3183. d.cinv_source_code as cinvSourceCode,
  3184. d.sku,
  3185. d.umid as umId,
  3186. d.invdefinetype as invdefinetype,
  3187. a.inspection_remark,
  3188. a.roll_qty,
  3189. a.sampling_qty,
  3190. a.disposal_measures,
  3191. a.disposal_remark,
  3192. a.inspector_date,
  3193. a.inspector_no,
  3194. u.user_display as inspectorName,
  3195. a.unqualified_quantity,
  3196. a.submit_flag,
  3197. a.roll_no,
  3198. a.supplier_no,
  3199. s.SupplierName as supplierDesc,
  3200. a.po_orderNo,
  3201. a.po_itemNo,
  3202. a.roll_count,
  3203. dbo.qc_get_order_type(a.site, a.po_orderNo, a.po_itemNo) as orderType,
  3204. a.action_date,
  3205. a.action_by,
  3206. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operator,
  3207. isnull(dbo.joint_name(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operatorName,
  3208. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePerson,
  3209. isnull(dbo.joint_name2(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePersonName,
  3210. a.submission_remark,
  3211. a.submission_type,
  3212. a.batch_no,
  3213. a.production_date,
  3214. a.expiration_warning_date,
  3215. a.expiration_date,
  3216. a.cancel_check_date,
  3217. a.submit_date,
  3218. a.pass_qty,
  3219. a.not_pass_qty,
  3220. a.batch_qualified_qty,
  3221. a.ref_info1,
  3222. a.ref_info2,
  3223. a.ref_info3,
  3224. a.ref_info4,
  3225. a.ref_info5
  3226. FROM qc_sqc_record as a
  3227. left join part as d on a.site = d.site and a.bu_no = d.sourceBu and a.part_no = d.partNo
  3228. left join view_Supplier as s on a.site = s.site and a.supplier_no = s.SupplierID
  3229. left join sys_user as u on a.inspector_no = u.username
  3230. <where>
  3231. <if test="query.site != null and query.site != ''">
  3232. AND a.site = #{query.site}
  3233. </if>
  3234. <if test = "query.inspectionNo != null and query.inspectionNo != ''">
  3235. AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
  3236. </if>
  3237. <if test = "query.states != null and query.states.size > 0">
  3238. AND a.state in
  3239. <foreach item="item" collection="query.states" open="(" separator="," close=")">
  3240. #{item}
  3241. </foreach>
  3242. </if>
  3243. <if test = "query.inspectionResult != null and query.inspectionResult != ''">
  3244. AND a.inspection_result = #{query.inspectionResult}
  3245. </if>
  3246. <if test = "query.partNo != null and query.partNo != ''">
  3247. AND a.part_no LIKE '%' + #{query.partNo} + '%'
  3248. </if>
  3249. <if test = "query.partDesc != null and query.partDesc != ''">
  3250. AND a.part_desc LIKE '%' + #{query.partDesc} + '%'
  3251. </if>
  3252. <if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
  3253. AND d.cinv_source_code LIKE '%' + #{query.cinvSourceCode} + '%'
  3254. </if>
  3255. <if test = "query.sku != null and query.sku != ''">
  3256. AND d.sku LIKE '%' + #{query.sku} + '%'
  3257. </if>
  3258. <if test = "query.supplierDesc != null and query.supplierDesc != ''">
  3259. AND s.SupplierName LIKE '%' + #{query.supplierDesc} + '%'
  3260. </if>
  3261. <if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
  3262. AND a.disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
  3263. </if>
  3264. <if test = "query.inspectorName != null and query.inspectorName != ''">
  3265. u.user_display LIKE '%' + #{query.inspectorName} + '%'
  3266. </if>
  3267. <if test="query.startDate != null">
  3268. AND a.inspector_date >= #{query.startDate}
  3269. </if>
  3270. <if test="query.endDate != null">
  3271. AND #{query.endDate} >= a.inspector_date
  3272. </if>
  3273. <if test="query.startDate2 != null">
  3274. AND a.create_date >= #{query.startDate2}
  3275. </if>
  3276. <if test="query.endDate2 != null">
  3277. AND #{query.endDate2} >= a.create_date
  3278. </if>
  3279. <if test = "query.poOrderNo != null and query.poOrderNo != ''">
  3280. AND a.po_orderNo LIKE '%' + #{query.poOrderNo} + '%'
  3281. </if>
  3282. <if test = "query.poItemNo != null and query.poItemNo != ''">
  3283. AND a.po_itemNo LIKE '%' + #{query.poItemNo} + '%'
  3284. </if>
  3285. <if test = "query.orderType != null and query.orderType != ''">
  3286. AND dbo.qc_get_order_type(a.site, a.po_orderNo, a.po_itemNo) = #{query.orderType}
  3287. </if>
  3288. <if test = "query.submissionType != null and query.submissionType != ''">
  3289. AND a.submission_type = #{query.submissionType}
  3290. </if>
  3291. <if test = "query.invdefinetype != null and query.invdefinetype != ''">
  3292. AND d.invdefinetype LIKE '%' + #{query.invdefinetype} + '%'
  3293. </if>
  3294. </where>
  3295. ORDER BY
  3296. CASE WHEN a.state = '待检验' THEN 1
  3297. WHEN a.state = '待审核' THEN 2
  3298. WHEN a.state = '已完成' THEN 3
  3299. END, a.create_date desc
  3300. </select>
  3301. <!-- SQC明细记录查询 -->
  3302. <select id="sqcDetailSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3303. SELECT
  3304. a.site,
  3305. a.bu_no,
  3306. a.inspection_no,
  3307. a.template_id,
  3308. a.sampling_level_no,
  3309. a.sampling_level_desc,
  3310. a.sampling_programme_no,
  3311. a.sampling_programme_desc,
  3312. a.AQL,
  3313. a.AC,
  3314. a.RE,
  3315. a.item_no,
  3316. a.item_desc,
  3317. a.object_id,
  3318. a.object_desc,
  3319. a.default_value,
  3320. a.min_value,
  3321. a.max_value,
  3322. a.text_value,
  3323. a.number_value,
  3324. a.value_type_db,
  3325. a.value_type,
  3326. case when a.item_result = '' or a.item_result is null then 'Y' else a.item_result end as itemResult,
  3327. a.is_submit,
  3328. isnull(a.unqualified_quantity,0) as unqualifiedQuantity,
  3329. (
  3330. SELECT COUNT(*)
  3331. FROM qc_sqc_sub_detail_record s
  3332. WHERE s.site = a.site and s.bu_no = a.bu_no and s.inspection_no = a.inspection_no and s.item_no = a.item_no
  3333. ) as subDetailRecordNum,
  3334. c.method_no,
  3335. c.method_name,
  3336. c.method_remark,
  3337. a.sampling_qty,
  3338. (
  3339. SELECT COUNT(*)
  3340. FROM sys_oss
  3341. WHERE order_ref1 = a.site and order_ref2 = a.inspection_no and order_ref3 = a.item_no and order_ref4 = a.bu_no
  3342. ) AS imageDetailNum,
  3343. ISNULL(D.picture_flag,'N') as pictureFlag
  3344. FROM qc_sqc_detailed_record as a
  3345. INNER JOIN qc_method_item as b on a.site = b.site and a.item_no = b.ItemNo and a.bu_no = b.bu_no
  3346. INNER JOIN qc_method as c on b.site = c.site and b.method_no = c.method_no and b.bu_no = c.bu_no
  3347. INNER JOIN eam_properties_item as d on a.site = d.site and a.item_no = d.ItemNo and a.bu_no = d.bu_no
  3348. WHERE a.inspection_no = #{inspectionNo} and a.site = #{site} and a.bu_no = #{buNo}
  3349. order by a.order_id
  3350. </select>
  3351. <!-- 查询SQC的子明细 -->
  3352. <select id="selectSQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.SubDetailValues">
  3353. SELECT
  3354. site,
  3355. bu_no,
  3356. sub_detail_value,
  3357. sampling_location,
  3358. is_submit,
  3359. sampling_location_b,
  3360. num,
  3361. sub_detail_value_b,
  3362. sub_detail_value_c,
  3363. sub_detail_value_d,
  3364. sub_detail_value_e,
  3365. sub_detail_value_f,
  3366. sub_detail_value_g,
  3367. sub_detail_value_h,
  3368. sub_detail_value_i,
  3369. sub_detail_value_j
  3370. FROM qc_sqc_sub_detail_record
  3371. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3372. <if test = "collectionDataContent != null and collectionDataContent != ''">
  3373. AND sub_detail_value ${collectionDataContent}
  3374. </if>
  3375. </select>
  3376. <!-- 获取该项目的子明细值 -->
  3377. <select id="selectSQCSubDetailValue" resultType="com.heai.modules.pms.data.SubDetailValues">
  3378. SELECT sub_detail_value,
  3379. sampling_location,
  3380. is_submit
  3381. FROM qc_sqc_sub_detail_record
  3382. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3383. </select>
  3384. <!-- 修改SQC主记录信息 -->
  3385. <update id="updateSQCMasterRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3386. UPDATE qc_sqc_record
  3387. SET disposal_measures = #{disposalMeasures},
  3388. disposal_remark = #{disposalRemark},
  3389. inspection_result = #{inspectionResult},
  3390. inspector_no = #{inspectorNo},
  3391. state = #{state},
  3392. inspection_remark = #{inspectionRemark},
  3393. inspector_date = getDate(),
  3394. roll_count = #{rollCount,jdbcType=DECIMAL},
  3395. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  3396. unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL},
  3397. pass_qty = #{passQty,jdbcType=DECIMAL},
  3398. not_pass_qty = #{notPassQty,jdbcType=DECIMAL},
  3399. batch_qualified_qty = #{batchQualifiedQty,jdbcType=DECIMAL},
  3400. submit_date = getDate()
  3401. WHERE site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  3402. </update>
  3403. <!-- 修改SQC明细记录信息 -->
  3404. <update id="updateSQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3405. UPDATE qc_sqc_detailed_record
  3406. SET item_result = #{itemResult},
  3407. unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL},
  3408. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  3409. text_value = #{textValue},
  3410. number_value = #{numberValue,jdbcType=DECIMAL}
  3411. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3412. </update>
  3413. <!-- 查询该记录明细是否已存在 -->
  3414. <select id="checkSQCDetail" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3415. SELECT inspection_no,
  3416. template_id
  3417. FROM qc_sqc_detailed_record
  3418. WHERE inspection_no = #{inspectionNo} and site = #{site}
  3419. </select>
  3420. <!-- 查询SQC检验记录是否已提交 -->
  3421. <select id="checkSQCIsSubmit" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3422. SELECT submit_flag
  3423. FROM qc_sqc_record
  3424. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3425. </select>
  3426. <!-- 删除SQC子明细的老数据 -->
  3427. <delete id="delSQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcSubDetailInformationData">
  3428. DELETE FROM qc_sqc_sub_detail_record
  3429. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3430. </delete>
  3431. <!-- 新增SQC子明细信息 -->
  3432. <insert id="saveSQCSubDetailed">
  3433. INSERT INTO qc_sqc_sub_detail_record
  3434. (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, sub_detail_value_f, sub_detail_value_g, sub_detail_value_h, sub_detail_value_i, sub_detail_value_j)
  3435. VALUES
  3436. <foreach collection="list" item="item" separator=",">
  3437. (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.subDetailValueF}, #{item.subDetailValueG}, #{item.subDetailValueH}, #{item.subDetailValueI}, #{item.subDetailValueJ})
  3438. </foreach>
  3439. </insert>
  3440. <!-- 修改SQC主记录标识为已提交 -->
  3441. <update id="updateSQCMasterSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3442. UPDATE qc_sqc_record
  3443. SET submit_flag = 'Y',
  3444. state = '已完成',
  3445. submit_date = getDate()
  3446. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3447. </update>
  3448. <!-- 修改SQC明细记录标识为已提交 -->
  3449. <update id="updateSQCDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3450. UPDATE qc_sqc_detailed_record
  3451. SET is_submit = 'Y'
  3452. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3453. </update>
  3454. <!-- 修改SQC子明细记录标识为已提交 -->
  3455. <update id="updateSQCSubDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3456. UPDATE qc_sqc_sub_detail_record
  3457. SET is_submit = 'Y'
  3458. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3459. </update>
  3460. <!-- 删除SQC检验记录 -->
  3461. <delete id="deleteSQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3462. DELETE FROM qc_sqc_record
  3463. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3464. </delete>
  3465. <!-- 删除SQC明细记录信息 -->
  3466. <delete id="deleteSQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3467. DELETE FROM qc_sqc_detailed_record
  3468. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3469. </delete>
  3470. <!-- 删除SQC子明细记录信息 -->
  3471. <delete id="deleteSQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3472. DELETE FROM qc_sqc_sub_detail_record
  3473. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3474. </delete>
  3475. <!-- 新增IQC子明细信息 -->
  3476. <insert id="saveIQCSubDetailed">
  3477. INSERT INTO qc_iqc_sub_detail_record
  3478. (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e)
  3479. VALUES
  3480. <foreach collection="list" item="item" separator=",">
  3481. (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE})
  3482. </foreach>
  3483. </insert>
  3484. <!-- 修改IQC主记录标识为已提交 -->
  3485. <update id="updateIQCMasterSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3486. UPDATE qc_iqc_record
  3487. SET submit_flag = 'Y',
  3488. state = '已完成',
  3489. submit_date = getDate()
  3490. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3491. </update>
  3492. <!-- 修改IQC明细记录标识为已提交 -->
  3493. <update id="updateIQCDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3494. UPDATE qc_iqc_detailed_record
  3495. SET is_submit = 'Y'
  3496. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3497. </update>
  3498. <!-- 修改IQC子明细记录标识为已提交 -->
  3499. <update id="updateIQCSubDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3500. UPDATE qc_iqc_sub_detail_record
  3501. SET is_submit = 'Y'
  3502. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3503. </update>
  3504. <!-- 删除IQC检验记录 -->
  3505. <delete id="deleteIQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3506. DELETE FROM qc_iqc_record
  3507. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3508. </delete>
  3509. <!-- 删除IQC明细记录信息 -->
  3510. <delete id="deleteIQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3511. DELETE FROM qc_iqc_detailed_record
  3512. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3513. </delete>
  3514. <!-- 删除IQC子明细记录信息 -->
  3515. <delete id="deleteIQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3516. DELETE FROM qc_iqc_sub_detail_record
  3517. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3518. </delete>
  3519. <!-- 查询文件ID -->
  3520. <select id="queryFileId" parameterType="com.heai.modules.oss.entity.SysOssEntity" resultType="com.heai.modules.oss.entity.SysOssEntity">
  3521. SELECT id, file_name
  3522. FROM sys_oss
  3523. WHERE order_ref1 = #{orderRef1} and order_ref2 = #{orderRef2}
  3524. </select>
  3525. <!-- 获取工序列表 -->
  3526. <select id="getOperationDescList" parameterType="com.heai.modules.pms.data.QcPartAttributeData" resultType="com.heai.modules.pms.data.QcPartAttributeData">
  3527. select DISTINCT OperationDesc from RoutingDetail
  3528. <where>
  3529. <if test = "operationDesc != null and operationDesc != ''">
  3530. AND OperationDesc LIKE '%' + #{operationDesc} + '%'
  3531. </if>
  3532. </where>
  3533. </select>
  3534. <!-- 获取供应商列表 -->
  3535. <select id="getManufacturerList" parameterType="com.heai.modules.pms.data.QcPartAttributeData" resultType="com.heai.modules.pms.data.QcPartAttributeData">
  3536. SELECT
  3537. supplierID as manufacturerID,
  3538. supplierName as manufacturerName
  3539. FROM view_Supplier
  3540. <where>
  3541. site = #{site}
  3542. <if test = "manufacturerID != null and manufacturerID != ''">
  3543. AND supplierID LIKE '%' + #{manufacturerID} + '%'
  3544. </if>
  3545. <if test = "manufacturerName != null and manufacturerName != ''">
  3546. AND supplierName LIKE '%' + #{manufacturerName} + '%'
  3547. </if>
  3548. </where>
  3549. </select>
  3550. <!-- 获取客户列表(物料模板 OQC) -->
  3551. <select id="getCustomerList" parameterType="com.heai.modules.pms.data.QcPartAttributeData" resultType="com.heai.modules.pms.data.QcPartAttributeData">
  3552. SELECT
  3553. CustomerID as customerID,
  3554. CustomerName as customerName
  3555. FROM Customer
  3556. <where>
  3557. site = #{site}
  3558. <if test = "customerID != null and customerID != ''">
  3559. AND CustomerID LIKE '%' + #{customerID} + '%'
  3560. </if>
  3561. <if test = "customerName != null and customerName != ''">
  3562. AND CustomerName LIKE '%' + #{customerName} + '%'
  3563. </if>
  3564. </where>
  3565. </select>
  3566. <!-- 校验物料属性模板:工序+机台(resource/operation 为空时按 IS NULL 匹配) -->
  3567. <select id="getPA" parameterType="com.heai.modules.pms.data.QcTemplateData" resultType="com.heai.modules.pms.data.QcTemplateData">
  3568. SELECT
  3569. site,
  3570. bu_no,
  3571. attribute_no,
  3572. template_id,
  3573. sampling_level_no,
  3574. sampling_programme_no,
  3575. attribute_type,
  3576. resource_id,
  3577. operation
  3578. FROM qc_attribute_template
  3579. WHERE site = #{site} and bu_no = #{buNo} and attribute_no = #{attributeNo} and attribute_type = #{attributeType} and template_id = #{templateId}
  3580. <choose>
  3581. <when test="operation != null and operation != ''">
  3582. AND operation = #{operation}
  3583. </when>
  3584. <otherwise>
  3585. AND (operation IS NULL OR operation = '')
  3586. </otherwise>
  3587. </choose>
  3588. <choose>
  3589. <when test="resourceID != null and resourceID != ''">
  3590. AND resource_id = #{resourceID}
  3591. </when>
  3592. <otherwise>
  3593. AND (resource_id IS NULL OR resource_id = '')
  3594. </otherwise>
  3595. </choose>
  3596. </select>
  3597. <!-- 校验物料属性模板:供应商 -->
  3598. <select id="getPA2" parameterType="com.heai.modules.pms.data.QcTemplateData" resultType="com.heai.modules.pms.data.QcTemplateData">
  3599. SELECT
  3600. site,
  3601. bu_no,
  3602. attribute_no,
  3603. template_id,
  3604. sampling_level_no,
  3605. sampling_programme_no,
  3606. attribute_type,
  3607. manufacturer_id
  3608. FROM qc_attribute_template
  3609. WHERE site = #{site} and bu_no = #{buNo} and attribute_no = #{attributeNo} and attribute_type = #{attributeType} and template_id = #{templateId} and manufacturer_id = #{manufacturerID}
  3610. </select>
  3611. <!-- 校验物料属性模板:客户 -->
  3612. <select id="getPA3" parameterType="com.heai.modules.pms.data.QcTemplateData" resultType="com.heai.modules.pms.data.QcTemplateData">
  3613. SELECT
  3614. site,
  3615. bu_no,
  3616. attribute_no,
  3617. template_id,
  3618. sampling_level_no,
  3619. sampling_programme_no,
  3620. attribute_type,
  3621. customer_id
  3622. FROM qc_attribute_template
  3623. WHERE site = #{site} and bu_no = #{buNo} and attribute_no = #{attributeNo} and attribute_type = #{attributeType} and template_id = #{templateId} and customer_id = #{customerID}
  3624. </select>
  3625. <!-- 获取机台列表 -->
  3626. <select id="getAllResourceList" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3627. SELECT distinct
  3628. resource_id,
  3629. resource_desc
  3630. FROM resource
  3631. <where>
  3632. site = #{site}
  3633. <if test = "resourceId != null and resourceId != ''">
  3634. AND resource_id LIKE '%' + #{resourceId} + '%'
  3635. </if>
  3636. <if test = "resourceDesc != null and resourceDesc != ''">
  3637. AND resource_desc LIKE '%' + #{resourceDesc} + '%'
  3638. </if>
  3639. </where>
  3640. </select>
  3641. <!-- 获取工单列表 -->
  3642. <select id="getOrderNoList" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3643. SELECT DISTINCT
  3644. a.orderno as orderNo
  3645. FROM soscheduledrouting as a
  3646. LEFT JOIN sfdc as b ON a.site = b.site and a.seqno = b.assjob_seq_no
  3647. LEFT JOIN so_routing as c ON c.site = a.site and c.order_no = a.orderno and a.itemno = c.item_no
  3648. LEFT JOIN part j ON a.site = j.site and a.part_no = j.part_no
  3649. <where>
  3650. a.site = #{site}
  3651. AND b.approve_qty is not null
  3652. <if test = "orderNo != null and orderNo != ''">
  3653. AND a.orderno LIKE '%' + #{orderNo} + '%'
  3654. </if>
  3655. </where>
  3656. order by a.orderno DESC
  3657. </select>
  3658. <!-- 查询FQC主记录信息 -->
  3659. <select id="qcFQCInspectionSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3660. SELECT
  3661. a.inspection_no,
  3662. a.site,
  3663. a.bu_no,
  3664. a.state,
  3665. a.inspection_result,
  3666. a.task_date,
  3667. a.inspection_type_no,
  3668. dbo.qc_get_inspection_type_name(a.site, a.inspection_type_no) as inspectionTypeName,
  3669. a.inspection_cycle,
  3670. a.order_no,
  3671. a.operation_desc,
  3672. a.resource_id,
  3673. r.resource_desc,
  3674. a.part_no,
  3675. d.PartDescription as partDesc,
  3676. d.cinv_source_code as cinvSourceCode,
  3677. d.sku as sku,
  3678. d.invdefinetype as invdefinetype,
  3679. a.inspection_remark,
  3680. a.roll_qty,
  3681. a.sampling_qty,
  3682. a.disposal_measures,
  3683. a.disposal_remark,
  3684. a.inspector_date,
  3685. a.inspector_no,
  3686. u.user_display as inspectorName,
  3687. a.ssr_id,
  3688. a.unqualified_qty,
  3689. a.submit_flag,
  3690. a.seq_no,
  3691. a.batch_roll_no,
  3692. a.special_requirements,
  3693. a.work_center_no,
  3694. a.roll_no,
  3695. a.um_id,
  3696. um.UMName as umName,
  3697. a.action_date,
  3698. a.action_by,
  3699. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operator,
  3700. isnull(dbo.joint_name(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operatorName,
  3701. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePerson,
  3702. isnull(dbo.joint_name2(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePersonName,
  3703. a.pass_qty,
  3704. a.not_pass_qty,
  3705. a.batch_qualified_qty,
  3706. a.receipt_no,
  3707. a.receipt_item_no,
  3708. a.ref_info1,
  3709. a.ref_info2,
  3710. a.ref_info3,
  3711. a.ref_info4,
  3712. a.ref_info5
  3713. FROM qc_fqc_record as a
  3714. left join part as d on a.site = d.site and a.bu_no = d.sourceBu and a.part_no = d.partNo
  3715. left join sys_user as u on a.inspector_no = u.username
  3716. left join resource as r on a.site = r.site and a.resource_id = r.resource_id and a.work_center_no = r.work_center_no
  3717. left join UM as um on a.site = um.site and a.um_id = um.UMID
  3718. <where>
  3719. <if test="query.site != null and query.site != ''">
  3720. AND a.site = #{query.site}
  3721. </if>
  3722. <if test = "query.inspectionNo != null and query.inspectionNo != ''">
  3723. AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
  3724. </if>
  3725. <if test = "query.partNo != null and query.partNo != ''">
  3726. AND a.part_no LIKE '%' + #{query.partNo} + '%'
  3727. </if>
  3728. <if test = "query.partDesc != null and query.partDesc != ''">
  3729. AND d.PartDescription LIKE '%' + #{query.partDesc} + '%'
  3730. </if>
  3731. <if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
  3732. AND d.cinv_source_code LIKE '%' + #{query.cinvSourceCode} + '%'
  3733. </if>
  3734. <if test = "query.sku != null and query.sku != ''">
  3735. AND d.sku LIKE '%' + #{query.sku} + '%'
  3736. </if>
  3737. <if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
  3738. AND a.disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
  3739. </if>
  3740. <if test = "query.states != null and query.states.size > 0">
  3741. AND a.state in
  3742. <foreach item="item" collection="query.states" open="(" separator="," close=")">
  3743. #{item}
  3744. </foreach>
  3745. </if>
  3746. <if test = "query.inspectionResult != null and query.inspectionResult != ''">
  3747. AND a.inspection_result = #{query.inspectionResult}
  3748. </if>
  3749. <if test = "query.orderNo != null and query.orderNo != ''">
  3750. AND a.order_no LIKE '%' + #{query.orderNo} + '%'
  3751. </if>
  3752. <if test = "query.seqNo != null and query.seqNo != ''">
  3753. AND a.seq_no LIKE '%' + #{query.seqNo} + '%'
  3754. </if>
  3755. <if test = "query.operationDesc != null and query.operationDesc != ''">
  3756. AND a.operation_desc LIKE '%' + #{query.operationDesc} + '%'
  3757. </if>
  3758. <if test="query.startDate != null">
  3759. AND a.inspector_date >= #{query.startDate}
  3760. </if>
  3761. <if test="query.endDate != null">
  3762. AND #{query.endDate} >= a.inspector_date
  3763. </if>
  3764. <if test="query.startDate2 != null">
  3765. AND a.task_date >= #{query.startDate2}
  3766. </if>
  3767. <if test="query.endDate2 != null">
  3768. AND #{query.endDate2} >= a.task_date
  3769. </if>
  3770. </where>
  3771. ORDER BY
  3772. CASE WHEN a.state = '待检验' THEN 1
  3773. WHEN a.state = '待审核' THEN 2
  3774. WHEN a.state = '已完成' THEN 3
  3775. END, a.task_date desc
  3776. </select>
  3777. <insert id="saveFQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3778. INSERT INTO qc_fqc_detailed_record
  3779. (inspection_no, order_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc,
  3780. AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value,
  3781. max_value, value_type_db, value_type, site, sampling_qty, bu_no,order_id)
  3782. VALUES
  3783. (#{inspectionNo}, #{orderNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc},
  3784. #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL}, #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL},
  3785. #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo},#{orderId,jdbcType=INTEGER})
  3786. </insert>
  3787. <!-- 新增FQC明细记录信息 -->
  3788. <insert id="saveFQCDetailedRecords">
  3789. INSERT INTO qc_fqc_detailed_record
  3790. (inspection_no, order_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc,
  3791. AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value,
  3792. max_value, value_type_db, value_type, site, sampling_qty, bu_no, order_id)
  3793. VALUES
  3794. <foreach collection="list" item="item" separator=",">
  3795. (#{item.inspectionNo}, #{item.orderNo}, #{item.templateId}, #{item.samplingLevelNo}, #{item.samplingLevelDesc}, #{item.samplingProgrammeNo}, #{item.samplingProgrammeDesc},
  3796. #{item.aql,jdbcType=DECIMAL}, #{item.ac,jdbcType=DECIMAL}, #{item.re,jdbcType=DECIMAL}, #{item.itemNo}, #{item.itemDesc}, #{item.objectId}, #{item.objectDesc}, #{item.defaultValue}, #{item.minValue,jdbcType=DECIMAL},
  3797. #{item.maxValue,jdbcType=DECIMAL}, #{item.valueTypeDb}, #{item.valueType}, #{item.site}, #{item.samplingQty,jdbcType=DECIMAL}, #{item.buNo}, #{item.orderId})
  3798. </foreach>
  3799. </insert>
  3800. <!-- 新增FQC主记录信息 -->
  3801. <insert id="saveFQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3802. INSERT INTO qc_fqc_record
  3803. (inspection_no, site, bu_no, state, task_date, inspection_type_no, inspection_cycle, order_no, operation_desc, resource_id,
  3804. part_no, roll_qty, sampling_qty, ssr_id, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id,ref_info1,ref_info2)
  3805. VALUES
  3806. (#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId},
  3807. #{partNo}, #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId},#{refInfo1},#{refInfo2})
  3808. </insert>
  3809. <!-- FQC明细记录查询 -->
  3810. <select id="fqcDetailSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3811. SELECT
  3812. a.site,
  3813. a.bu_no,
  3814. a.inspection_no,
  3815. a.order_no,
  3816. a.template_id,
  3817. a.sampling_level_no,
  3818. a.sampling_level_desc,
  3819. a.sampling_programme_no,
  3820. a.sampling_programme_desc,
  3821. a.AQL,
  3822. a.AC,
  3823. a.RE,
  3824. a.item_no,
  3825. a.item_desc,
  3826. a.object_id,
  3827. a.object_desc,
  3828. a.default_value,
  3829. a.min_value,
  3830. a.max_value,
  3831. a.text_value,
  3832. a.number_value,
  3833. a.value_type_db,
  3834. a.value_type,
  3835. case when a.item_result = '' or a.item_result is null then 'Y' else a.item_result end as itemResult,
  3836. a.is_submit,
  3837. isnull(a.unqualified_quantity,0) as unqualifiedQuantity,
  3838. a.sampling_qty,
  3839. dbo.qc_get_fqc_sub_record_num(a.site, a.bu_no, a.inspection_no, a.item_no) as subDetailRecordNum,
  3840. c.method_no,
  3841. c.method_name,
  3842. c.method_remark,
  3843. (
  3844. SELECT COUNT(*)
  3845. FROM sys_oss
  3846. WHERE order_ref1 = a.site and order_ref2 = a.inspection_no and order_ref3 = a.item_no and order_ref4 = a.bu_no
  3847. ) AS imageDetailNum,
  3848. ISNULL(D.picture_flag,'N') as pictureFlag
  3849. FROM qc_fqc_detailed_record as a
  3850. INNER JOIN qc_method_item as b on a.site = b.site and a.item_no = b.ItemNo and a.bu_no = b.bu_no
  3851. INNER JOIN qc_method as c on b.site = c.site and b.method_no = c.method_no and b.bu_no = c.bu_no
  3852. INNER JOIN eam_properties_item as d on a.site = d.site and a.item_no = d.ItemNo and a.bu_no = d.bu_no
  3853. WHERE a.inspection_no = #{inspectionNo} and a.site = #{site} and a.bu_no = #{buNo}
  3854. order by a.order_id
  3855. </select>
  3856. <!-- 删除FQC检验记录 -->
  3857. <delete id="deleteFQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3858. DELETE FROM qc_fqc_record
  3859. WHERE site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  3860. </delete>
  3861. <!-- 删除FQC明细记录信息 -->
  3862. <delete id="deleteFQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3863. DELETE FROM qc_fqc_detailed_record
  3864. WHERE site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  3865. </delete>
  3866. <!-- 删除FQC子明细记录信息 -->
  3867. <delete id="deleteFQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3868. DELETE FROM qc_fqc_sub_detail_record
  3869. WHERE site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  3870. </delete>
  3871. <!-- 修改FQC主记录信息 -->
  3872. <update id="updateFQCMasterRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3873. UPDATE qc_fqc_record
  3874. SET disposal_measures = #{disposalMeasures},
  3875. disposal_remark = #{disposalRemark},
  3876. inspection_result = #{inspectionResult},
  3877. inspector_no = #{inspectorNo},
  3878. state = #{state},
  3879. inspection_remark = #{inspectionRemark},
  3880. inspector_date = getDate(),
  3881. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  3882. roll_qty = #{rollQty,jdbcType=DECIMAL},
  3883. unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL},
  3884. pass_qty = #{passQty,jdbcType=DECIMAL},
  3885. not_pass_qty = #{notPassQty,jdbcType=DECIMAL},
  3886. batch_qualified_qty = #{batchQualifiedQty,jdbcType=DECIMAL},
  3887. submit_date = getDate()
  3888. WHERE site = #{site} and inspection_no = #{inspectionNo} and bu_no = #{buNo}
  3889. </update>
  3890. <!-- 修改FQC明细记录信息 -->
  3891. <update id="updateFQCDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3892. UPDATE qc_fqc_detailed_record
  3893. SET item_result = #{itemResult},
  3894. unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL},
  3895. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  3896. text_value = #{textValue},
  3897. number_value = #{numberValue,jdbcType=DECIMAL}
  3898. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3899. </update>
  3900. <!-- 修改FQC主记录标识为已提交 -->
  3901. <update id="updateFQCMasterSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3902. UPDATE qc_fqc_record
  3903. SET submit_flag = 'Y',
  3904. state = '已完成',
  3905. submit_date = getDate()
  3906. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3907. </update>
  3908. <!-- 修改FAI明细记录标识为已提交 -->
  3909. <update id="updateFQCDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3910. UPDATE qc_fqc_detailed_record
  3911. SET is_submit = 'Y'
  3912. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3913. </update>
  3914. <!-- 修改子明细记录标识为已提交 -->
  3915. <update id="updateFQCSubDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3916. UPDATE qc_fqc_sub_detail_record
  3917. SET is_submit = 'Y'
  3918. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3919. </update>
  3920. <!-- 删除子明细的老数据 -->
  3921. <delete id="delFQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcSubDetailInformationData">
  3922. DELETE FROM qc_fqc_sub_detail_record
  3923. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3924. </delete>
  3925. <!-- 新增子明细信息 -->
  3926. <insert id="saveFQCSubDetailed">
  3927. INSERT INTO qc_fqc_sub_detail_record
  3928. (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e)
  3929. VALUES
  3930. <foreach collection="list" item="item" separator=",">
  3931. (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE})
  3932. </foreach>
  3933. </insert>
  3934. <!-- 查询FQC的子明细 -->
  3935. <select id="selectFQCSubDetailedRecord" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.SubDetailValues">
  3936. SELECT
  3937. site,
  3938. bu_no,
  3939. sub_detail_value,
  3940. sampling_location,
  3941. is_submit,
  3942. sampling_location_b,
  3943. num,
  3944. sub_detail_value_b,
  3945. sub_detail_value_c,
  3946. sub_detail_value_d,
  3947. sub_detail_value_e
  3948. FROM qc_fqc_sub_detail_record
  3949. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  3950. <if test = "collectionDataContent != null and collectionDataContent != ''">
  3951. AND sub_detail_value ${collectionDataContent}
  3952. </if>
  3953. </select>
  3954. <!-- 查询FQC检验记录是否已提交 -->
  3955. <select id="checkFQCIsSubmit" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  3956. SELECT submit_flag
  3957. FROM qc_fqc_record
  3958. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  3959. </select>
  3960. <!-- 获取该项目的子明细值 -->
  3961. <select id="selectFQCSubDetailValue" parameterType="string" resultType="com.heai.modules.pms.data.SubDetailValues">
  3962. SELECT sub_detail_value,
  3963. sampling_location,
  3964. is_submit
  3965. FROM qc_fqc_sub_detail_record
  3966. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site}
  3967. </select>
  3968. <!-- 生成FQC检验单号 -->
  3969. <select id="selectFQCInspectionNo" resultType="string" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3970. SELECT
  3971. Right('0000000000'+ convert(VARCHAR(10), isnull(max(convert(INT,SUBSTRING(inspection_no,4,10))),0)+1),8)
  3972. FROM qc_fqc_record
  3973. WHERE site = #{site} and bu_no = #{buNo}
  3974. </select>
  3975. <!-- 生成IPQC检验单号 -->
  3976. <select id="selectIPQCInspectionNo" resultType="string" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3977. SELECT
  3978. Right('0000000000'+ convert(VARCHAR(10), isnull(max(convert(INT,SUBSTRING(inspection_no,5,10))),0)+1),8)
  3979. FROM qc_ipqc_record
  3980. WHERE site = #{site} and bu_no = #{buNo}
  3981. </select>
  3982. <select id="selectIQCInspectionNo" resultType="java.lang.String">
  3983. SELECT
  3984. Right('0000000000'+ convert(VARCHAR(10), isnull(max(convert(INT,SUBSTRING(inspection_no,5,10))),0)+1),8)
  3985. FROM qc_iqc_record
  3986. WHERE site = #{site} and bu_no = #{buNo}
  3987. </select>
  3988. <select id="selectSQCInspectionNo" resultType="java.lang.String">
  3989. SELECT
  3990. Right('0000000000'+ convert(VARCHAR(10), isnull(max(convert(INT,SUBSTRING(inspection_no,5,10))),0)+1),8)
  3991. FROM qc_sqc_record
  3992. WHERE site = #{site} and bu_no = #{buNo}
  3993. </select>
  3994. <!-- 生成FAI检验单号 -->
  3995. <select id="selectFAIInspectionNo" resultType="string" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  3996. SELECT
  3997. Right('0000000000'+ convert(VARCHAR(10), isnull(max(convert(INT,SUBSTRING(inspection_no,4,10))),0)+1),8)
  3998. FROM qc_fai_record
  3999. WHERE site = #{site} and bu_no = #{buNo}
  4000. </select>
  4001. <!-- 根据 site、po_orderNo、po_itemNo 从 view_po_order 中查出数据 -->
  4002. <select id="queryDataFromViewPoOrder" resultType="com.heai.modules.pms.data.PoOrderData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4003. SELECT
  4004. site,
  4005. order_no,
  4006. item_no,
  4007. part_no,
  4008. part_desc,
  4009. spec,
  4010. supplier_id,
  4011. supplier_name,
  4012. order_qty,
  4013. created_date,
  4014. status,
  4015. citem_code,
  4016. citem_class,
  4017. sendto_address,
  4018. order_type
  4019. FROM view_po_order
  4020. WHERE site = #{site} and order_no = #{poOrderNo} and item_no = #{poItemNo}
  4021. </select>
  4022. <!-- 向收货任务表里添加数据 -->
  4023. <insert id="saveReceivingTask" parameterType="com.heai.modules.pms.data.PoOrderData">
  4024. INSERT INTO receiving_task (site, order_no, item_no, part_no, part_desc, spec, supplier_id, supplier_name, order_qty, created_date, status, citem_code, citem_class, sendto_address, order_type, inspection_no, batch_no, production_date, expiration_warning_date, expiration_date)
  4025. VALUES (#{site}, #{orderNo}, #{itemNo}, #{partNo}, #{partDesc}, #{spec}, #{supplierId}, #{supplierName}, #{orderQty}, getDate(), #{status}, #{citemCode}, #{citemClass}, #{sendtoAddress}, #{orderType}, #{inspectionNo}, #{batchNo}, #{productionDate}, #{expirationWarningDate}, #{expirationDate})
  4026. </insert>
  4027. <!-- 检查动控是否开启 -->
  4028. <select id="queryController" parameterType="com.heai.modules.sys.entity.SysSceneDynamicControlModelEntity" resultType="com.heai.modules.sys.entity.SysSceneDynamicControlModelEntity">
  4029. SELECT
  4030. type,
  4031. base_data,
  4032. base_desc,
  4033. status,
  4034. remark,
  4035. third_type,
  4036. second_type,
  4037. page_control,
  4038. control_style
  4039. FROM sys_scene_dynamic_control_model
  4040. where site = #{site} and control_no = #{controlNo}
  4041. </select>
  4042. <!-- 查询检验模板列表 -->
  4043. <select id="queryTemplateList" resultType="com.heai.modules.pms.data.QcTemplateData" parameterType="com.heai.modules.pms.data.QcTemplateData">
  4044. SELECT
  4045. site,
  4046. bu_no,
  4047. template_id as templateId,
  4048. template_name as templateName,
  4049. dbo.qc_get_inspection_type_name(site, inspection_type_no) as inspectionTypeName
  4050. FROM qc_template
  4051. <where>
  4052. site = #{site} and bu_no = #{buNo} and dbo.qc_get_inspection_type_name(site, inspection_type_no) = #{inspectionTypeName}
  4053. <if test = "templateId != null and templateId != ''">
  4054. AND template_id LIKE '%' + #{templateId}+'%'
  4055. </if>
  4056. <if test = "templateName != null and templateName != ''">
  4057. AND template_name LIKE '%' + #{templateName}+'%'
  4058. </if>
  4059. <if test = "inspectionTypeNo != null and inspectionTypeNo != ''">
  4060. AND inspection_type_no = #{inspectionTypeNo}
  4061. </if>
  4062. </where>
  4063. </select>
  4064. <!-- 查询检验模板列表 -->
  4065. <select id="getPartInformation" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4066. select
  4067. part_no,
  4068. part_desc,
  4069. spec,
  4070. sku,
  4071. control_mes,
  4072. DefaultWarehouseID as defaultWarehouseId
  4073. from part
  4074. where site = #{site} and part_no = #{partNo}
  4075. </select>
  4076. <!-- 获取特殊工序列表 -->
  4077. <select id="getSpecialOperationList" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4078. select
  4079. site,
  4080. operation_no,
  4081. operation_desc
  4082. from qc_special_task_operation
  4083. where site = #{site}
  4084. </select>
  4085. <!-- 获取处置措施列表 -->
  4086. <select id="disposalMeasuresSearch" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4087. SELECT
  4088. id,
  4089. disposal_measures
  4090. FROM qc_disposal_measures
  4091. <where>
  4092. <if test = "inspectionTypeNo != '101'">
  4093. inspection_type != 'IPQC'
  4094. </if>
  4095. </where>
  4096. </select>
  4097. <!-- 查询文件路径 -->
  4098. <select id="searchItemFileUrl" resultType="com.heai.modules.oss.entity.SysOssEntity" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4099. SELECT
  4100. id,
  4101. url,
  4102. file_name
  4103. FROM sys_oss
  4104. WHERE order_ref1 = #{site} and order_ref2 = #{inspectionNo} and order_ref3 = #{itemNo} and order_ref4 = #{buNo}
  4105. </select>
  4106. <!-- 删除图片-->
  4107. <delete id="imageDelete" parameterType="com.heai.modules.oss.entity.SysOssEntity">
  4108. DELETE FROM sys_oss
  4109. WHERE id = #{id}
  4110. </delete>
  4111. <!-- 模糊查询标签号 -->
  4112. <select id="getRollNo" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4113. SELECT DISTINCT top 3
  4114. a.seqno,
  4115. a.orderno,
  4116. b.roll_no
  4117. FROM soscheduledrouting AS a
  4118. LEFT JOIN sfdc_rolls AS b ON a.site = b.site AND a.seqno = b.createdops_seqno
  4119. WHERE a.site = #{site} and b.roll_no like '%' + #{rollNo} + '%'
  4120. </select>
  4121. <!-- 标签号回车事件 -->
  4122. <select id="rollNoEnter" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4123. SELECT
  4124. a.site,
  4125. a.seqno as seqNo,
  4126. a.orderno as orderNo,
  4127. b.roll_no,
  4128. #{inspectionTypeNo} as inspectionTypeNo
  4129. FROM soscheduledrouting AS a
  4130. LEFT JOIN sfdc_rolls AS b ON a.site = b.site AND a.seqno = b.createdops_seqno
  4131. WHERE a.site = #{site} and b.roll_no = #{rollNo}
  4132. </select>
  4133. <!-- 查询物料列表 -->
  4134. <select id="queryPartList" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4135. SELECT
  4136. site,
  4137. PartNo,
  4138. PartDescription as part_desc,
  4139. sku,
  4140. spec
  4141. FROM part
  4142. <where>
  4143. site = #{site}
  4144. <if test = "partNo != null and partNo != ''">
  4145. AND PartNo LIKE '%' + #{partNo} + '%'
  4146. </if>
  4147. <if test = "partDesc != null and partDesc != ''">
  4148. AND PartDescription LIKE '%' + #{partDesc} + '%'
  4149. </if>
  4150. <if test = "sku != null and sku != ''">
  4151. AND sku LIKE '%' + #{sku} + '%'
  4152. </if>
  4153. </where>
  4154. </select>
  4155. <!-- 查询单位列表 -->
  4156. <select id="umSearch" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4157. SELECT
  4158. site,
  4159. UMID as umId,
  4160. UMName as umName
  4161. FROM UM
  4162. WHERE site = #{site} and active = #{active}
  4163. </select>
  4164. <!-- 查询单位列表 -->
  4165. <select id="checkItem" resultType="com.heai.modules.pms.data.SubDetailValues" parameterType="com.heai.modules.pms.data.SubDetailValues">
  4166. SELECT
  4167. site,
  4168. bu_no,
  4169. inspection_no,
  4170. item_no,
  4171. value_type_db,
  4172. min_value,
  4173. max_value
  4174. <if test = "flag == 'IPQC'">
  4175. FROM qc_ipqc_detailed_record
  4176. </if>
  4177. <if test = "flag == 'IQC'">
  4178. FROM qc_iqc_detailed_record
  4179. </if>
  4180. <if test = "flag == 'FQC'">
  4181. FROM qc_fqc_detailed_record
  4182. </if>
  4183. <if test = "flag == 'FAI'">
  4184. FROM qc_fai_detailed_record
  4185. </if>
  4186. <if test = "flag == 'SQC'">
  4187. FROM qc_sqc_detailed_record
  4188. </if>
  4189. WHERE site = #{site} and inspection_no = #{inspectionNo} and item_no = #{itemNo} and bu_no = #{buNo}
  4190. order by order_id
  4191. </select>
  4192. <!-- 查询检验方法列表 -->
  4193. <select id="queryMethodList" resultType="com.heai.modules.pms.data.QcMethodData" parameterType="com.heai.modules.pms.data.QcMethodData">
  4194. SELECT
  4195. site,
  4196. bu_no,
  4197. method_no,
  4198. method_name,
  4199. inspection_type_no,
  4200. dbo.qc_get_inspection_type_name(site, inspection_type_no) as inspectionTypeName
  4201. FROM qc_method
  4202. <where>
  4203. site = #{site}
  4204. <if test = "methodNo != null and methodNo != ''">
  4205. AND method_no LIKE '%' + #{methodNo} + '%'
  4206. </if>
  4207. <if test = "methodName != null and methodName != ''">
  4208. AND method_name LIKE '%' + #{methodName} + '%'
  4209. </if>
  4210. <if test = "inspectionTypeNo != null and inspectionTypeNo != ''">
  4211. AND inspection_type_no = #{inspectionTypeNo}
  4212. </if>
  4213. <if test="inspectionTypeName != null and inspectionTypeName != ''">
  4214. AND dbo.qc_get_inspection_type_name(site, inspection_type_no) = #{inspectionTypeName}
  4215. </if>
  4216. </where>
  4217. </select>
  4218. <!-- 修改detailFlag字段为N -->
  4219. <update id="updateIQCDetailFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4220. UPDATE qc_iqc_record
  4221. SET detail_flag = 'N'
  4222. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  4223. </update>
  4224. <!-- 查询检验方法唯一 -->
  4225. <select id="checkMethodOnlyOne" resultType="com.heai.modules.pms.data.QcMethodData" parameterType="com.heai.modules.pms.data.QcMethodData">
  4226. SELECT
  4227. site,
  4228. bu_no,
  4229. method_no
  4230. FROM qc_method
  4231. <where>
  4232. site = #{site} and bu_no = #{buNo} and method_no = #{methodNo}
  4233. </where>
  4234. </select>
  4235. <!-- 查询检验项目唯一 -->
  4236. <select id="checkItemOnlyOne" resultType="com.heai.modules.pms.data.QcItemData" parameterType="com.heai.modules.pms.data.QcItemData">
  4237. SELECT
  4238. site,
  4239. bu_no,
  4240. ItemNo,
  4241. ItemDesc
  4242. FROM eam_properties_item
  4243. <where>
  4244. site = #{site} and ItemNo = #{itemNo} and ItemType = #{itemType} and inspection_type_no = #{inspectionTypeNo}
  4245. </where>
  4246. </select>
  4247. <!-- 查询检验项目唯一 -->
  4248. <select id="checkTemplateOnlyOne" resultType="com.heai.modules.pms.data.QcTemplateData" parameterType="com.heai.modules.pms.data.QcTemplateData">
  4249. SELECT
  4250. site,
  4251. bu_no,
  4252. template_id,
  4253. template_name
  4254. FROM qc_template
  4255. <where>
  4256. site = #{site} and template_id = #{templateId}
  4257. </where>
  4258. </select>
  4259. <select id="searchSeqInfo" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  4260. SELECT DISTINCT
  4261. a.seqno,
  4262. a.orderno,
  4263. J.PartNo,
  4264. J.PartDescription as partDesc,
  4265. t.lotsize,
  4266. a.qtyrequired,
  4267. c.OperationDesc,
  4268. J.sku,
  4269. sum(roll_qty) as sjzs,
  4270. sum(roll_qty) as roll_qty
  4271. FROM soscheduledrouting AS a
  4272. inner JOIN RoutingDetail AS c ON c.site = a.site and a.partNO = C.PartNo AND a.itemno = c.itemNo
  4273. inner JOIN part AS J ON a.site = J.site AND a.partNo = J.PartNo
  4274. inner JOIN shoporder AS t ON a.site = t.site AND t.orderno = a.orderno
  4275. left join qc_ipqc_record as r on a.site = r.site and a.seqno = r.seq_no
  4276. WHERE
  4277. a.site = #{query.site}
  4278. <if test="query.orderNo != null and query.orderNo != ''">
  4279. AND a.orderno LIKE '%' + #{query.orderNo} + '%'
  4280. </if>
  4281. <if test="query.seqNo != null and query.seqNo != ''">
  4282. AND a.seqno LIKE '%' + #{query.seqNo} + '%'
  4283. </if>
  4284. <if test="query.sku != null and query.sku != ''">
  4285. AND j.sku LIKE '%' + #{query.sku} + '%'
  4286. </if>
  4287. <if test="query.partNo != null and query.partNo != ''">
  4288. AND J.PartNo LIKE '%' + #{query.partNo} + '%'
  4289. </if>
  4290. <if test="query.partDesc != null and query.partDesc != ''">
  4291. AND J.PartDescription LIKE '%' + #{query.partDesc} + '%'
  4292. </if>
  4293. <if test="query.operationDesc != null and query.operationDesc != ''">
  4294. AND c.OperationDesc LIKE '%' + #{query.operationDesc} + '%'
  4295. </if>
  4296. <if test="query.status != null and query.status != ''">
  4297. AND a.ClosedFlag = #{query.status}
  4298. </if>
  4299. group by a.seqno, a.orderno, J.PartNo, J.PartDescription, t.lotsize, a.qtyrequired, c.OperationDesc, J.sku
  4300. </select>
  4301. <select id="searchPartInfo" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  4302. select
  4303. PartNo,
  4304. PartDescription as part_desc,
  4305. sku,
  4306. cinv_source_code,
  4307. sourceBu
  4308. from
  4309. part
  4310. where
  4311. site = #{query.site}
  4312. <if test="query.partNo != null and query.partNo != ''">
  4313. AND PartNo LIKE '%' + #{query.partNo} + '%'
  4314. </if>
  4315. <if test="query.partDesc != null and query.partDesc != ''">
  4316. AND PartDescription LIKE '%' + #{query.partDesc} + '%'
  4317. </if>
  4318. <if test="query.sku != null and query.sku != ''">
  4319. AND sku LIKE '%' + #{query.sku} + '%'
  4320. </if>
  4321. <if test="query.cinvSourceCode != null and query.cinvSourceCode != ''">
  4322. AND cinv_source_code LIKE '%' + #{query.cinvSourceCode} + '%'
  4323. </if>
  4324. </select>
  4325. <select id="getInterfaceTimeData" parameterType="String" resultType="com.heai.modules.pms.data.InterfaceTimeData">
  4326. SELECT
  4327. id,
  4328. start_time,
  4329. end_time,
  4330. del_flag
  4331. FROM interface_time
  4332. WHERE del_flag = 'N' and site = #{site}
  4333. </select>
  4334. <update id="updateInterfaceTimeData" parameterType="com.heai.modules.pms.data.InterfaceTimeData">
  4335. UPDATE interface_time
  4336. set
  4337. updated_by = #{updatedBy},
  4338. updated_date = #{updatedDate},
  4339. del_flag = #{delFlag}
  4340. </update>
  4341. <select id="getInterfaceRdStyleData" parameterType="String" resultType="com.heai.modules.pms.data.RdStyleData">
  4342. SELECT
  4343. crdcode,
  4344. crdname,
  4345. iRdGrade,
  4346. rdtype,
  4347. brdend
  4348. FROM view_custdev_mes_rdstyle
  4349. WHERE crdname = #{crdName}
  4350. </select>
  4351. <insert id="insertHardtagPurchaseInStorageData" parameterType="com.heai.modules.pms.data.HardtagPurchaseInStorageCountData" useGeneratedKeys="true" keyProperty="id">
  4352. INSERT INTO purchase_in_storage_count
  4353. (site, trans_no, created_date, created_by, erp_flag, toacc, logindate, cordercode, cdepcode, cwhcode, crdcode, coutcode, ddate, bredvouch,
  4354. cmemo, verify, irowno, cinvcode, iquantity, citemcode, erp_remark, trans_date, csource, trans_type)
  4355. values (#{site}, #{transNo}, #{createdDate}, #{createdBy}, #{erpFlag}, #{toacc}, #{logindate}, #{cordercode}, #{cdepcode}, #{cwhcode}, #{crdcode}, #{coutcode}, #{ddate}, #{bredvouch},
  4356. #{cmemo}, #{verify}, #{irowno}, #{cinvcode}, #{iquantity}, #{citemcode}, #{erpRemark}, #{transDate}, #{csource}, #{transType})
  4357. </insert>
  4358. <insert id="batchSaveHrdtagTransHeader" parameterType="com.heai.modules.pms.data.HardtagTransHeaderData">
  4359. insert into TransHeader
  4360. (TransNo, Site, WarehouseID, TransDate, TransType_DB, TransType, UserName, Receiver, TransYear, TransMonth, PartnerID, PartnerType, AuthorizeFlag, AuthorizeDate, Authorizor, TransferFlag, TransferDate,
  4361. TransferGuys, VoucherDate, ProjectID, EnterDate, Remark, UseLocation, OrderRef1, LinkOrderFlag, DelAddID, Status, ProjectName, PartnerName, erp_warehouse_id, ERP,
  4362. department_no, picking_status, scan_type, inCategory, pmProject, remarks, item_no_mat, remark3, location_id, count_id)
  4363. values (#{TransNo}, #{Site}, #{WarehouseID}, #{TransDate}, #{TransTypeDB}, #{TransType}, #{UserName}, #{Receiver}, #{TransYear}, #{TransMonth}, #{PartnerID}, #{PartnerType}, #{AuthorizeFlag}, #{AuthorizeDate}, #{Authorizor}, #{TransferFlag}, #{TransferDate},
  4364. #{TransferGuys}, #{VoucherDate}, #{ProjectID}, #{EnterDate}, #{Remark}, #{UseLocation}, #{OrderRef1}, #{LinkOrderFlag}, #{DelAddID}, #{Status}, #{ProjectName}, #{PartnerName}, #{erpWarehouseId}, #{ERP},
  4365. #{departmentNo}, #{pickingStatus}, #{scanType}, #{inCategory}, #{pmProject}, #{remarks}, #{itemNoMat}, #{remark3}, #{locationId}, #{countId})
  4366. </insert>
  4367. <insert id="batchSaveHardtagTransDetail" parameterType="com.heai.modules.pms.data.HardtagTransDetailData">
  4368. INSERT INTO TransDetail
  4369. (TransNo, Site, PartNo, LocationID, TransQty, Direction, OrderRef1, ItemNo, OrderRef2, OrderRef3, OrderRef5, Remark, citem_code)
  4370. values
  4371. (#{TransNo}, #{Site}, #{PartNo}, #{LocationID}, #{TransQty}, #{Direction}, #{OrderRef1}, #{ItemNo}, #{OrderRef2}, #{OrderRef3}, #{OrderRef5}, #{Remark}, #{citemCode})
  4372. </insert>
  4373. <select id="getSendMailAddress" parameterType="String" resultType="com.heai.modules.pms.data.MailAddressData">
  4374. SELECT
  4375. id,
  4376. site,
  4377. bu_no,
  4378. mail_address,
  4379. send_type,
  4380. del_flag,
  4381. created_by,
  4382. created_date,
  4383. orderref1
  4384. FROM mailAddress
  4385. WHERE site = #{site} and send_type = #{type} and del_flag = 'N'
  4386. <if test="buNo != null and buNo != ''">
  4387. AND bu_no = #{buNo}
  4388. </if>
  4389. </select>
  4390. <select id="getSendMailFromAddress" resultType="com.heai.modules.pms.data.MailSendAddressData">
  4391. SELECT
  4392. port,
  4393. host,
  4394. username,
  4395. password,
  4396. emailForm,
  4397. timeout,
  4398. personal,
  4399. id
  4400. FROM mailSendAddress
  4401. where delFlag = 'N'
  4402. </select>
  4403. <!-- 新增发送邮件记录 -->
  4404. <insert id="saveSendMailRecord" parameterType="com.heai.modules.pms.data.SendMailRecord">
  4405. insert into send_mail_record
  4406. (site, bu_no, document_no, sender, recipient, send_date, type)
  4407. values
  4408. (#{site}, #{buNo}, #{documentNo}, #{sender}, #{recipient}, getDate(), #{type})
  4409. </insert>
  4410. <select id="orderTypeSearch" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  4411. SELECT distinct
  4412. order_type
  4413. FROM view_po_order
  4414. </select>
  4415. <update id="actionIQCInspection" parameterType="com.heai.modules.pms.data.EamObjectInData">
  4416. update qc_iqc_record
  4417. set action_date = getDate(),
  4418. action_by = #{actionBy},
  4419. state = #{state}
  4420. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  4421. </update>
  4422. <update id="actionSQCInspection" parameterType="com.heai.modules.pms.data.EamObjectInData">
  4423. update qc_sqc_record
  4424. set action_date = getDate(),
  4425. action_by = #{actionBy},
  4426. state = #{state}
  4427. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  4428. </update>
  4429. <update id="actionFAIInspection" parameterType="com.heai.modules.pms.data.EamObjectInData">
  4430. update qc_fai_record
  4431. set action_date = getDate(),
  4432. action_by = #{actionBy},
  4433. state = #{state}
  4434. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  4435. </update>
  4436. <update id="actionIPQCInspection" parameterType="com.heai.modules.pms.data.EamObjectInData">
  4437. update qc_ipqc_record
  4438. set action_date = getDate(),
  4439. action_by = #{actionBy},
  4440. state = #{state}
  4441. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  4442. </update>
  4443. <update id="actionFQCInspection" parameterType="com.heai.modules.pms.data.EamObjectInData">
  4444. update qc_fqc_record
  4445. set action_date = getDate(),
  4446. action_by = #{actionBy},
  4447. state = #{state}
  4448. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  4449. </update>
  4450. <insert id="addEquipmentDataAcquisition">
  4451. insert into Equipment_data_acquisition
  4452. (site, bu_no, equipment_no, inspection_no, create_date, create_by, item_no, collection_source, collection_method)
  4453. values
  4454. <foreach collection="list" item="item" separator=",">
  4455. (#{item.site}, #{item.buNo}, #{item.equipmentNo}, #{item.inspectionNo}, getDate(), #{item.actionBy}, #{item.itemNo}, #{item.collectionSource}, #{item.collectionMethod})
  4456. </foreach>
  4457. </insert>
  4458. <!-- 新增人员信息 -->
  4459. <insert id="saveOperator" >
  4460. INSERT INTO eam_actual_operator
  4461. (site, order_no, function_type, operator, bu_no)
  4462. VALUES
  4463. <foreach collection="list" item="item" separator=",">
  4464. (#{item.site}, #{item.orderNo}, #{item.functionType}, #{item.operator}, #{item.buNo})
  4465. </foreach>
  4466. </insert>
  4467. <!-- 删除之前的人员-->
  4468. <delete id="delOperator" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4469. DELETE FROM eam_actual_operator
  4470. WHERE site = #{site} and order_no = #{inspectionNo} and bu_no = #{buNo}
  4471. </delete>
  4472. <select id="getInspectionNo" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.EquipmentDataAcquisitionData">
  4473. select distinct
  4474. site,
  4475. bu_no,
  4476. equipment_no,
  4477. inspection_no,
  4478. item_no,
  4479. collection_source,
  4480. collection_method
  4481. from Equipment_data_acquisition
  4482. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  4483. </select>
  4484. <select id="getInspectionNoByItem" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.EquipmentDataAcquisitionData">
  4485. select distinct
  4486. site,
  4487. bu_no,
  4488. equipment_no,
  4489. inspection_no,
  4490. item_no,
  4491. collection_source,
  4492. collection_method
  4493. from Equipment_data_acquisition
  4494. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo} and item_no = #{itemNo}
  4495. </select>
  4496. <select id="dataAcquisition" parameterType="com.heai.modules.pms.data.EquipmentDataAcquisitionData" resultType="com.heai.modules.pms.data.SubDetailValues">
  4497. select
  4498. id,
  4499. site,
  4500. bu_no,
  4501. #{inspectionNo} as inspectionNo,
  4502. #{itemNo} as itemNo,
  4503. <if test='subDetailValueType == 0'>
  4504. ${collectionSource} as subDetailValue,
  4505. </if>
  4506. <if test='subDetailValueType == 1'>
  4507. ${collectionSource} as subDetailValueB,
  4508. </if>
  4509. <if test='subDetailValueType == 2'>
  4510. ${collectionSource} as subDetailValueC,
  4511. </if>
  4512. <if test='subDetailValueType == 3'>
  4513. ${collectionSource} as subDetailValueD,
  4514. </if>
  4515. <if test='subDetailValueType == 4'>
  4516. ${collectionSource} as subDetailValueE,
  4517. </if>
  4518. num,
  4519. #{collectionSource} as collectionSource,
  4520. #{collectionMethod} as collectionMethod
  4521. from Equipment_data_detail
  4522. where site = #{site} and bu_no = #{buNo} and equipment_no = #{equipmentNo} and ${collectionSource} is not null and ${collectionSource} <![CDATA[<>]]> ''
  4523. <if test='collectionMethod == "plc"'>
  4524. AND inspection_no = #{inspectionNo}
  4525. </if>
  4526. <if test='collectionMethod == "RS232"'>
  4527. AND (inspection_no is null or inspection_no = '')
  4528. </if>
  4529. <if test = "collectionDataContent != null and collectionDataContent != ''">
  4530. AND ${collectionSource} ${collectionDataContent}
  4531. </if>
  4532. and batch_no = (select MAX(batch_no) from Equipment_data_detail where site = #{site} and bu_no = #{buNo} and equipment_no = #{equipmentNo})
  4533. </select>
  4534. <select id="dataAcquisitionB" parameterType="com.heai.modules.pms.data.EquipmentDataAcquisitionData" resultType="com.heai.modules.pms.data.SubDetailValues">
  4535. select
  4536. id,
  4537. site,
  4538. bu_no,
  4539. #{inspectionNo} as inspectionNo,
  4540. #{itemNo} as itemNo,
  4541. ${collectionSource} as subDetailValueB,
  4542. num,
  4543. #{collectionSource} as collectionSource
  4544. from Equipment_data_detail
  4545. where site = #{site} and bu_no = #{buNo} and equipment_no = #{equipmentNo} and ${collectionSource} is not null and ${collectionSource} <![CDATA[<>]]> ''
  4546. <if test='collectionMethod == "plc"'>
  4547. AND inspection_no = #{inspectionNo}
  4548. </if>
  4549. <if test='collectionMethod == "RS232"'>
  4550. AND (inspection_no is null or inspection_no = '')
  4551. </if>
  4552. and batch_no = (select MAX(batch_no) from Equipment_data_detail where site = #{site} and bu_no = #{buNo} and equipment_no = #{equipmentNo})
  4553. </select>
  4554. <select id="dataAcquisition2" parameterType="com.heai.modules.pms.data.EquipmentDataAcquisitionData" resultType="com.heai.modules.oss.entity.SysOssEntity">
  4555. select
  4556. site as orderRef1,
  4557. bu_no as orderRef4,
  4558. #{inspectionNo} as orderRef2,
  4559. #{itemNo} as orderRef3,
  4560. ${collectionSource} as url
  4561. from Equipment_data_detail
  4562. where site = #{site} and bu_no = #{buNo} and equipment_no = #{equipmentNo} and ${collectionSource} is not null and ${collectionSource} <![CDATA[<>]]> ''
  4563. and batch_no = (select MAX(batch_no) from Equipment_data_detail where site = #{site} and bu_no = #{buNo} and equipment_no = #{equipmentNo})
  4564. </select>
  4565. <select id="getIQCDetail" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.EquipmentDataAcquisitionData">
  4566. select
  4567. a.site,
  4568. a.bu_no,
  4569. b.collection_condition as equipmentNo,
  4570. #{inspectionNo} as inspectionNo,
  4571. a.item_no,
  4572. b.collection_source,
  4573. #{actionBy} as actionBy,
  4574. b.collection_method
  4575. from qc_iqc_detailed_record as a
  4576. left join eam_properties_item as b on a.site = b.site and a.bu_no = b.bu_no and a.item_no = b.ItemNo
  4577. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and b.ItemType = 'D' and b.inspection_type_no = '105' and b.collection_flag = 'Y'
  4578. order by a.order_id
  4579. </select>
  4580. <select id="getFAIDetail" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.EquipmentDataAcquisitionData">
  4581. select
  4582. a.site,
  4583. a.bu_no,
  4584. b.collection_condition as equipmentNo,
  4585. #{inspectionNo} as inspectionNo,
  4586. a.item_no,
  4587. b.collection_source,
  4588. #{actionBy} as actionBy,
  4589. b.collection_method
  4590. from qc_fai_detailed_record as a
  4591. left join eam_properties_item as b on a.site = b.site and a.bu_no = b.bu_no and a.item_no = b.ItemNo
  4592. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and b.ItemType = 'D' and b.inspection_type_no = '106' and b.collection_flag = 'Y'
  4593. order by order_id
  4594. </select>
  4595. <select id="getIPQCDetail" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.EquipmentDataAcquisitionData">
  4596. select
  4597. a.site,
  4598. a.bu_no,
  4599. b.collection_condition as equipmentNo,
  4600. #{inspectionNo} as inspectionNo,
  4601. a.item_no,
  4602. b.collection_source,
  4603. #{actionBy} as actionBy,
  4604. b.collection_method
  4605. from qc_ipqc_detailed_record as a
  4606. left join eam_properties_item as b on a.site = b.site and a.bu_no = b.bu_no and a.item_no = b.ItemNo
  4607. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and b.ItemType = 'D' and b.inspection_type_no = '101' and b.collection_flag = 'Y'
  4608. order by a.order_id
  4609. </select>
  4610. <select id="getFQCDetail" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.EquipmentDataAcquisitionData">
  4611. select
  4612. a.site,
  4613. a.bu_no,
  4614. b.collection_condition as equipmentNo,
  4615. #{inspectionNo} as inspectionNo,
  4616. a.item_no,
  4617. b.collection_source,
  4618. #{actionBy} as actionBy,
  4619. b.collection_method
  4620. from qc_fqc_detailed_record as a
  4621. left join eam_properties_item as b on a.site = b.site and a.bu_no = b.bu_no and a.item_no = b.ItemNo
  4622. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and b.ItemType = 'D' and b.inspection_type_no = '107' and b.collection_flag = 'Y'
  4623. order by a.order_id
  4624. </select>
  4625. <select id="querySubDetails" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.SubDetailValues">
  4626. select
  4627. b.site,
  4628. b.bu_no,
  4629. b.inspection_no,
  4630. b.item_no,
  4631. b.default_value,
  4632. b.min_value,
  4633. b.max_value,
  4634. b.value_type_db,
  4635. a.sub_detail_value
  4636. <if test="flag == 'iqc'">
  4637. from qc_iqc_sub_detail_record as a
  4638. left join qc_iqc_detailed_record as b on a.site = b.site and a.bu_no = b.bu_no and a.inspection_no = b.inspection_no and a.item_no = b.item_no
  4639. </if>
  4640. <if test="flag == 'ipqc'">
  4641. from qc_ipqc_sub_detail_record as a
  4642. left join qc_ipqc_detailed_record as b on a.site = b.site and a.bu_no = b.bu_no and a.inspection_no = b.inspection_no and a.item_no = b.item_no
  4643. </if>
  4644. <if test="flag == 'fqc'">
  4645. from qc_fqc_sub_detail_record as a
  4646. left join qc_fqc_detailed_record as b on a.site = b.site and a.bu_no = b.bu_no and a.inspection_no = b.inspection_no and a.item_no = b.item_no
  4647. </if>
  4648. <if test="flag == 'fai'">
  4649. from qc_fai_sub_detail_record as a
  4650. left join qc_fai_detailed_record as b on a.site = b.site and a.bu_no = b.bu_no and a.inspection_no = b.inspection_no and a.item_no = b.item_no
  4651. </if>
  4652. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and a.item_no = #{itemNo}
  4653. order by b.order_id
  4654. </select>
  4655. <insert id="saveFileList">
  4656. INSERT INTO sys_oss
  4657. (url, create_date, file_name, new_file_name, order_ref1, order_ref2, order_ref3, order_ref4)
  4658. VALUES
  4659. <foreach collection="list" item="item" separator=",">
  4660. (#{item.url}, getDate(), #{item.fileName}, #{item.newFileName}, #{item.orderRef1}, #{item.orderRef2}, #{item.orderRef3}, #{item.orderRef4})
  4661. </foreach>
  4662. </insert>
  4663. <select id="getEquipmentNoList" parameterType="com.heai.modules.pms.data.EquipmentFolderLocationData" resultType="com.heai.modules.pms.data.EquipmentFolderLocationData">
  4664. select
  4665. equipment_no
  4666. from Equipment_folder_location
  4667. where site = #{site} and bu_no = #{buNo}
  4668. </select>
  4669. <!-- 获取责任人员列表 -->
  4670. <select id="getResponsibleOperatorList" resultType="com.heai.modules.pms.data.EamAdminData" parameterType="com.heai.modules.pms.data.EamAdminData">
  4671. SELECT
  4672. operatorID as adminID,
  4673. operatorName as adminName
  4674. FROM operator
  4675. <where>
  4676. site = #{site}
  4677. <if test = "adminID != null and adminID != ''">
  4678. AND operator_id LIKE '%' + #{adminID} + '%'
  4679. </if>
  4680. <if test = "adminName != null and adminName != ''">
  4681. AND operator_name LIKE '%' + #{adminName} + '%'
  4682. </if>
  4683. </where>
  4684. </select>
  4685. <select id="getDataContentList" parameterType="com.heai.modules.pms.data.QcCollectionDataContentData" resultType="com.heai.modules.pms.data.QcCollectionDataContentData">
  4686. select
  4687. content_desc
  4688. from qc_collection_data_content
  4689. where site = #{site} and bu_no = #{buNo} and active = 'Y'
  4690. </select>
  4691. <select id="getItemCollectionDataContent" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="string">
  4692. select
  4693. collection_data_content
  4694. from eam_properties_item
  4695. where site = #{site} and bu_no = #{buNo} and ItemNo = #{itemNo}
  4696. </select>
  4697. <!-- 获取当前项目不包含的设备 -->
  4698. <select id="getObjectList1" resultType="com.heai.modules.pms.data.EamObjectInData" parameterType="com.heai.modules.pms.data.EamObjectInData">
  4699. SELECT
  4700. a.site,
  4701. a.bu_no,
  4702. a.ObjectID,
  4703. a.ObjectDesc
  4704. FROM eam_object as a
  4705. left join qc_item_object as b on a.site = b.site and a.bu_no = b.bu_no and a.ObjectID = b.ObjectID and b.ItemNo = #{itemNo}
  4706. where a.site = #{site} and a.bu_no = #{buNo} and b.ItemNo is null and a.active = 'Y'
  4707. </select>
  4708. <!-- 获取当前项目所包含的设备 -->
  4709. <select id="getObjectList2" resultType="com.heai.modules.pms.data.EamObjectInData" parameterType="com.heai.modules.pms.data.EamObjectInData">
  4710. SELECT
  4711. a.site,
  4712. a.bu_no,
  4713. a.ObjectID,
  4714. b.ObjectDesc,
  4715. a.default_flag
  4716. FROM qc_item_object a
  4717. LEFT JOIN eam_object b ON a.site = b.site and a.bu_no = b.bu_no and a.ObjectID = b.ObjectID
  4718. WHERE a.site = #{site} and a.bu_no = #{buNo} and a.ItemNo = #{itemNo}
  4719. </select>
  4720. <!-- 获取当前项目不包含的设备 -->
  4721. <select id="getObjectListBy" resultType="com.heai.modules.pms.data.EamObjectInData" parameterType="com.heai.modules.pms.data.EamObjectInData">
  4722. SELECT
  4723. a.site,
  4724. a.bu_no,
  4725. a.ObjectID,
  4726. a.ObjectDesc
  4727. FROM eam_object as a
  4728. left join qc_item_object as b on a.site = b.site and a.bu_no = b.bu_no and a.ObjectID = b.ObjectID and b.ItemNo = #{itemNo}
  4729. <where>
  4730. a.site = #{site} and a.bu_no = #{buNo} and b.ItemNo is null and a.active = 'Y'
  4731. <if test = "objectID != null and objectID != ''">
  4732. AND a.ObjectID LIKE '%' + #{objectID} + '%'
  4733. </if>
  4734. <if test = "objectDesc != null and objectDesc != ''">
  4735. AND a.ObjectDesc LIKE '%' + #{objectDesc} + '%'
  4736. </if>
  4737. </where>
  4738. </select>
  4739. <!-- 新增项目设备 -->
  4740. <insert id="addItemObject">
  4741. INSERT INTO qc_item_object
  4742. (site, bu_no, ItemNo, ObjectID, default_flag)
  4743. VALUES
  4744. <foreach collection="list" item="item" separator=",">
  4745. (#{item.site}, #{item.buNo}, #{item.itemNo}, #{item.objectID}, #{item.defaultFlag})
  4746. </foreach>
  4747. </insert>
  4748. <delete id="deleteItemObject">
  4749. DELETE FROM qc_item_object
  4750. WHERE
  4751. <foreach collection="list" item="item" separator=" or " index="index">
  4752. (site = #{item.site} and bu_no = #{item.buNo} and ItemNo = #{item.itemNo} and ObjectID = #{item.objectID})
  4753. </foreach>
  4754. </delete>
  4755. <update id="updateItemObject">
  4756. UPDATE qc_item_object
  4757. SET default_flag = #{defaultFlag}
  4758. WHERE site = #{site} and bu_no = #{buNo} and ItemNo = #{itemNo} and ObjectID = #{objectID}
  4759. </update>
  4760. <select id="getIQCInspectionDetail" parameterType="com.heai.modules.pms.data.EamObjectInData" resultType="com.heai.modules.pms.data.EamObjectInData">
  4761. select
  4762. a.site,
  4763. a.bu_no,
  4764. a.inspection_no,
  4765. a.item_no,
  4766. a.item_desc,
  4767. b.collection_source,
  4768. b.collection_method
  4769. from qc_iqc_detailed_record as a
  4770. left join eam_properties_item as b on a.site = b.site and a.bu_no = b.bu_no and a.item_no = b.ItemNo
  4771. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and b.ItemType = 'D' and b.inspection_type_no = '105' and b.collection_flag = 'Y'
  4772. order by a.order_id
  4773. </select>
  4774. <select id="getSQCInspectionDetail" parameterType="com.heai.modules.pms.data.EamObjectInData" resultType="com.heai.modules.pms.data.EamObjectInData">
  4775. select
  4776. a.site,
  4777. a.bu_no,
  4778. a.inspection_no,
  4779. a.item_no,
  4780. a.item_desc,
  4781. b.collection_source,
  4782. b.collection_method
  4783. from qc_sqc_detailed_record as a
  4784. left join eam_properties_item as b on a.site = b.site and a.bu_no = b.bu_no and a.item_no = b.ItemNo
  4785. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and b.ItemType = 'D' and b.inspection_type_no = '105' and b.collection_flag = 'Y'
  4786. order by a.order_id
  4787. </select>
  4788. <select id="getFAIInspectionDetail" parameterType="com.heai.modules.pms.data.EamObjectInData" resultType="com.heai.modules.pms.data.EamObjectInData">
  4789. select
  4790. a.site,
  4791. a.bu_no,
  4792. a.inspection_no,
  4793. a.item_no,
  4794. a.item_desc,
  4795. b.collection_source,
  4796. b.collection_method
  4797. from qc_fai_detailed_record as a
  4798. left join eam_properties_item as b on a.site = b.site and a.bu_no = b.bu_no and a.item_no = b.ItemNo
  4799. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and b.ItemType = 'D' and b.inspection_type_no = '106' and b.collection_flag = 'Y'
  4800. order by a.order_id
  4801. </select>
  4802. <select id="getFQCInspectionDetail" parameterType="com.heai.modules.pms.data.EamObjectInData" resultType="com.heai.modules.pms.data.EamObjectInData">
  4803. select
  4804. a.site,
  4805. a.bu_no,
  4806. a.inspection_no,
  4807. a.item_no,
  4808. a.item_desc,
  4809. b.collection_source,
  4810. b.collection_method
  4811. from qc_fqc_detailed_record as a
  4812. left join eam_properties_item as b on a.site = b.site and a.bu_no = b.bu_no and a.item_no = b.ItemNo
  4813. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and b.ItemType = 'D' and b.inspection_type_no = '107' and b.collection_flag = 'Y'
  4814. order by a.order_id
  4815. </select>
  4816. <select id="getIPQCInspectionDetail" parameterType="com.heai.modules.pms.data.EamObjectInData" resultType="com.heai.modules.pms.data.EamObjectInData">
  4817. select
  4818. a.site,
  4819. a.bu_no,
  4820. a.inspection_no,
  4821. a.item_no,
  4822. a.item_desc,
  4823. b.collection_source,
  4824. b.collection_method
  4825. from qc_ipqc_detailed_record as a
  4826. left join eam_properties_item as b on a.site = b.site and a.bu_no = b.bu_no and a.item_no = b.ItemNo
  4827. where a.site = #{site} and a.bu_no = #{buNo} and a.inspection_no = #{inspectionNo} and b.ItemType = 'D' and b.inspection_type_no = '101' and b.collection_flag = 'Y'
  4828. order by a.order_id
  4829. </select>
  4830. <delete id="deleteEquipmentDataAcquisition" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4831. delete from Equipment_data_acquisition
  4832. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  4833. </delete>
  4834. <select id="getInspectionStandards" parameterType="com.heai.modules.pms.data.QcInspectionStandardData" resultType="com.heai.modules.pms.data.QcInspectionStandardData">
  4835. select
  4836. site,
  4837. bu_no,
  4838. template_id,
  4839. item_no,
  4840. default_value,
  4841. min_value,
  4842. max_value,
  4843. condition,
  4844. collection_source,
  4845. seq_no
  4846. from qc_inspection_standards
  4847. where site = #{site} and bu_no = #{buNo} and template_id = #{templateId} and item_no = #{itemNo}
  4848. </select>
  4849. <delete id="deleteInspectionStandard" parameterType="com.heai.modules.pms.data.QcInspectionStandardData">
  4850. delete from qc_inspection_standards
  4851. where site = #{site} and bu_no = #{buNo} and template_id = #{templateId} and item_no = #{itemNo}
  4852. </delete>
  4853. <delete id="deleteInspectionStandard2" parameterType="com.heai.modules.pms.data.QcTemplateData">
  4854. delete from qc_inspection_standards
  4855. where site = #{site} and bu_no = #{buNo} and template_id = #{templateId} and item_no = #{itemNo}
  4856. </delete>
  4857. <insert id="saveInspectionStandard">
  4858. INSERT INTO qc_inspection_standards
  4859. (site, bu_no, template_id, item_no, default_value, min_value, max_value, condition, collection_source, seq_no)
  4860. VALUES
  4861. <foreach collection="list" item="item" separator=",">
  4862. (#{item.site}, #{item.buNo}, #{item.templateId}, #{item.itemNo}, #{item.defaultValue}, #{item.minValue}, #{item.maxValue}, #{item.condition}, #{item.collectionSource}, #{item.seqNo})
  4863. </foreach>
  4864. </insert>
  4865. <insert id="saveEquipmentFolderLocationList">
  4866. insert into Equipment_folder_location
  4867. (folder_path,equipment_no,site,bu_no,file_no,backup_folder_path,IP,suffix,equipment_desc,backup_photo_path,batch_date,port,register_address,
  4868. register_num,register_num_columntype,register_address_inspection,register_num_inspection,register_num_inspection_columntype,unit_id,
  4869. excel_compare_fields_x,excel_compare_fields_y,initial_line,data_row,skip_line,cutting_symbol,transparent_flag,Formula_calculation,
  4870. Formula,Group_calculation,regexp,repair_type,buzzer,create_by,create_time)
  4871. values (#{folderPath}, #{equipmentNo}, #{site}, #{buNo}, #{fileNo}, #{backupFolderPath}, #{IP}, #{suffix}, #{equipmentDesc}, #{backupPhotoPath}, #{batchDate}, #{port}, #{registerAddress},
  4872. #{registerNum}, #{registerNumColumntype}, #{registerAddressInspection}, #{registerNumInspection}, #{registerNumInspectionColumntype}, #{unitId},
  4873. #{excelCompareFieldsX}, #{excelCompareFieldsY}, #{initialLine}, #{dataRow}, #{skipLine}, #{cuttingSymbol}, #{transparentFlag}, #{formulaCalculation},
  4874. #{formula}, #{groupCalculation}, #{regexp}, #{repairType}, #{buzzer}, #{createBy}, getDate())
  4875. </insert>
  4876. <select id="getInspectionTemplateDetail" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcInspectionStandardData">
  4877. select
  4878. site,
  4879. bu_no,
  4880. template_id,
  4881. item_no
  4882. <if test="flag == 'iqc'">
  4883. from qc_iqc_detailed_record
  4884. </if>
  4885. <if test="flag == 'ipqc'">
  4886. from qc_ipqc_detailed_record
  4887. </if>
  4888. <if test="flag == 'fqc'">
  4889. from qc_fqc_detailed_record
  4890. </if>
  4891. <if test="flag == 'fai'">
  4892. from qc_fai_detailed_record
  4893. </if>
  4894. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  4895. order by order_id
  4896. </select>
  4897. <update id="updateEquipmentDataDetailInspectionNo" parameterType="com.heai.modules.pms.data.SubDetailValues">
  4898. update Equipment_data_detail
  4899. set inspection_no = #{inspectionNo}
  4900. where id = #{id}
  4901. </update>
  4902. <delete id="deleteInspectionFiles" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4903. delete sys_oss
  4904. where order_ref1 = #{site} and order_ref2 = #{inspectionNo} and order_ref4 = #{buNo}
  4905. </delete>
  4906. <select id="getUpItemdata" resultType="com.heai.modules.pms.data.QcTemplateData">
  4907. select
  4908. top 1
  4909. site,
  4910. bu_no,
  4911. template_id,
  4912. ItemNo,
  4913. order_id
  4914. from qc_template_detailed
  4915. where #{orderId} > order_id
  4916. and site = #{site}
  4917. and bu_no= #{buNo}
  4918. and template_id = #{templateId}
  4919. order by order_id desc
  4920. </select>
  4921. <select id="getDownItemdata" resultType="com.heai.modules.pms.data.QcTemplateData">
  4922. select
  4923. top 1
  4924. site,
  4925. bu_no,
  4926. template_id,
  4927. ItemNo,
  4928. order_id
  4929. from qc_template_detailed
  4930. where order_id > #{orderId}
  4931. and site = #{site}
  4932. and bu_no= #{buNo}
  4933. and template_id = #{templateId}
  4934. order by order_id
  4935. </select>
  4936. <update id="updateQcItemOrder">
  4937. update qc_template_detailed
  4938. set order_id=#{orderId}
  4939. where site = #{site}
  4940. and bu_no= #{buNo}
  4941. and template_id = #{templateId}
  4942. and ItemNo = #{itemNo}
  4943. </update>
  4944. <select id="getQCDetailOrderId" resultType="Integer">
  4945. SELECT isnull(max(order_id), 0) + 1
  4946. from qc_template_detailed
  4947. where site = #{site}
  4948. and bu_no= #{buNo}
  4949. and template_id = #{templateId}
  4950. </select>
  4951. <select id="updateQCDetailOrderIdNull">
  4952. UPDATE qc_template_detailed
  4953. SET qc_template_detailed.order_id = oi.rn
  4954. FROM (SELECT
  4955. site,
  4956. bu_no,
  4957. template_id,
  4958. ItemNo,
  4959. ROW_NUMBER() OVER (PARTITION BY site,bu_no,template_id ORDER BY ItemNo) AS rn
  4960. FROM qc_template_detailed
  4961. ) as oi
  4962. where qc_template_detailed.template_id = oi.template_id
  4963. AND qc_template_detailed.ItemNo = oi.ItemNo
  4964. and qc_template_detailed.order_id is null
  4965. </select>
  4966. <select id="selectInfoByInspectionNo" resultType="com.heai.modules.pms.data.PoOrderRollNoData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4967. select
  4968. site,
  4969. citem_code,
  4970. inspection_no
  4971. from po_order_roll_no
  4972. where site = #{site} and citem_code = #{buNo} and inspection_no = #{inspectionNo}
  4973. </select>
  4974. <update id="updateIQCMasterSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4975. UPDATE qc_iqc_record
  4976. SET submit_flag = 'N',
  4977. state = '待检验',
  4978. cancel_check_by = #{updateBy},
  4979. cancel_check_date = getDate()
  4980. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  4981. </update>
  4982. <update id="updateIQCDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4983. UPDATE qc_iqc_detailed_record
  4984. SET is_submit = 'N'
  4985. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  4986. </update>
  4987. <update id="updateIQCSubDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4988. UPDATE qc_iqc_sub_detail_record
  4989. SET is_submit = 'N'
  4990. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  4991. </update>
  4992. <update id="updateFAIMasterSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  4993. UPDATE qc_fai_record
  4994. SET submit_flag = 'N',
  4995. state = '待检验',
  4996. cancel_check_by = #{updateBy},
  4997. cancel_check_date = getDate()
  4998. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  4999. </update>
  5000. <update id="updateFAIDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5001. UPDATE qc_fai_detailed_record
  5002. SET is_submit = 'N'
  5003. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5004. </update>
  5005. <update id="updateFAISubDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5006. UPDATE qc_fai_sub_detail_record
  5007. SET is_submit = 'N'
  5008. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5009. </update>
  5010. <update id="updateIPQCMasterSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5011. UPDATE qc_ipqc_record
  5012. SET submit_flag = 'N',
  5013. state = '待检验',
  5014. cancel_check_by = #{updateBy},
  5015. cancel_check_date = getDate()
  5016. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5017. </update>
  5018. <update id="updateIPQCDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5019. UPDATE qc_ipqc_detailed_record
  5020. SET is_submit = 'N'
  5021. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5022. </update>
  5023. <update id="updateIPQCSubDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5024. UPDATE qc_ipqc_sub_detail_record
  5025. SET is_submit = 'N'
  5026. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5027. </update>
  5028. <update id="updateFQCMasterSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5029. UPDATE qc_fqc_record
  5030. SET submit_flag = 'N',
  5031. state = '待检验',
  5032. cancel_check_by = #{updateBy},
  5033. cancel_check_date = getDate()
  5034. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5035. </update>
  5036. <update id="updateFQCDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5037. UPDATE qc_fqc_detailed_record
  5038. SET is_submit = 'N'
  5039. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5040. </update>
  5041. <update id="updateFQCSubDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5042. UPDATE qc_fqc_sub_detail_record
  5043. SET is_submit = 'N'
  5044. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5045. </update>
  5046. <update id="updatePQCMasterSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5047. UPDATE qc_pqc_record
  5048. SET submit_flag = 'N',
  5049. state = '待检验',
  5050. cancel_check_by = #{updateBy},
  5051. cancel_check_date = getDate()
  5052. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5053. </update>
  5054. <update id="updatePQCDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5055. UPDATE qc_pqc_detailed_record
  5056. SET is_submit = 'N'
  5057. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5058. </update>
  5059. <update id="updatePQCSubDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5060. UPDATE qc_pqc_sub_detail_record
  5061. SET is_submit = 'N'
  5062. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5063. </update>
  5064. <!-- SQC取消审核 -->
  5065. <update id="updateSQCMasterSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5066. UPDATE qc_sqc_record
  5067. SET submit_flag = 'N',
  5068. state = '待检验',
  5069. cancel_check_by = #{updateBy},
  5070. cancel_check_date = getDate()
  5071. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5072. </update>
  5073. <update id="updateSQCDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5074. UPDATE qc_sqc_detailed_record
  5075. SET is_submit = 'N'
  5076. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5077. </update>
  5078. <update id="updateSQCSubDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5079. UPDATE qc_sqc_sub_detail_record
  5080. SET is_submit = 'N'
  5081. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5082. </update>
  5083. <delete id="deleteReceivingTaskByInspectionNo" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5084. delete receiving_task
  5085. where site = #{site} and citem_code = #{buNo} and inspection_no = #{inspectionNo}
  5086. </delete>
  5087. <delete id="deleteEquipmentFolderLocationList">
  5088. delete from Equipment_folder_location
  5089. where id = #{id}
  5090. </delete>
  5091. <select id="getQMSTask" resultType="com.heai.modules.pms.data.QmsTaskData">
  5092. select
  5093. id,
  5094. site,
  5095. bu_no,
  5096. part_no,
  5097. operation_desc,
  5098. s_resourceid,
  5099. qtyrequired,
  5100. create_date,
  5101. create_by,
  5102. inspection_type,
  5103. type,
  5104. order_no,
  5105. seqno,
  5106. template_id,
  5107. um_id,
  5108. work_center_no
  5109. from QMS_soscheduledrouting_TASK
  5110. where ISNULL(delete_flag, '') <![CDATA[<>]]> 'Y'
  5111. </select>
  5112. <select id="getSuffixList" resultType="java.lang.String">
  5113. select distinct suffix from Equipment_folder_location
  5114. </select>
  5115. <select id="checkEquipmentFolderLocation" resultType="java.lang.Integer">
  5116. select count(1)
  5117. from Equipment_folder_location
  5118. where site = #{site} and bu_no = #{buNo} and equipment_no = #{equipmentNo}
  5119. </select>
  5120. <update id="updateQMSTaskById">
  5121. UPDATE QMS_soscheduledrouting_TASK
  5122. SET delete_flag = 'Y'
  5123. WHERE id = #{id}
  5124. </update>
  5125. <select id="queryEquipmentFolderLocationList" resultType="com.heai.modules.pms.data.QCEquipmentFolderLocation">
  5126. select efl.*
  5127. from Equipment_folder_location efl
  5128. <where>
  5129. <if test="params.site != null and params.site != ''">
  5130. and efl.site = #{params.site}
  5131. </if>
  5132. <if test="params.equipmentNo != null and params.equipmentNo != ''">
  5133. and efl.equipment_no like '%'+ #{params.equipmentNo} +'%'
  5134. </if>
  5135. <if test="params.equipmentDesc != null and params.equipmentDesc != ''">
  5136. and efl.equipment_desc like '%'+ #{params.equipmentDesc} +'%'
  5137. </if>
  5138. <if test="params.IP != null and params.IP != ''">
  5139. and efl.IP like '%'+ #{params.IP} +'%'
  5140. </if>
  5141. <if test="params.suffix != null and params.suffix != ''">
  5142. and efl.suffix like '%'+ #{params.suffix} +'%'
  5143. </if>
  5144. </where>
  5145. </select>
  5146. <select id="getPqcOperationDescList" resultType="com.heai.modules.pms.data.QcPartAttributeData">
  5147. select qro.description as operationDesc
  5148. from operation_resource a
  5149. left join qc_pqc_record_operation qro on a.operation = qro.code
  5150. GROUP BY qro.description
  5151. </select>
  5152. <select id="getQcIPQCInspection" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  5153. select *
  5154. from qc_ipqc_record
  5155. where site = #{site} and seq_no = #{seqNo} and order_no = #{orderNo}
  5156. <if test=" inspectionTypeNo != null and inspectionTypeNo != ''">
  5157. and inspection_type_no = #{inspectionTypeNo}
  5158. </if>
  5159. </select>
  5160. <select id="selectMachineAndProcess" resultType="com.heai.modules.pms.entity.vo.MachineAndProcessVo">
  5161. select a.Site,a.OrderNo,a.ItemNo,a.OperationDesc,b.S_ResourceID,c.seqNo
  5162. from SORouting a
  5163. inner join SOScheduledRouting b on a.Site = b.Site and a.OrderNo = b.OrderNo and a.ItemNo = b.ItemNo
  5164. inner join SOOpsTransferDetail c on c.seqNo = b.SeqNo and c.Site = b.Site
  5165. where c.seqNo = #{seqNo} and a.Site = #{site}
  5166. </select>
  5167. <select id="getPartAttributeByPartNo" resultType="com.heai.modules.pms.data.QcPartAttributeData">
  5168. select top 1 attribute_no, supplier_no, defaultValue,maxValue,minValue,iqc_exempt,fai_exempt,ipqc_exempt,pqc_exempt,fqc_exempt,oqc_exempt,sqc_exempt
  5169. from qc_part_attribute
  5170. where attribute_no = #{partNo}
  5171. </select>
  5172. <update id="updateEquipmentFolderLocation">
  5173. UPDATE Equipment_folder_location
  5174. SET
  5175. folder_path = #{folderPath},
  5176. equipment_no = #{equipmentNo},
  5177. bu_no = #{buNo},
  5178. file_no = #{fileNo},
  5179. backup_folder_path = #{backupFolderPath},
  5180. IP = #{IP},
  5181. suffix = #{suffix},
  5182. equipment_desc = #{equipmentDesc},
  5183. backup_photo_path = #{backupPhotoPath},
  5184. batch_date = #{batchDate},
  5185. port = #{port},
  5186. register_address = #{registerAddress},
  5187. register_num = #{registerNum},
  5188. register_num_columntype = #{registerNumColumntype},
  5189. register_address_inspection = #{registerAddressInspection},
  5190. register_num_inspection = #{registerNumInspection},
  5191. register_num_inspection_columntype = #{registerNumInspectionColumntype},
  5192. unit_id = #{unitId},
  5193. excel_compare_fields_x = #{excelCompareFieldsX},
  5194. excel_compare_fields_y = #{excelCompareFieldsY},
  5195. initial_line = #{initialLine},
  5196. data_row = #{dataRow},
  5197. skip_line = #{skipLine},
  5198. cutting_symbol = #{cuttingSymbol},
  5199. transparent_flag = #{transparentFlag},
  5200. Formula_calculation = #{formulaCalculation},
  5201. Formula = #{formula},
  5202. Group_calculation = #{groupCalculation},
  5203. regexp = #{regexp},
  5204. repair_type = #{repairType},
  5205. buzzer = #{buzzer},
  5206. update_by = #{updateBy},
  5207. update_time = getDate()
  5208. WHERE id = #{id}
  5209. </update>
  5210. <update id="updatePQCMasterSubmitFlag">
  5211. UPDATE qc_pqc_record
  5212. SET submit_flag = 'Y',
  5213. state = '已完成',
  5214. submit_date = getDate()
  5215. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5216. </update>
  5217. <update id="updatePQCDetailSubmitFlag">
  5218. UPDATE qc_pqc_detailed_record
  5219. SET is_submit = 'Y'
  5220. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5221. </update>
  5222. <update id="updatePQCSubDetailSubmitFlag">
  5223. UPDATE qc_pqc_sub_detail_record
  5224. SET is_submit = 'Y'
  5225. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5226. </update>
  5227. <!-- ======================= IPQC 巡检特殊配置(按工序) ======================= -->
  5228. <select id="getPatrolConfigList" parameterType="java.util.Map" resultType="java.util.HashMap">
  5229. SELECT
  5230. site,
  5231. bu_no AS buNo,
  5232. part_no AS partNo,
  5233. operation_desc AS operationDesc,
  5234. first_inspection_duration AS firstInspectionDuration,
  5235. next_inspection_duration AS nextInspectionDuration,
  5236. total_inspection_duration AS totalInspectionDuration,
  5237. default_flag AS defaultFlag
  5238. FROM IPQC_Patrol_Configuration
  5239. WHERE site = #{site}
  5240. AND bu_no = #{buNo}
  5241. AND part_no = #{partNo}
  5242. ORDER BY default_flag DESC, operation_desc
  5243. </select>
  5244. <insert id="savePatrolConfig" parameterType="java.util.Map">
  5245. INSERT INTO IPQC_Patrol_Configuration (
  5246. site,
  5247. bu_no,
  5248. part_no,
  5249. operation_desc,
  5250. first_inspection_duration,
  5251. next_inspection_duration,
  5252. total_inspection_duration,
  5253. default_flag
  5254. ) VALUES (
  5255. #{site},
  5256. #{buNo},
  5257. #{partNo},
  5258. #{operationDesc},
  5259. #{firstInspectionDuration},
  5260. #{nextInspectionDuration},
  5261. #{totalInspectionDuration},
  5262. #{defaultFlag}
  5263. )
  5264. </insert>
  5265. <update id="updatePatrolConfig" parameterType="java.util.Map">
  5266. UPDATE IPQC_Patrol_Configuration
  5267. SET first_inspection_duration = #{firstInspectionDuration},
  5268. next_inspection_duration = #{nextInspectionDuration},
  5269. total_inspection_duration = #{totalInspectionDuration},
  5270. default_flag = #{defaultFlag}
  5271. WHERE site = #{site}
  5272. AND bu_no = #{buNo}
  5273. AND part_no = #{partNo}
  5274. AND operation_desc = #{operationDesc}
  5275. </update>
  5276. <delete id="deletePatrolConfig" parameterType="java.util.Map">
  5277. DELETE FROM IPQC_Patrol_Configuration
  5278. WHERE site = #{site}
  5279. AND bu_no = #{buNo}
  5280. AND part_no = #{partNo}
  5281. AND operation_desc = #{operationDesc}
  5282. </delete>
  5283. <update id="clearPatrolConfigDefaultFlag" parameterType="java.util.Map">
  5284. UPDATE IPQC_Patrol_Configuration
  5285. SET default_flag = 'N'
  5286. WHERE site = #{site}
  5287. AND bu_no = #{buNo}
  5288. AND part_no = #{partNo}
  5289. AND operation_desc != #{operationDesc}
  5290. </update>
  5291. <!-- ======================== OQC检验项目操作和模板导入 / FQAS(自 boying 同步) ======================== -->
  5292. <select id="getTemplateItems" parameterType="java.util.Map" resultType="com.heai.modules.pms.data.EamPropertiesItemData">
  5293. SELECT
  5294. d.ItemNo as itemNo,
  5295. p.ItemDesc as itemDesc,
  5296. d.default_value as defaultValue,
  5297. d.max_value as maxValue,
  5298. d.min_value as minValue,
  5299. p.ValueType as valueType,
  5300. p.ValueType_DB as valueTypeDb,
  5301. d.order_id as orderId
  5302. FROM qc_template_detailed d
  5303. LEFT JOIN eam_properties_item p
  5304. ON d.site = p.site
  5305. AND d.bu_no = p.bu_no
  5306. AND d.ItemNo = p.ItemNo
  5307. WHERE d.site = #{site}
  5308. AND d.bu_no = #{buNo}
  5309. AND d.template_id = #{templateId}
  5310. ORDER BY COALESCE(d.order_id, 99999) ASC, d.ItemNo ASC
  5311. </select>
  5312. <select id="getOQCAvailableItems" parameterType="java.util.Map" resultType="com.heai.modules.pms.data.EamPropertiesItemData">
  5313. SELECT
  5314. ItemNo as itemNo,
  5315. ItemDesc as itemDesc,
  5316. DefaultValue as defaultValue,
  5317. MaxValue as maxValue,
  5318. MinValue as minValue,
  5319. ValueType as valueType,
  5320. ValueType_DB as valueTypeDb
  5321. FROM eam_properties_item
  5322. WHERE site = #{site}
  5323. AND bu_no = #{buNo}
  5324. AND inspection_type_no = '109'
  5325. <if test="itemNo != null and itemNo != ''">
  5326. AND ItemNo LIKE '%' + #{itemNo} + '%'
  5327. </if>
  5328. <if test="itemDesc != null and itemDesc != ''">
  5329. AND ItemDesc LIKE '%' + #{itemDesc} + '%'
  5330. </if>
  5331. AND ItemNo NOT IN (
  5332. SELECT item_no
  5333. FROM qc_oqc_detailed_record
  5334. WHERE site = #{site}
  5335. AND bu_no = #{buNo}
  5336. AND inspection_no = #{inspectionNo}
  5337. )
  5338. ORDER BY ItemNo
  5339. </select>
  5340. <select id="getOQCSelectedItems" parameterType="java.util.Map" resultType="com.heai.modules.pms.data.EamPropertiesItemData">
  5341. SELECT
  5342. d.item_no as itemNo,
  5343. d.item_desc as itemDesc
  5344. FROM qc_oqc_detailed_record d
  5345. WHERE d.site = #{site}
  5346. AND d.bu_no = #{buNo}
  5347. AND d.inspection_no = #{inspectionNo}
  5348. ORDER BY d.item_no
  5349. </select>
  5350. <select id="getExistingOQCItems" parameterType="java.util.Map" resultType="com.heai.modules.pms.data.EamPropertiesItemData">
  5351. SELECT TOP 1
  5352. template_id as templateId,
  5353. item_no as itemNo,
  5354. foreign_flag as foreignFlag
  5355. FROM qc_oqc_detailed_record
  5356. WHERE site = #{site}
  5357. AND bu_no = #{buNo}
  5358. AND inspection_no = #{inspectionNo}
  5359. </select>
  5360. <insert id="insertOQCItemDetail" parameterType="java.util.Map">
  5361. INSERT INTO qc_oqc_detailed_record (
  5362. inspection_no,
  5363. template_id,
  5364. item_no,
  5365. item_desc,
  5366. default_value,
  5367. min_value,
  5368. max_value,
  5369. value_type_db,
  5370. value_type,
  5371. site,
  5372. bu_no,
  5373. foreign_flag,
  5374. order_id
  5375. ) VALUES (
  5376. #{inspectionNo},
  5377. #{templateId},
  5378. #{itemNo},
  5379. (SELECT ItemDesc FROM eam_properties_item WHERE site = #{site} AND bu_no = #{buNo} AND ItemNo = #{itemNo}),
  5380. (SELECT DefaultValue FROM eam_properties_item WHERE site = #{site} AND bu_no = #{buNo} AND ItemNo = #{itemNo}),
  5381. (SELECT MinValue FROM eam_properties_item WHERE site = #{site} AND bu_no = #{buNo} AND ItemNo = #{itemNo}),
  5382. (SELECT MaxValue FROM eam_properties_item WHERE site = #{site} AND bu_no = #{buNo} AND ItemNo = #{itemNo}),
  5383. (SELECT ValueType_DB FROM eam_properties_item WHERE site = #{site} AND bu_no = #{buNo} AND ItemNo = #{itemNo}),
  5384. (SELECT ValueType FROM eam_properties_item WHERE site = #{site} AND bu_no = #{buNo} AND ItemNo = #{itemNo}),
  5385. #{site},
  5386. #{buNo},
  5387. #{foreignFlag},
  5388. #{orderId}
  5389. )
  5390. </insert>
  5391. <select id="getMaxOrderIdForOQC" parameterType="java.util.Map" resultType="java.lang.Integer">
  5392. SELECT ISNULL(MAX(order_id), 0)
  5393. FROM qc_oqc_detailed_record
  5394. WHERE site = #{site}
  5395. AND bu_no = #{buNo}
  5396. AND inspection_no = #{inspectionNo}
  5397. </select>
  5398. <delete id="deleteOQCItemDetail" parameterType="java.util.Map">
  5399. DELETE FROM qc_oqc_detailed_record
  5400. WHERE site = #{site}
  5401. AND bu_no = #{buNo}
  5402. AND inspection_no = #{inspectionNo}
  5403. AND item_no = #{itemNo}
  5404. </delete>
  5405. <delete id="deleteOQCSubDetailByItem" parameterType="java.util.Map">
  5406. DELETE FROM qc_oqc_sub_detail_record
  5407. WHERE site = #{site}
  5408. AND bu_no = #{buNo}
  5409. AND inspection_no = #{inspectionNo}
  5410. AND item_no = #{itemNo}
  5411. </delete>
  5412. <select id="getOQCTemplateList" parameterType="java.util.Map" resultType="java.util.HashMap">
  5413. SELECT
  5414. t.template_id as templateId,
  5415. t.template_name as templateName,
  5416. t.template_remark as remark,
  5417. (SELECT COUNT(*) FROM qc_template_detailed d
  5418. WHERE d.site = t.site AND d.bu_no = t.bu_no AND d.template_id = t.template_id) as itemCount
  5419. FROM qc_template t
  5420. WHERE t.site = #{site}
  5421. AND t.bu_no = #{buNo}
  5422. AND t.inspection_type_no = '109'
  5423. <if test="templateId != null and templateId != ''">
  5424. AND t.template_id LIKE '%' + #{templateId} + '%'
  5425. </if>
  5426. <if test="templateDesc != null and templateDesc != ''">
  5427. AND t.template_name LIKE '%' + #{templateDesc} + '%'
  5428. </if>
  5429. ORDER BY t.template_id
  5430. </select>
  5431. <select id="getExistingOQCItemNos" parameterType="java.util.Map" resultType="java.lang.String">
  5432. SELECT item_no
  5433. FROM qc_oqc_detailed_record
  5434. WHERE site = #{site}
  5435. AND bu_no = #{buNo}
  5436. AND inspection_no = #{inspectionNo}
  5437. </select>
  5438. <delete id="deleteObjectFile">
  5439. delete from sys_oss where id = #{id}
  5440. </delete>
  5441. <select id="getUserRoleList" resultType="com.heai.modules.sys.entity.SysRoleEntity">
  5442. SELECT
  5443. role_id,
  5444. role_name
  5445. FROM sys_role
  5446. </select>
  5447. <select id="selectOQCBasicData" resultType="com.heai.modules.pms.data.QcFAIRecordData" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5448. SELECT
  5449. qir.inspection_no,
  5450. qir.state,
  5451. qir.create_date as taskDate,
  5452. qir.roll_no,
  5453. qir.part_no,
  5454. dbo.Get_Part_DescSpec(qir.site, qir.part_no) as part_desc,
  5455. qir.roll_qty,
  5456. qir.print_flag,
  5457. qir.create_by,
  5458. qir.site,
  5459. qir.bu_no,
  5460. qir.roll_count
  5461. FROM qc_oqc_record as qir
  5462. LEFT JOIN part p ON qir.part_no = p.partNo and qir.site = p.site
  5463. WHERE qir.site in (select site from AccessSite where userID = #{userName})
  5464. and qir.bu_no in (select bu_no from AccessBu where username = #{userName})
  5465. </select>
  5466. <select id="selectFQASPartAttributeByPartNo" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  5467. SELECT
  5468. qat.site,
  5469. qat.bu_no,
  5470. qat.attribute_no,
  5471. qat.template_id,
  5472. qat.sampling_level_no,
  5473. qsil.sampling_level_desc,
  5474. qat.inspection_cycle,
  5475. qat.sampling_programme_no,
  5476. qsip.sampling_programme_desc,
  5477. qat.AQL,
  5478. qat.AC,
  5479. qat.RE,
  5480. qt.default_sampling_quantity,
  5481. qt.default_sampling_proportion
  5482. FROM qc_attribute_template as qat
  5483. LEFT JOIN qc_template as qt ON qat.template_id = qt.template_id and qat.site = qt.site and qat.bu_no = qt.bu_no
  5484. LEFT JOIN qc_sampling_inspection_level as qsil ON qat.sampling_level_no = qsil.sampling_level_no and qat.site = qsil.site and qat.bu_no = qsil.bu_no
  5485. LEFT JOIN qc_sampling_inspection_programme as qsip ON qat.sampling_programme_no = qsip.sampling_programme_no and qat.site = qsip.site and qat.bu_no = qsip.bu_no
  5486. WHERE qat.site = #{site} and qat.bu_no = #{buNo}
  5487. AND qat.attribute_no = #{partNo}
  5488. AND qat.attribute_type = #{attributeType}
  5489. AND qt.inspection_type_no = #{inspectionTypeNo}
  5490. </select>
  5491. <insert id="saveFQASDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5492. INSERT INTO qc_oqc_detailed_record
  5493. (inspection_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc, AQL, AC, RE,
  5494. item_no, item_desc, object_id, object_desc, default_value, min_value, max_value, value_type_db, value_type, site, sampling_qty, bu_no, order_id)
  5495. VALUES
  5496. (#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL},
  5497. #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL}, #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site}, #{samplingQty}, #{buNo}, #{orderId})
  5498. </insert>
  5499. <update id="updateFQASRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5500. UPDATE qc_oqc_record
  5501. SET inspection_type_no = #{inspectionTypeNo},
  5502. sampling_qty = #{samplingQty},
  5503. inspection_cycle = #{inspectionCycle},
  5504. part_desc = #{partDesc},
  5505. detail_flag = 'Y',
  5506. pass_qty = #{samplingQty},
  5507. not_pass_qty = 0
  5508. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5509. </update>
  5510. <select id="qcOQCInspectionSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  5511. SELECT
  5512. a.inspection_no,
  5513. a.site,
  5514. a.bu_no,
  5515. dbo.get_bu_desc(a.site, a.bu_no) as buDesc,
  5516. a.state,
  5517. a.inspection_result,
  5518. a.create_date as taskDate,
  5519. a.inspection_type_no,
  5520. a.inspection_cycle,
  5521. a.part_no,
  5522. a.part_desc,
  5523. d.umid as umId,
  5524. um.UMName as umName,
  5525. d.spec,
  5526. a.inspection_remark,
  5527. a.roll_qty,
  5528. a.sampling_qty,
  5529. a.disposal_measures,
  5530. a.disposal_remark,
  5531. a.inspector_date,
  5532. a.submit_flag,
  5533. a.roll_no,
  5534. a.roll_count,
  5535. a.action_date,
  5536. a.action_by,
  5537. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operator,
  5538. isnull(dbo.joint_name(a.site, a.bu_no, a.inspection_no, 'coordination'), '') as operatorName,
  5539. isnull(dbo.joint_id(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePerson,
  5540. isnull(dbo.joint_name(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePersonName,
  5541. a.pass_qty,
  5542. a.not_pass_qty,
  5543. a.create_by,
  5544. a.customer_no,
  5545. dbo.Get_CustomerDesc(a.site, a.customer_no) as customerName,
  5546. a.co_orderNo po_orderNo,
  5547. a.co_itemNo po_itemNo,
  5548. a.document_no,
  5549. a.del_notify_No,
  5550. a.del_notify_itemNo
  5551. FROM qc_oqc_record as a
  5552. left join part as d on a.site = d.site and a.bu_no = d.sourceBu and a.part_no = d.partNo
  5553. left join um as um on d.site = um.site and d.umid = um.UMID
  5554. <where>
  5555. a.site in (select site from AccessSite where userID = #{query.userName})
  5556. and a.bu_no in (select bu_no from AccessBu where username = #{query.userName})
  5557. <if test="query.buDesc != null and query.buDesc != ''">
  5558. AND dbo.get_bu_desc (a.site, a.bu_no) = #{query.buDesc}
  5559. </if>
  5560. <if test = "query.inspectionNo != null and query.inspectionNo != ''">
  5561. AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
  5562. </if>
  5563. <if test = "query.states != null and query.states.size > 0">
  5564. AND a.state in
  5565. <foreach item="item" collection="query.states" open="(" separator="," close=")">
  5566. #{item}
  5567. </foreach>
  5568. </if>
  5569. <if test = "query.inspectionResult != null and query.inspectionResult != ''">
  5570. AND a.inspection_result = #{query.inspectionResult}
  5571. </if>
  5572. <if test = "query.partNo != null and query.partNo != ''">
  5573. AND a.part_no LIKE '%' + #{query.partNo} + '%'
  5574. </if>
  5575. <if test = "query.partDesc != null and query.partDesc != ''">
  5576. AND a.part_desc LIKE '%' + #{query.partDesc} + '%'
  5577. </if>
  5578. <if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
  5579. AND a.disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
  5580. </if>
  5581. <if test="query.startDate != null">
  5582. AND a.inspector_date >= #{query.startDate}
  5583. </if>
  5584. <if test="query.endDate != null">
  5585. AND #{query.endDate} >= a.inspector_date
  5586. </if>
  5587. <if test="query.startDate2 != null">
  5588. AND a.create_date >= #{query.startDate2}
  5589. </if>
  5590. <if test="query.endDate2 != null">
  5591. AND #{query.endDate2} >= a.create_date
  5592. </if>
  5593. <if test = "query.customerNo != null and query.customerNo != ''">
  5594. AND a.customer_no LIKE '%' + #{query.customerNo} + '%'
  5595. </if>
  5596. <if test = "query.customerName != null and query.customerName != ''">
  5597. AND dbo.Get_CustomerDesc(a.site, a.customer_no) LIKE '%' + #{query.customerName} + '%'
  5598. </if>
  5599. <if test = "query.poOrderNo != null and query.poOrderNo != ''">
  5600. AND a.po_orderNo LIKE '%' + #{query.poOrderNo} + '%'
  5601. </if>
  5602. <if test = "query.spec != null and query.spec != ''">
  5603. AND d.spec LIKE '%' + #{query.spec} + '%'
  5604. </if>
  5605. </where>
  5606. ORDER BY
  5607. CASE WHEN a.state = '待检验' THEN 1
  5608. WHEN a.state = '待审核' THEN 2
  5609. WHEN a.state = '已完成' THEN 3
  5610. END, a.create_date desc
  5611. </select>
  5612. <select id="fqasDetailSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  5613. SELECT
  5614. a.site,
  5615. a.bu_no,
  5616. a.inspection_no,
  5617. a.template_id,
  5618. a.sampling_level_no,
  5619. a.sampling_level_desc,
  5620. a.sampling_programme_no,
  5621. a.sampling_programme_desc,
  5622. a.AQL,
  5623. a.AC,
  5624. a.RE,
  5625. a.item_no,
  5626. a.item_desc,
  5627. a.object_id,
  5628. a.object_desc,
  5629. a.default_value,
  5630. a.min_value,
  5631. a.max_value,
  5632. a.text_value,
  5633. a.number_value,
  5634. a.value_type_db,
  5635. a.value_type,
  5636. case when a.item_result = '' or a.item_result is null then 'Y' else a.item_result end as itemResult,
  5637. a.is_submit,
  5638. a.unqualified_quantity,
  5639. dbo.qc_get_fqas_sub_record_num(a.site, a.bu_no, a.inspection_no, a.item_no) as subDetailRecordNum,
  5640. dbo.qc_get_record_image_num(a.site, a.bu_no, a.inspection_no, a.item_no) as detailImageNum,
  5641. c.method_no,
  5642. c.method_name,
  5643. c.method_remark,
  5644. a.sampling_qty
  5645. FROM qc_oqc_detailed_record as a
  5646. LEFT JOIN qc_method_item as b on a.site = b.site and a.item_no = b.ItemNo and a.bu_no = b.bu_no
  5647. LEFT JOIN qc_method as c on b.site = c.site and b.method_no = c.method_no and b.bu_no = c.bu_no
  5648. WHERE a.inspection_no = #{inspectionNo} and a.site = #{site} and a.bu_no = #{buNo}
  5649. ORDER BY COALESCE(a.order_id, 99999) ASC
  5650. </select>
  5651. <select id="selectFQASSubDetailedRecord" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.SubDetailValues">
  5652. SELECT
  5653. site,
  5654. bu_no,
  5655. sub_detail_value,
  5656. sampling_location,
  5657. is_submit,
  5658. sampling_location_b,
  5659. num,
  5660. sub_detail_value_b,
  5661. sub_detail_value_c,
  5662. sub_detail_value_d,
  5663. sub_detail_value_e
  5664. FROM qc_oqc_sub_detail_record
  5665. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  5666. </select>
  5667. <select id="getSupplier" resultType="com.heai.modules.pms.data.SupplierData">
  5668. SELECT
  5669. site,
  5670. SupplierID,
  5671. SupplierName
  5672. FROM Supplier
  5673. WHERE site = #{site} and SupplierID = #{supplierID} and Active = #{active}
  5674. </select>
  5675. <update id="updateFQASMasterRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5676. UPDATE qc_oqc_record
  5677. SET disposal_measures = #{disposalMeasures},
  5678. disposal_remark = #{disposalRemark},
  5679. inspection_result = #{inspectionResult},
  5680. inspector_no = #{inspectorNo},
  5681. state = #{state},
  5682. inspection_remark = #{inspectionRemark},
  5683. inspector_date = getDate(),
  5684. roll_count = #{rollCount,jdbcType=DECIMAL},
  5685. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  5686. unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL},
  5687. pass_qty = #{passQty,jdbcType=DECIMAL},
  5688. not_pass_qty = #{notPassQty,jdbcType=DECIMAL}
  5689. WHERE site = #{site} and inspection_no = #{inspectionNo} and bu_no = #{buNo}
  5690. </update>
  5691. <update id="updateFQASDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5692. UPDATE qc_oqc_detailed_record
  5693. SET item_result = #{itemResult},
  5694. unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL},
  5695. sampling_qty = #{samplingQty,jdbcType=DECIMAL},
  5696. text_value = #{textValue},
  5697. number_value = #{numberValue,jdbcType=DECIMAL},
  5698. default_value = #{defaultValue},
  5699. min_value = #{minValue,jdbcType=DECIMAL},
  5700. max_value = #{maxValue,jdbcType=DECIMAL}
  5701. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  5702. </update>
  5703. <select id="getFQASInspectionRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  5704. SELECT
  5705. site,
  5706. bu_no,
  5707. inspection_no,
  5708. not_pass_qty,
  5709. roll_count,
  5710. inspection_result,
  5711. disposal_measures,
  5712. part_no
  5713. FROM qc_oqc_record
  5714. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  5715. </select>
  5716. <update id="updateFQASMasterSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5717. UPDATE qc_oqc_record
  5718. SET submit_flag = 'Y',
  5719. state = '已完成'
  5720. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5721. </update>
  5722. <update id="updateFQASDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5723. UPDATE qc_oqc_detailed_record
  5724. SET is_submit = 'Y'
  5725. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5726. </update>
  5727. <update id="updateFQASSubDetailSubmitFlag" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5728. UPDATE qc_oqc_sub_detail_record
  5729. SET is_submit = 'Y'
  5730. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5731. </update>
  5732. <select id="checkFQASIsSubmit" parameterType="com.heai.modules.pms.data.SubDetailValues" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  5733. SELECT submit_flag
  5734. FROM qc_oqc_record
  5735. WHERE inspection_no = #{inspectionNo} and site = #{site}
  5736. </select>
  5737. <delete id="delFQASSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcSubDetailInformationData">
  5738. DELETE FROM qc_oqc_sub_detail_record
  5739. WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
  5740. </delete>
  5741. <insert id="saveFQASSubDetailed">
  5742. INSERT INTO qc_oqc_sub_detail_record
  5743. (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no)
  5744. VALUES
  5745. <foreach collection="list" item="item" separator=",">
  5746. (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo})
  5747. </foreach>
  5748. </insert>
  5749. <delete id="deleteFQASRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5750. DELETE FROM qc_oqc_record
  5751. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5752. </delete>
  5753. <delete id="deleteFQASDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5754. DELETE FROM qc_oqc_detailed_record
  5755. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5756. </delete>
  5757. <delete id="deleteFQASSubDetailedRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5758. DELETE FROM qc_oqc_sub_detail_record
  5759. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5760. </delete>
  5761. <select id="getFQASRecordStatus" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  5762. SELECT submit_flag, state
  5763. FROM qc_oqc_record
  5764. WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
  5765. </select>
  5766. <update id="actionFQASInspection" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5767. update qc_oqc_record
  5768. set action_date = getDate(),
  5769. action_by = #{actionBy},
  5770. state = #{state}
  5771. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  5772. </update>
  5773. <update id="updateSamplingQty" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5774. update
  5775. <if test = "inspectionTypeNo == '105'">
  5776. qc_iqc_record
  5777. </if>
  5778. <if test = "inspectionTypeNo == '108'">
  5779. qc_oqc_record
  5780. </if>
  5781. set sampling_qty = #{samplingQty,jdbcType=DECIMAL}
  5782. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  5783. </update>
  5784. <update id="updateDetailSamplingQty" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5785. update
  5786. <if test = "inspectionTypeNo == '105'">
  5787. qc_iqc_detailed_record
  5788. </if>
  5789. <if test = "inspectionTypeNo == '108'">
  5790. qc_oqc_detailed_record
  5791. </if>
  5792. set sampling_qty = #{samplingQty,jdbcType=DECIMAL}
  5793. where site = #{site} and bu_no = #{buNo} and inspection_no = #{inspectionNo}
  5794. </update>
  5795. <select id="getCheckerList" resultType="com.heai.modules.pms.data.EamAdminData" parameterType="com.heai.modules.pms.data.EamAdminData">
  5796. SELECT
  5797. a.user_id,
  5798. a.username as adminID,
  5799. a.email,
  5800. a.mobile as phone,
  5801. a.user_display as adminName,
  5802. dbo.get_bu_desc(c.site,c.bu_no) as buDesc,
  5803. d.role_id,
  5804. e.role_name
  5805. FROM sys_user as a
  5806. LEFT JOIN AccessSite as b on a.username = b.userID
  5807. LEFT JOIN AccessBu as c on b.username = c.username and b.site = c.site
  5808. LEFT JOIN sys_user_role as d on a.user_id = d.user_id
  5809. LEFT JOIN sys_role as e on d.role_id = e.role_id
  5810. <where>
  5811. b.site = #{site} and c.bu_no = #{buNo}
  5812. <if test = "adminID != null and adminID != ''">
  5813. AND a.username LIKE '%' + #{adminID}+'%'
  5814. </if>
  5815. <if test = "adminName != null and adminName != ''">
  5816. AND a.user_display LIKE '%' + #{adminName}+'%'
  5817. </if>
  5818. <if test = "buDesc != null and buDesc != ''">
  5819. AND dbo.get_bu_desc(a.site,c.bu_no) LIKE '%' + #{buDesc} + '%'
  5820. </if>
  5821. <if test = "roleId != null and roleId != ''">
  5822. AND d.role_id = #{roleId}
  5823. </if>
  5824. </where>
  5825. </select>
  5826. <select id="searchQcSopFileList" resultType="map">
  5827. SELECT DISTINCT
  5828. site,
  5829. buNo,
  5830. partNo,
  5831. sopNo,
  5832. sopName,
  5833. sopUrl,
  5834. [version],
  5835. sopStatus,
  5836. phaseInDate,
  5837. phaseOutDate,
  5838. createdBy,
  5839. creationDate,
  5840. sopType as fileType,
  5841. operationDesc
  5842. FROM (
  5843. SELECT
  5844. ps.site,
  5845. ps.bu_no AS buNo,
  5846. ps.part_no AS partNo,
  5847. ps.sop_no AS sopNo,
  5848. ps.sop_name AS sopName,
  5849. ps.sop_url AS sopUrl,
  5850. ps.[version ] AS [version],
  5851. ps.sop_status AS sopStatus,
  5852. ps.phase_in_date AS phaseInDate,
  5853. ps.phase_out_date AS phaseOutDate,
  5854. ps.created_by AS createdBy,
  5855. ps.creation_date AS creationDate,
  5856. ps.sop_type AS sopType,
  5857. ps.operation_desc AS operationDesc
  5858. FROM part_sop ps
  5859. WHERE ps.site = #{params.site}
  5860. AND ps.part_no = #{params.partNo}
  5861. UNION ALL
  5862. SELECT
  5863. fm.site,
  5864. fm.bu_no AS buNo,
  5865. '' AS partNo,
  5866. fm.file_no AS sopNo,
  5867. fm.file_name AS sopName,
  5868. fm.url_add_ress AS sopUrl,
  5869. fm.sop_rev_no AS [version],
  5870. fm.status AS sopStatus,
  5871. fm.phase_in_date AS phaseInDate,
  5872. fm.phase_out_date AS phaseOutDate,
  5873. fm.created_by AS createdBy,
  5874. fm.create_date AS creationDate,
  5875. fm.file_type AS sopType,
  5876. fm.item_no AS operationDesc
  5877. FROM file_management fm
  5878. WHERE fm.site = #{params.site}
  5879. AND fm.file_type = '质量'
  5880. AND (
  5881. ISNULL(fm.public_flag, 'N') = 'Y'
  5882. OR fm.order_no = #{params.orderNo}
  5883. )
  5884. ) AS CombinedResults
  5885. </select>
  5886. <update id="updateSaleBoxManageStatus">
  5887. update outbound_notification_head
  5888. set order_status = #{status}
  5889. where site = #{site} and bu_no = #{buNo} and order_no = #{documentNo}
  5890. </update>
  5891. <update id="updateSaleBoxManageInspectionFlag">
  5892. update outbound_notification_detail
  5893. set inspection_flag = #{inspectionFlag}
  5894. where site = #{site} and bu_no = #{buNo} and order_no = #{documentNo}
  5895. </update>
  5896. <!-- OQC 审核:qc_oqc_record.document_no = 通知单单号;序号使用 serial_no(若表中有 del_notify_item_no 可在 Java 侧扩展映射) -->
  5897. <select id="selectOqcDelNotifyKeys" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
  5898. SELECT
  5899. document_no AS documentNo,
  5900. del_notify_No AS delNotifyNo
  5901. FROM qc_oqc_record
  5902. WHERE site = #{site}
  5903. AND bu_no = #{buNo}
  5904. AND inspection_no = #{inspectionNo}
  5905. </select>
  5906. <select id="selectCODelNotifyDetailInsApproveBefore" resultType="com.heai.modules.pms.data.QcCODelNotifyInsApproveSnapshot">
  5907. SELECT
  5908. Ins_ApproveFlag AS insApproveFlag,
  5909. Ins_ApproveResultFlag AS insApproveResultFlag,
  5910. Ins_ApprovedBy AS insApprovedBy,
  5911. Ins_ApprovedDate AS insApprovedDate,
  5912. Ins_Remark AS insRemark
  5913. FROM CODelNotifyDetail
  5914. WHERE Site = #{site}
  5915. AND DelNotifyNo = #{delNotifyNo}
  5916. AND DelNotifyItemNo = #{delNotifyItemNo}
  5917. </select>
  5918. <update id="updateCODelNotifyDetailOqcApprove">
  5919. UPDATE CODelNotifyDetail
  5920. SET Ins_ApproveFlag = 'Y',
  5921. Ins_ApproveResultFlag = #{insApproveResultFlag},
  5922. Ins_ApprovedBy = #{insApprovedBy},
  5923. Ins_ApprovedDate = GETDATE(),
  5924. Ins_Remark = #{insRemark,jdbcType=NVARCHAR}
  5925. WHERE Site = #{site}
  5926. AND DelNotifyNo = #{delNotifyNo}
  5927. AND DelNotifyItemNo = #{delNotifyItemNo,jdbcType=DECIMAL}
  5928. </update>
  5929. <update id="updateCODelNotifyDetailOqcCancelApprove">
  5930. UPDATE CODelNotifyDetail
  5931. SET Ins_ApproveFlag = 'N',
  5932. Ins_ApproveResultFlag = '',
  5933. Ins_ApprovedBy = '',
  5934. Ins_ApprovedDate = NULL,
  5935. Ins_Remark = ''
  5936. WHERE Site = #{site}
  5937. AND DelNotifyNo = #{delNotifyNo}
  5938. AND DelNotifyItemNo = #{delNotifyItemNo,jdbcType=DECIMAL}
  5939. </update>
  5940. <update id="updateFQASMasterSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5941. UPDATE qc_oqc_record
  5942. SET submit_flag = 'N',
  5943. state = '待审核'
  5944. WHERE inspection_no = #{inspectionNo} AND site = #{site} AND bu_no = #{buNo}
  5945. </update>
  5946. <update id="updateFQASDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5947. UPDATE qc_oqc_detailed_record
  5948. SET is_submit = 'N'
  5949. WHERE inspection_no = #{inspectionNo} AND site = #{site} AND bu_no = #{buNo}
  5950. </update>
  5951. <update id="updateFQASSubDetailSubmitFlag2" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
  5952. UPDATE qc_oqc_sub_detail_record
  5953. SET is_submit = 'N'
  5954. WHERE inspection_no = #{inspectionNo} AND site = #{site} AND bu_no = #{buNo}
  5955. </update>
  5956. <select id="getPatrolOperationDescList" parameterType="java.util.Map" resultType="java.lang.String">
  5957. SELECT DISTINCT OperationDesc
  5958. FROM RoutingDetail
  5959. <where>
  5960. <if test="site != null and site != ''">
  5961. AND site = #{site}
  5962. </if>
  5963. <if test="userName != null and userName != ''">
  5964. AND site IN (SELECT site FROM AccessSite WHERE UserID = #{userName})
  5965. </if>
  5966. </where>
  5967. ORDER BY OperationDesc
  5968. </select>
  5969. </mapper>