apzl_leasing/src_sql/procedure/proc_copy_flow.sql

61 lines
5.5 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

create procedure proc_copy_flow(IN oldflowno varchar(200), IN newflowno varchar(200), IN newflowname varchar(200))
BEGIN
DECLARE result_code INTEGER DEFAULT 0; -- 定义返回结果并赋初值0
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET result_code=1; -- 在执行过程中出任何异常设置result_code为1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET result_code = 2; -- 如果表中没有下一条数据则置为2
START TRANSACTION; -- 开始事务
insert into awe_menu_info (menuid,menuname,displayname,sortno,url,urlparam,target,style,isinuse,inputuserid,inputtime,updateuserid,updatetime,accesstype)
select cast( a.menuid as SIGNED INTEGER)+1,newflowname,newflowname,cast( a.sortno as SIGNED INTEGER)+1 ,a.url,CONCAT('ComponentName=' , newflowname , substr(replace(a.urlparam,replace(oldflowno,'Flow','Apply'),replace(newflowno,'Flow','Apply')),instr(a.urlparam,'&'))),
a.target,a.style,a.isinuse,a.inputuserid,a.inputtime,a.updateuserid,a.updatetime,a.accesstype
from awe_menu_info a where urlparam like CONCAT('%', replace(oldflowno,'Flow','Apply') ,'%');
insert into awe_role_menu select roleid, cast( menuid as SIGNED INTEGER)+1 from awe_role_menu
where menuid = (select menuid from awe_menu_info where urlparam like CONCAT('%', replace(oldflowno,'Flow','Apply') ,'%'));
insert into flow_catalog (flowno,flowname,flowtype,flowdescribe,initphase,viewfile,isinuse,version,baseflowno,graphjsondata,flowstate)
select newflowno,newflowname,replace(newflowno,'Flow','Apply'),newflowname,a.initphase,a.viewfile,a.isinuse,a.version,
newflowno,a.graphjsondata,a.flowstate from flow_catalog a where flowno=oldflowno;
insert into flow_model (flowno,phaseno,phasetype,phasename,prescript,initscript,choicedescribe,choicescript,actiondescribe,actionscript,
postscript,attribute1,attribute2,attribute3,attribute4,attribute5,attribute6,attribute7,attribute8,attribute9,attribute10,aaenabled,
aapointinitscript,aapointcomp,aapointcompurl,standardtime1,standardtime2,costlob,strips,checklist,decisionscript,riskscanrule,buttonset2,
inputuser,inputtime,updateuser,updatetime,distributerule,id,type,xcoordinate,ycoordinate,width,height,version,swimlane,nodetype,
flowphasecontext,opinionsrequired,isreadonly,flowpageconfig,flowprocessclass,flowpagecheck,backstepnexttype,backscript,deletescript,
phasescript,loadproductcheck,nextsteps,flowtiptype,remindnoticttype,flowoverdate,overnoticetype,overnoticeuser)
select newflowno,a.phaseno,a.phasetype,a.phasename,a.prescript,a.initscript,a.choicedescribe,a.choicescript,a.actiondescribe,
a.actionscript,a.postscript,a.attribute1,a.attribute2,a.attribute3,a.attribute4,a.attribute5,a.attribute6,a.attribute7,a.attribute8,
a.attribute9,a.attribute10,a.aaenabled,a.aapointinitscript,a.aapointcomp,a.aapointcompurl,a.standardtime1,a.standardtime2,a.costlob,
a.strips,a.checklist,a.decisionscript,a.riskscanrule,a.buttonset2,a.inputuser,a.inputtime,a.updateuser,a.updatetime,a.distributerule,
a.id,a.type,a.xcoordinate,a.ycoordinate,a.width,a.height,a.version,a.swimlane,a.nodetype,a.flowphasecontext,a.opinionsrequired,a.isreadonly,
a.flowpageconfig,a.flowprocessclass,a.flowpagecheck,a.backstepnexttype,a.backscript,a.deletescript,a.phasescript,a.loadproductcheck,a.nextsteps,
a.flowtiptype,a.remindnoticttype,a.flowoverdate,a.overnoticetype,a.overnoticeuser from flow_model a where flowno=oldflowno;
insert into code_catalog (codeno,codetypeone,codename) select replace(newflowno,'Flow','ApplyMain'),codetypeone,replace(newflowno,'Flow','申请主树图') from code_catalog where codeno=replace(oldflowno,'Flow','ApplyMain');
insert into code_library(codeno,itemno,itemname,isinuse,itemdescribe,itemattribute,attribute2,attribute5,attribute8)
select codeno,replace(newflowno,'Flow','Apply'),newflowname,isinuse,replace(newflowno,'Flow','ApplyMain'),itemattribute,newflowno,attribute5,attribute8
from code_library a WHERE a.attribute2=oldflowno AND a.codeno='ApplyType';
insert into code_library (codeno,itemno,itemname,sortno,isinuse,itemdescribe,itemattribute,attribute1,attribute2,attribute4,attribute5,remark)
select replace(newflowno,'Flow','ApplyMain'),a.itemno,a.itemname,a.sortno,a.isinuse,a.itemdescribe,a.itemattribute,a.attribute1,a.attribute2,a.attribute4,
a.attribute5,a.remark from code_library a where codeno=replace(oldflowno,'Flow','ApplyMain');
-- 复制审批页面数据字典
insert into code_catalog (codeno,codetypeone,codename) select replace(newflowno,'Flow','ApproveMain'),codetypeone,replace(newflowno,'Flow','审批主树图') from code_catalog where codeno=replace(oldflowno,'Flow','ApproveMain');
insert into code_library(codeno,itemno,itemname,isinuse,itemdescribe,itemattribute,attribute2,attribute5,attribute8)
select codeno,replace(newflowno,'Flow','Approve'),replace(newflowname,'申请','审批'),isinuse,replace(newflowno,'Flow','ApproveMain'),itemattribute,newflowno,attribute5,attribute8
from code_library a WHERE a.attribute2=oldflowno AND a.codeno='ApproveType';
insert into code_library (codeno,itemno,itemname,sortno,isinuse,itemdescribe,itemattribute,attribute1,attribute2,attribute4,attribute5,remark)
select replace(newflowno,'Flow','ApproveMain'),a.itemno,a.itemname,a.sortno,a.isinuse,a.itemdescribe,a.itemattribute,a.attribute1,a.attribute2,a.attribute4,
a.attribute5,a.remark from code_library a where codeno=replace(oldflowno,'Flow','ApproveMain');
IF result_code = 1 THEN -- 可以根据不同的业务逻辑错误返回不同的result_code这里只定义了1和0
ROLLBACK;
ELSE
COMMIT;
END IF;
select result_code;
END;