存储过程例子DIY

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值