'4' AND T.PLAN_ID = ? AND REGEXP_REPLACE(T.JUDGE_STOVE_NO, '-.*', '') = ? AND T.PLINE_CODE = ? ]]> SELECT COUNT(1) ACOUNT FROM PORT_MIL_BATCH_SAMPLE_RESULT T WHERE T.JUGDE_APPLY_CODE IS NOT NULL AND T.MEASURE_RESULT_NO = ? AND T.PLAN_ID = ? SELECT DISTINCT T.MAT_NO FROM PORT_MIL_BATCH_SAMPLE_RESULT T WHERE T.JUGDE_APPLY_CODE IS NULL AND T.MEASURE_RESULT_NO = ? AND T.PLAN_ID = ? DECLARE V_INPUT_WEIGHT PORT_MIL_BATCH_SAMPLE_RESULT.INPUT_WEIGHT%TYPE := NULL; --平均值 V_INPUT_WEIGHT1 PORT_MIL_BATCH_SAMPLE_RESULT.INPUT_WEIGHT%TYPE := NULL; --余数 V_ACT_WEIGHT PORT_MIL_BATCH_SAMPLE_RESULT.INPUT_WEIGHT%TYPE := ?; V_ACT_COUNT PORT_MIL_BATCH_SAMPLE_RESULT.ACT_COUNT%TYPE := ?; V_MEASURE_RESULT_NO PORT_MIL_BATCH_SAMPLE_RESULT.MEASURE_RESULT_NO%TYPE := ?; V_PLINE_CODE PORT_MIL_BATCH_SAMPLE_RESULT.PLINE_CODE%TYPE := ?; V_HEAT_PLAN_NO PLN_ZY_ZG_M.HEAT_PLAN_NO%TYPE := ?; BEGIN SELECT TRUNC(V_ACT_WEIGHT / V_ACT_COUNT, 3) INTO V_INPUT_WEIGHT FROM DUAL; SELECT V_ACT_WEIGHT - V_ACT_COUNT * V_INPUT_WEIGHT INTO V_INPUT_WEIGHT1 FROM DUAL; FOR MYROW IN (SELECT T.* FROM PORT_MIL_BATCH_SAMPLE_RESULT T WHERE T.PLINE_CODE = V_PLINE_CODE AND T.STATUS IN ('0', '3') AND T.PLAN_ID = V_HEAT_PLAN_NO AND T.MEASURE_RESULT_NO = MEASURE_RESULT_NO) LOOP IF (V_INPUT_WEIGHT1 >= 0.001) THEN V_INPUT_WEIGHT1 := V_INPUT_WEIGHT1 - 0.001; UPDATE PORT_MIL_BATCH_SAMPLE_RESULT T SET T.ACT_THEORY_WEIGHT = V_INPUT_WEIGHT + 0.001, T.MEASURE_WEIGHT = V_INPUT_WEIGHT + 0.001 WHERE T.JUDGE_STOVE_NO = MYROW.JUDGE_STOVE_NO AND T.MAT_NO = MYROW.MAT_NO AND T.MEASURE_RESULT_NO = MYROW.MEASURE_RESULT_NO; UPDATE RTD_MEASURE_POSDATA T SET T.ACT_WEIGHT = 1000 * (V_INPUT_WEIGHT + 0.001) WHERE T.MAT_NO_CX = MYROW.MAT_NO AND T.FLAG = '00' AND T.PLINE_CODE = V_PLINE_CODE; UPDATE MAT_BC_M T SET T.ACT_WEIGHT = V_INPUT_WEIGHT + 0.001, T.PONDER_GROSS_WT = V_INPUT_WEIGHT + 0.001 WHERE T.ZG_MAT_NO = MYROW.MAT_NO AND T.QCM_STAUS = '00' AND T.PLINE_CODE = V_PLINE_CODE; ELSE UPDATE PORT_MIL_BATCH_SAMPLE_RESULT T SET T.ACT_THEORY_WEIGHT = V_INPUT_WEIGHT, T.MEASURE_WEIGHT = V_INPUT_WEIGHT WHERE T.JUDGE_STOVE_NO = MYROW.JUDGE_STOVE_NO AND T.MAT_NO = MYROW.MAT_NO AND T.MEASURE_RESULT_NO = MYROW.MEASURE_RESULT_NO; UPDATE RTD_MEASURE_POSDATA T SET T.ACT_WEIGHT = 1000 * V_INPUT_WEIGHT WHERE T.MAT_NO_CX = MYROW.MAT_NO AND T.FLAG = '00' AND T.PLINE_CODE = V_PLINE_CODE; UPDATE MAT_BC_M T SET T.ACT_WEIGHT = V_INPUT_WEIGHT, T.PONDER_GROSS_WT = V_INPUT_WEIGHT WHERE T.ZG_MAT_NO = MYROW.MAT_NO AND T.QCM_STAUS = '00' AND T.PLINE_CODE = V_PLINE_CODE; END IF; END LOOP; END; UPDATE MIL_MEASURE_RESULT T SET T.PRO_WT = ? WHERE T.RESULT_NO = ?