61 lines
5.5 KiB
SQL
61 lines
5.5 KiB
SQL
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;
|
||
|