<select id="queryProducingPlanData" resultType="hashmap"> SELECT T3.NAME AS PROJECT_NAME, T0.DOC_ITEMATTR2 DOC_ITEMATTR2, T0.ENG_SECTION, T0.TOTAL, T0.TOTAL_WEIGHT, NVL(T2.FINISH_NUM,0) AS FINISH_NUM, (NVL(T2.FINISH_NUM,0) - NVL(T1.STOCK_NUM,0) - NVL(T1.SEND_NUM,0)) as NO_TAG_NUM, NVL(T1.STOCK_NUM,0) AS STOCK_NUM, NVL(T1.SEND_NUM,0) AS SEND_NUM, NVL(T1.STOCK_WEIGHT,0) AS STOCK_WEIGHT, T0.PROJECT_ID FROM (SELECT DI.PROJECT_ID, DI.ENG_SECTION, MAX(DI.DOC_ITEMATTR2) DOC_ITEMATTR2, SUM(DI.UNIT_QTY) AS TOTAL, SUM(DI.WEIGHT*DI.UNIT_QTY) AS TOTAL_WEIGHT FROM DN_DOCUMENT_ITEMS DI INNER JOIN DN_DOCUMENT D ON D.DOC_NUM = DI.DOC_NUM AND D.DOC_SUBNDX = DI.DOC_SUBNDX WHERE D.CLIENT_ID = #{clientId,jdbcType=VARCHAR} AND D.LOCKED = 'Y' AND D.TYPECODE = 'RQ08' <if test="subType !=null and subType != ''"> AND DI.SUB_TYPECODE = #{subType,jdbcType=VARCHAR} </if> <if test="projectId !=null and projectId != ''"> AND DI.PROJECT_ID = #{projectId,jdbcType=DECIMAL} </if> <if test="engSection !=null and engSection != ''"> AND DI.ENG_SECTION like '%'||#{engSection,jdbcType=VARCHAR}||'%' </if> GROUP BY DI.PROJECT_ID, DI.ENG_SECTION) T0 LEFT JOIN (SELECT PP.PROJECT_ID, P.ATTR3, SUM(CASE WHEN P.STATUS_CODE IN('1010','1020') THEN P.WEIGHT ELSE 0 END) AS STOCK_WEIGHT, SUM(CASE WHEN P.STATUS_CODE IN('1010','1020') THEN 1 ELSE 0 END) AS STOCK_NUM, SUM(CASE WHEN P.STATUS_CODE IN('1051','1052','1070','1261') THEN 1 ELSE 0 END) AS SEND_NUM FROM DN_PRODUCT P LEFT JOIN DN_PROJECT_PRODUCT PP ON P.ID = PP.PRODUCT_ID WHERE P.CLIENT_ID= #{clientId,jdbcType=VARCHAR} <if test="subType !=null and subType != ''"> AND P.SUB_TYPECODE = #{subType,jdbcType=VARCHAR} </if> <if test="projectId !=null and projectId != ''"> AND PP.PROJECT_ID = #{projectId,jdbcType=DECIMAL} </if> <if test="engSection !=null and engSection != ''"> AND P.ATTR3 like '%'||#{engSection,jdbcType=VARCHAR}||'%' </if> GROUP BY PP.PROJECT_ID, P.ATTR3) T1 ON T0.PROJECT_ID = T1.PROJECT_ID AND T0.ENG_SECTION=T1.ATTR3 LEFT JOIN (SELECT PR.PROJECT_ID, PR.ENG_SECTION, COUNT(1) FINISH_NUM FROM DN_PRODUCT_REQUEST PR LEFT JOIN DN_PRODUCT P ON PR.PRODUCT_ID = P.ID WHERE PR.CLIENT_ID = #{clientId,jdbcType=VARCHAR} AND PR.REQ_TYPECODE = 'RQ11' AND PR.STATUS_CODE in('1010','1020') <if test="subType !=null and subType != ''"> AND P.SUB_TYPECODE = #{subType,jdbcType=VARCHAR} </if> <if test="projectId !=null and projectId != ''"> AND PR.PROJECT_ID = #{projectId,jdbcType=DECIMAL} </if> <if test="engSection !=null and engSection != ''"> AND PR.ENG_SECTION like '%'||#{engSection,jdbcType=VARCHAR}||'%' </if> GROUP BY PR.PROJECT_ID, PR.ENG_SECTION) T2 ON T0.PROJECT_ID = T2.PROJECT_ID AND T0.ENG_SECTION=T2.ENG_SECTION LEFT JOIN DN_PROJECT T3 ON T0.PROJECT_ID = T3.ID ORDER BY PROJECT_NAME,ENG_SECTION </select>