create or replace procedure FlowMove_ModifyCZW(needSigBillNo in varchar2,
getFlowInstanNo in varchar2,
getflowNodeNo in varchar2,
flowState in varchar2,
nextNode in varchar2)
is
divide int;
dates TIMESTAMP(6);
begin
dbms_output.put_line('ffffffff');
--(1)修改当前用户的处理日期
update tetdmis.gzl_流程流转状态 a1
set a1.处理日期 = to_date(to_char(sysdate, 'yyyy-mm-dd'), 'yyyy-MM-dd')
where a1.流程实例编号 = getFlowInstanNo and a1.节点编号 = getflowNodeNo;
--(2)修改流程实例表的流程状态和当前节点编号
update tetdmis.gzl_流程实例 a2
set a2.流程状态 = flowState, a2.当前节点编号 = nextNode
where a2.流程实例编号 = getFlowInstanNo;
--(3)如果流程没有流转完成,还要修改下一个节点的到达日期
if flowState != '流转完成' then
dbms_output.put_line('okkkkk');
update tetdmis.gzl_流程流转状态 a3
set a3.到达日期 = to_date(to_char(sysdate, 'yyyy-mm-dd'),
'yyyy-MM-dd')
where a3.流程实例编号 = getFlowInstanNo and a3.节点编号 = nextNode;
end if;
--(4)根据单据编号 查找 DJ_单据单件明细 表,找到有多少单件虚拟编号
if needSigBillNo != 'nobill' then
update tetdmis.CZW_出租物单件信息 a
set a.已制单 = '否',
( a.当前状态, a.位置编号) = (select 新状态, 新位置
from tetdmis.DJ_单据单件明细 b
where 单据编号 = needSigBillNo and
a.单件虚拟编号 =
b.单件虚拟编号)
where a.单件虚拟编号 in
(select 单件虚拟编号
from tetdmis.DJ_单据单件明细 c
where a.单件虚拟编号 = c.单件虚拟编号 and
c.单据编号 = needSigBillNo);
--(5)修改REP_每日出租物状况分布表,追溯到生效日期
select pp.生效日期 as
into dates
from tetdmis.dj_单据 pp
where pp.单据编号 = needSigBillNo;
-----------------------------------------------------
divide:=to_date(to_char(sysdate, 'yyyy-mm-dd'),'yyyy-MM-dd')-to_date(to_char(dates, 'yyyy-mm-dd'), 'yyyy-MM-dd');
dbms_output.put_line('当前日期到生效日期的差为:'||divide);
if(divide>0)then
update tetdmis.REP_每日出租物状况分布表 a
set a.已制单 = '否',
( a.当前状态, a.位置编号) = (select b.当前状态, b.位置编号
from tetdmis.czw_出租物单件信息 b
where b.单件虚拟编号 =
a.单件虚拟编号)
where a.日期 between
(to_date(to_char(dates, 'yyyy-mm-dd'), 'yyyy-MM-dd')) and
(to_date(to_char(sysdate, 'yyyy-mm-dd'), 'yyyy-MM-dd')) and
a.单件虚拟编号 in
(select c1.单件虚拟编号
from tetdmis.DJ_单据单件明细 c1
where c1.单据编号 = needSigBillNo);
end if;
end if;
------------------------------------------------
--如果是新产品合格入库单,则需要插入记录到:
-- 单据单件明细表、出租物单件信息表、每日出租物状况分布表(如果是滞后开单据的话)
if (instr(needSigBillNo, 'gj08') > 0) then
tetdmis.newProduct(needSigBillNo);
end if;
-----------
commit;
end flowmove_modifyczw;