'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 = ?