1.
create or replace procedure PROC_CHECK(Insert_by VARCHAR) IS
v_OID VARCHAR2(
36
);
begin
declare
--
类型定义
cursor c_check
is
select
dep_oid,oms_user_oid
from
dcjetframework.v_oms_user;
--定义一个游标变量v_cinfo c_emp%
ROWTYPE ,该类型为游标c_emp中的一行数据类型
c_row c_check
%
rowtype;
begin
for
c_row
in
c_check loop
-- dbms_output.put_line(c_row.dep_oid||
'
-
'
||
c_row.oms_user_oid);
v_OID:
=
sys_guid();
INSERT INTO T_OMS_DEVICE_CHECK(OID,DEPT_OID,User_Oid,INSERT_BY)
VALUES(v_OID,c_row.dep_oid,c_row.oms_user_oid,Insert_by);
INSERT INTO t_oms_device_check_detail(check_oid,device_oid,insert_by)
SELECT v_OID,OID,Insert_by
FROM v_oms_check WHERE Dep_Oid
=c_row.dep_oid AND APPLICANT=
c_row.oms_user_oid ;
end loop;
COMMIT;
end;
2.
create or replace procedure proc_approve(P_OID IN Varchar2, P_Insert_By IN Varchar2,P_operation_type VARCHAR2)
is
v_stg Varchar2(
50
);
BEGIN
IF P_operation_type
=
'
11
'
THEN
BEGIN
SELECT t.WAREHOUSE_OID INTO v_stg FROM T_OMS_DEVICE_REGIST_LOG t WHERE t.DEVICE_OID
=P_OID AND t.operation_type=
'
13
'
AND ROWNUM=
1
ORDER BY t.INSERT_time DESC;
UPDATE T_OMS_DEVICE_REGIST t SET t.scrapping_status
=
'
2
'
,t.warehouse_oid=v_stg,t.status=
'
9
'
,t.SCRAPED_TIME=SYSDATE WHERE t.OID=
P_OID;
INSERT INTO T_OMS_DEVICE_REGIST_LOG VALUES( sys_guid(),P_OID,P_operation_type,
'
报废审批通过
'
,v_stg,Sysdate,
''
,P_Insert_By,Sysdate);
COMMIT;
END;
ELSIF P_operation_type
=
'
12
'
THEN
BEGIN
UPDATE T_OMS_DEVICE_REGIST t SET t.scrapping_status
=
'
3
'
WHERE t.OID=
P_OID;
INSERT INTO T_OMS_DEVICE_REGIST_LOG VALUES( sys_guid(),P_OID,P_operation_type,
'
报废审批不通过
'
,
''
,Sysdate,
''
,P_Insert_By,Sysdate);
COMMIT;
END;
END IF;
end proc_approve;
3.
create or replace procedure proc_check_confirm(check_oid VARCHAR2)
is
begin
UPDATE t_oms_device_check SET confirm_satus
=
'
1
'
,CONFIRM_TIME=SYSDATE WHERE OID=
check_oid;
end proc_check_confirm;
4.
create or replace procedure PROC_DESTROY_DELETE(p_headOid VARCHAR2,p_result OUT VARCHAR2) IS
BEGIN
SELECT status INTO p_result FROM t_oms_device_destroy WHERE OID
=p_headOid AND rownum=
1
;
IF p_result
=
'
2
'
THEN
BEGIN
RETURN;
END;
END IF;
p_result:
=
'
1
'
;
DELETE FROM t_oms_device_destroy WHERE OID
=
p_headOid;
UPDATE t_oms_device_regist SET STATUS
=
'
9
'
, DESTROY_OID=
''
WHERE destroy_oid=
p_headOid;
DELETE FROM t_oms_device_regist_attachment WHERE device_oid
=
p_headOid;
COMMIT;
end PROC_DESTROY_DELETE;
5.
create or replace function get_Destroy_no
return
varchar2
is
Result varchar2(
50
);
begin
SELECT max(destroy_no) INTO RESULT FROM t_oms_device_destroy WHERE substr(destroy_no,
0
,
8
)= to_char( SYSDATE ,
'
yyyymmdd
'
);
IF (RESULT
=
''
OR RESULT IS NULL) THEN
RESULT:
=(to_char( SYSDATE ,
'
yyyymmdd
'
)||
'
001
'
);
else
RESULT:
=to_number(RESULT)+
1
;
END IF;
RETURN( Result);
end get_Destroy_no;

