subFlowAddOrSub
11de-f053-df18d577-aeb6-19a7865cfdb6
11de-f053-df18d577-aeb6-19a7865cfdb6
" + original_help_dept);
// println("help_dept--0>" + help_dept);
if(!isNotNull(help_dept)) {
return "请选择需要增加的会办部门";
}
var help_depts = splitText(help_dept, ";");
for (var i = 0; i < help_depts.length; i ++) {
if(original_help_dept.indexOf(help_depts[i]) > -1) {
return "请不要勾选已经发生会办流程的部门!";
}
}
return createConfirm("您确认要增加?");
},
/**
* author : Andy
* 使用范围:删除会办部门子流程校验逻辑
*
*/
validateSubHelpDeptSubFlow : function() {
var doc = getCurrentDocument();
var original_help_dept = doc.getItemValueAsString("ORIGINAL_HELP_DEPT");
var help_dept = doc.getItemValueAsString("HELP_DEPT");
// println("original_help_dept--0>" + original_help_dept);
// println("help_dept--0>" + help_dept);
if(!isNotNull(help_dept)) {
return "请选择需要删除的会办部门";
}
var help_depts = splitText(help_dept, ";");
for (var i = 0; i < help_depts.length; i ++) {
if(original_help_dept.indexOf(help_depts[i]) < 0) {
return "请选择已经发生会办流程的部门!";
}
}
return createConfirm("您确认要删除?");
},
/**
* author : Andy
* 使用范围:判断当前用户是业务保障岗还是主要负责人,如果都存在默认为主要负责人
* 返回值: 1代表业务保障岗,2代表主要负责人,0代表员工
*/
isDeptCharge : function() {
var flag = "0";
var webUser = getWebUser();
var rolesStr = webUser.getRolelist();
if(rolesStr.indexOf(business.DEPT_BUSINESS_ASSURANCE_ID) > -1) {
flag = "1";
}
if(rolesStr.indexOf(business.DEPT_CHARGE_ID) > -1) {
flag = "2";
}
return flag;
},
/**
* author : Andy
* 使用范围:增加会办部门子流程
* type:类型,1代表区县局,2代表市局,3代表省局,4代表网信办
*/
addHelpDeptSubFlow : function(type) {
var formId = subFlowAddOrSub._BUS_FORM_ID;
var formName = subFlowAddOrSub._BUS_FORM_NAME;
var mainFlowName = "业务需求流程";
var mainFlowId = subFlowAddOrSub._MAIN_FLOW_ID;
//提出人部门主要负责人办理
var mainNodeId = "1517531766021";
var mainNodeName = "提出人部门主要负责人办理";
var helpNodeId = "";
var helpNodeName = "";
var subFlowName = "";
var subFlowId = "";
var subNodeId = "";
var subFlowNodeName = "";
var subFlowNodeNameState = "";
var flowInterventionSate = "";
var help_dept_field = "";
var mainSubFlowBranchNodeId = "";
var nextNodeIds = "";
var subFlowFirstNodeId = "";
if("1".equals(type)) {
if("1".equals(subFlowAddOrSub.isDeptCharge())) {
mainNodeId = "1517532117229";
mainNodeName = "区县局主办部门业务保障岗办理";
}else {
mainNodeId = "1517532243044";
mainNodeName = "区县局主办部门主要负责人办理";
}
//区县局会办
helpNodeId = "1517534435723";
helpNodeName = "区县局会办";
subFlowName = "区县局会办子流程";
subFlowId = "11e8-0889-d07c513e-a824-131ec5b62593";
//区县局会办部门业务保障岗办理
subNodeId = "1517533666633";
subFlowNodeName = "区县局会办部门业务保障岗办理";
subFlowNodeNameState = "区县局会办部门业务保障岗办理中";
flowInterventionSate = "区县局会办中:区县局会办部门业务保障岗办理中";
help_dept_field = "ITEM_COUNTY_HELP_DEPT_ID";
mainSubFlowBranchNodeId = '1521095646256';
nextNodeIds = helpNodeId;
subFlowFirstNodeId = '1517533626429';
}else if("2".equals(type)) {
if("1".equals(subFlowAddOrSub.isDeptCharge())) {
mainNodeId = "1517532535426";
mainNodeName = "市局主办部门业务保障岗办理";
}else {
mainNodeId = "1517532537130";
mainNodeName = "市局主办部门主要负责人办理";
}
//市局会办
helpNodeId = "1517534693572";
helpNodeName = "市局会办";
subFlowName = "市局会办子流程";
subFlowId = "11e8-088a-7beb09e9-a824-131ec5b62593";
//市局会办部门业务保障岗办理
subNodeId = "1517533666633";
subFlowNodeName = "市局会办部门业务保障岗办理";
subFlowNodeNameState = "市局会办部门业务保障岗办理中";
flowInterventionSate = "市局会办中:市局会办部门业务保障岗办理中";
help_dept_field = "ITEM_CITY_HELP_DEPT_ID";
mainSubFlowBranchNodeId = "1521097287706";
nextNodeIds = helpNodeId;
subFlowFirstNodeId = '1517533626429';
}else if("3".equals(type)) {
if("1".equals(subFlowAddOrSub.isDeptCharge())) {
mainNodeId = "1517532802409";
mainNodeName = "省局主办部门业务保障岗办理";
}else {
mainNodeId = "1517532807152";
mainNodeName = "省局主办部门主要负责人办理";
}
//省局会办
helpNodeId = "1517534848851";
helpNodeName = "省局会办";
subFlowName = "省局会办子流程";
subFlowId = "11e8-088a-a06df66d-a824-131ec5b62593";
//省局会办部门业务保障岗办理
subNodeId = "1517533666633";
subFlowNodeName = "省局会办部门业务保障岗办理";
subFlowNodeNameState = "省局会办部门业务保障岗办理中";
flowInterventionSate = "省局会办中:省局会办部门业务保障岗办理中";
help_dept_field = "ITEM_PROVINCE_HELP_DEPT_ID";
mainSubFlowBranchNodeId = '1521099798578';
nextNodeIds = helpNodeId;
subFlowFirstNodeId = '1517533626429';
}else if("4".equals(type)) {
if("1".equals(subFlowAddOrSub.isDeptCharge())) {
mainNodeId = "1517533106086";
mainNodeName = "网信办主办部门业务保障岗办理";
}else {
mainNodeId = "1517533107719";
mainNodeName = "网信办主办部门主要负责人办理";
}
//网信办会办
helpNodeId = "1517534972946";
helpNodeName = "网信办会办";
subFlowName = "网信办会办子流程";
subFlowId = "11e8-088a-c3430ae0-a824-131ec5b62593";
//网信办会办部门业务保障岗办理
subNodeId = "1517533666633";
subFlowNodeName = "网信办会办部门业务保障岗办理";
subFlowNodeNameState = "网信办会办部门业务保障岗办理中";
flowInterventionSate = "网信办会办中:网信办会办部门业务保障岗办理中";
help_dept_field = "ITEM_CAC_HELP_DEPT_ID";
mainSubFlowBranchNodeId = "1521100173502";
nextNodeIds = helpNodeId;
subFlowFirstNodeId = '1517533626429';
}
var webUser = getWebUser();
var webUserId = webUser.getId();
var webUserName = webUser.getName();
var applicationId = getApplication();
var domainId = getDomainid();
var doc = getCurrentDocument();
var business_requirements_id = doc.getItemValueAsString("BUSINESS_REQUIREMENTS_ID");
var original_help_dept = doc.getItemValueAsString("ORIGINAL_HELP_DEPT");
var help_dept = doc.getItemValueAsString("HELP_DEPT");
var fDoc = findDocument(business_requirements_id);
var docId = fDoc.getId();
var flowstatert = fDoc.getState();
var sponsor = fDoc.getItemValueAsString("SPONSOR");
var sponsor_id = fDoc.getItemValueAsString("SPONSOR_ID");
var summary = subFlowAddOrSub.getBusSummary(fDoc);
var flowstatertParent = "";
if(flowstatert != null) {
flowstatertParent = flowstatert.getId();
}
// println("original_help_dept-->" + original_help_dept);
// println("help_dept-->" + help_dept);
var docProcess = getDocumentProcess();
var formProcess = getFormProcess();
//需要更新的办理时限表
var newForm = formProcess.doViewByFormName("BUSINESS_PENDDING_DAY",getApplication());
var updateSQL = "";
if(isNotNull(original_help_dept)) {
updateSQL = "UPDATE TLK_BUSINESS_REQUIREMENTS SET "+ help_dept_field +" = '"+ original_help_dept + ";" + help_dept +"' WHERE ID = '"+ business_requirements_id +"'" ;
}else {
updateSQL = "UPDATE TLK_BUSINESS_REQUIREMENTS SET "+ help_dept_field +" = '" + help_dept +"' WHERE ID = '"+ business_requirements_id +"'" ;
}
// println("updateSQL-->" + updateSQL);
sysfunction.updateByDSName(updateSQL);
var add_help_depts = splitText(help_dept, ";");
for (var i = 0; i < add_help_depts.length; i ++) {
var today = format(getToday(),"yyyy-MM-dd HH:mm:ss");
var deptId = add_help_depts[i];
var approveUserList = getUsersByDptIdAndRoleId(deptId,business.DEPT_BUSINESS_ASSURANCE_ID);
var approveUser;
if(approveUserList == null || approveUserList.size() <= 0) {
approveUser = getUsersByDptIdAndRoleId(deptId,business.DEPT_CHARGE_ID).get(0)
}else {
approveUser = approveUserList.get(0);
}
var approveUserId = approveUser.getId();
var approveUserName = approveUser.getName();
var depName = sysfunction.getDepNameById(deptId);
//插入流程实例表 T_FLOWSTATERT
var flowstatertId = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
var flowstatertId1 = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
var flowstatertId2 = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
var flowstatertInsertSQL = "INSERT INTO T_FLOWSTATERT(ID, DOCID, FLOWID, STATE, PARENT, FLOWNAME, FLOWXML, LASTMODIFIERID, LASTMODIFIED, APPLICATIONID, SUBFLOWNODEID, COMPLETE, CALLBACK, TOKEN, STATELABEL, INITIATOR, AUDITUSER, AUDITORNAMES, AUDITORLIST, LASTFLOWOPERATION, AUDITDATE, SUB_POSITION, ISARCHIVED, ISTERMINATED, PREV_AUDIT_NODE, PREV_AUDIT_USER,WORKFLOW_TYPE,INITIADEPID) VALUES('"+ flowstatertId +"', '"+ docId +"', '"+ subFlowId +"', '256', '"+ flowstatertParent +"', '"+ subFlowName +"', null, '"+ approveUserId +"',to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'), '"+ applicationId +"', '"+ helpNodeId +"', 0, 1, '"+ flowstatertId1 + ":" + flowstatertId2 +"', '"+ subFlowNodeNameState +"', '"+ webUserName +"', '"+ webUserId +"', null, null, '80', to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'), 0, 0, 0, '开始','"+ webUserName +"',0,'"+ deptId +"')";
// println("flowstatertInsertSQL-->" + flowstatertInsertSQL);
insertByDSName(sysfunction.DATASOURCENAME,flowstatertInsertSQL);
//int i = 1/0;
//插入流程干预信息表 T_FLOW_INTERVENTION
var flowInterventionId = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
var flowInterventionInsertSQL = "INSERT INTO T_FLOW_INTERVENTION(ID, SUMMARY, FLOWNAME, STATELABEL, INITIATOR, INITIATORID, LASTAUDITOR, FIRSTPROCESSTIME, LASTPROCESSTIME, FLOWID, FORMID, DOCID, APPLICATIONID, DOMAINID, VERSION, STATUS, AUDITORNAMES, AUDITORLIST, LASTFLOWOPERATION, INITIATOR_DEPT_ID, INITIATOR_DEPT) VALUES('"+ flowInterventionId +"','"+ summary +"','"+ mainFlowName +"','"+ flowInterventionSate +"','"+ sponsor +"','"+ sponsor_id +"','"+ webUserName +"',to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),'"+ mainFlowId +"','"+ formId +"','"+ docId +"','"+ applicationId +"','"+ domainId +"',0,'pending','"+ approveUserId +"','"+ approveUserName +"','80','"+ deptId +"','"+ depName +"')";
// println("flowInterventionInsertSQL-->" + flowInterventionInsertSQL);
insertByDSName(sysfunction.DATASOURCENAME,flowInterventionInsertSQL);
//插入流程节点信息表 T_NODERT
var nodertID = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
var nodertInsertSQL = "INSERT INTO T_NODERT(ID, NAME, NODEID, FLOWID, DOCID, FLOWSTATERT_ID, NOTIFIABLE, DOMAINID, APPLICATIONID, STATELABEL, FLOWOPTION, SPLITTOKEN, PASSCONDITION, PARENTNODERTID, DEADLINE, ORDERLY, APPROVAL_POSITION, STATE, LASTPROCESSTIME, REMINDER_TIMES) VALUES('"+ nodertID +"', '"+ subFlowNodeName +"', '"+ subNodeId +"', '"+ subFlowId +"', '"+ docId +"', '"+ flowstatertId +"', 0, '"+ domainId +"', '"+ applicationId +"', '"+ subFlowNodeNameState +"', '1', '"+ mainNodeId +"', 0, '1517533626429', null, 0, 0, 0, null, 0)";
// println("nodertInsertSQL-->" + nodertInsertSQL);
insertByDSName(sysfunction.DATASOURCENAME,nodertInsertSQL);
//流程操作人表 T_ACTORRT
var actorrtID = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
var actorrtInsertSQL = "INSERT INTO T_ACTORRT(ID, ACTORID, NAME, ISPROCESSED, TYPE, NODERT_ID, FLOWSTATERT_ID, DOC_ID, PENDING, DEADLINE, ISREAD, DOMAINID, APPROVAL_POSITION, APPLICATIONID, REMINDER_TIMES) VALUES('"+ actorrtID +"', '"+ approveUserId +"','"+ approveUserName +"',0, 3, '"+ nodertID +"', '"+ flowstatertId +"','"+ docId +"', 1,null,0, '"+ domainId +"',0,'"+ applicationId +"',0)";
// println("actorrtInsertSQL-->" + actorrtInsertSQL);
insertByDSName(sysfunction.DATASOURCENAME,actorrtInsertSQL);
//T_RELATIONHIS (流程历史信息表)
var relationhisID = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
var relationhisSQL = "INSERT INTO T_RELATIONHIS(ID, ACTIONTIME, PROCESSTIME, STARTNODENAME, FLOWID, FLOWNAME, DOCID, ENDNODEID, ENDNODENAME, STARTNODEID, ISPASSED, ATTITUDE, AUDITOR, APPLICATIONID, FLOWOPERATION, REMINDERCOUNT, FLOWSTATERT_ID) VALUES('"+ relationhisID +"', to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),'"+ mainNodeName +"', '"+ mainFlowId +"', '"+ mainFlowName +"', '"+ docId +"','"+ helpNodeId +"', '"+ helpNodeName +"','"+ mainNodeId +"',0, '','"+ webUserId +"','"+ applicationId +"','84',0,'"+ flowstatertId +"')";
// println("relationhisSQL-->" + relationhisSQL);
insertByDSName(sysfunction.DATASOURCENAME,relationhisSQL);
//T_ACTORHIS (流程操作人历史表)
var actorhisID = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
var actorhisSQL = "INSERT INTO T_ACTORHIS(ID, ACTORID, NAME, AGENTID, AGENTNAME, TYPE, PROCESSTIME, ATTITUDE, NODEHIS_ID, FLOWSTATERT_ID, DOC_ID, SIGNATURE) VALUES('"+ actorhisID +"', '"+ webUserId +"','"+ webUserName +"',null, null, 3, to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),null, '"+ relationhisID +"','"+ flowstatertId +"','"+ docId +"',null)";
// println("actorhisSQL-->" + actorhisSQL);
insertByDSName(sysfunction.DATASOURCENAME,actorhisSQL);
//T_PENDING (待办信息表)
var pendingID = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
var pendingSQL = "INSERT INTO T_PENDING(ID, DOCID, LASTMODIFIED, FORMNAME, AUDITDATE, AUTHOR, CREATED, FORMID, FLOWID, APPLICATIONID, STATELABEL, AUDITUSER, AUDITORNAMES, LASTFLOWOPERATION, PARENT, STATE, LASTMODIFIER, DOMAINID, SUMMARY) VALUES('"+ pendingID +"', '"+ docId +"',to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),'"+ formName +"', to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'), '"+ webUserId +"', to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),'"+ formId +"', '"+ mainFlowId +"','"+ applicationId +"','"+ flowInterventionSate +"','"+ webUserId +"',':'||'"+ approveUserName +"','80',null,'"+ flowstatertId +"','"+ webUserId +"','"+ domainId +"','"+ summary +"')";
// println("pendingSQL-->" + pendingSQL);
insertByDSName(sysfunction.DATASOURCENAME,pendingSQL);
//更新业务表数据
var updateStatelabelSql = "UPDATE TLK_BUSINESS_REQUIREMENTS SET AUDITORNAMES = AUDITORNAMES || ':' || '"+ approveUserName +"',STATELABEL = STATELABEL || ',' || '"+ subFlowNodeNameState +"' WHERE ID='"+ docId +"'";
// println("updateStatelabelSql-->" + updateStatelabelSql);
sysfunction.updateByDSName(updateStatelabelSql);
//更新主流程图信息
var stateMachine = new Packages.cn.myapps.core.workflow.engine.StateMachine();
if(isNotNull(nextNodeIds)) {
nextNodeIds = splitText(nextNodeIds, ";");
}
stateMachine.updateImage(flowstatert,mainSubFlowBranchNodeId,nextNodeIds);
println("flowstatert--->" + flowstatert);
println("mainSubFlowBranchNodeId--->" + mainSubFlowBranchNodeId);
println("nextNodeIds--->" + nextNodeIds);
//更新子流程图信息
var flowStateRTProcess = new Packages.cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcessBean(sysfunction.APPLICATIONID);
var subFlowstatert = flowStateRTProcess.findFlowStateRTByDocidAndFlowid(business_requirements_id,subFlowId);
if(isNotNull(subNodeId)) {
subNodeId = splitText(subNodeId, ";");
}
var flowDiagram = stateMachine.changeFlowState(subFlowstatert,subFlowFirstNodeId,subNodeId);
println("subFlowstatert--->" + subFlowstatert);
println("flowDiagram--->" + flowDiagram);
stateMachine.toFlowImage(subFlowstatert,flowDiagram);
//更新办理时限逻辑
var countyHelpDeptSelSQL = "SELECT DOMAINID FROM TLK_BUSINESS_PENDDING_DAY WHERE PARENT='"+ docId +"' AND ITEM_DEPT_ID = '"+ add_help_depts[i] +"' AND ITEM_STATE = '0' ";
var countyHelpDeptCount = countBySQL(countyHelpDeptSelSQL);
if(countyHelpDeptCount <= 0) {
var helpDeptNewDoc = docProcess.doNew(newForm,getWebUser(),createParamsTable());
var businessPenddingDayId = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr";
helpDeptNewDoc.setId(businessPenddingDayId);
helpDeptNewDoc.setParent(docId);
helpDeptNewDoc.setAuthor(webUserId);
helpDeptNewDoc.setIstmp(false);
helpDeptNewDoc.setApplicationid(applicationId);
helpDeptNewDoc.setDomainid(domainId);
helpDeptNewDoc.addStringItem("DEPT_ID",add_help_depts[i]);
helpDeptNewDoc.addStringItem("STATE","0");
helpDeptNewDoc.addDateItem("START_TIME",getToday());
docProcess.doCreate(helpDeptNewDoc);
}
}
},
/**
* author : Andy
* 需要引用的函数库 : subFlowAddOrSub/business/sysfunction
* 使用范围:删除会办部门子流程
* type:类型,1代表区县局,2代表市局,3代表省局,4代表网信办
*/
subHelpDeptSubFlow : function(type) {
var formId = subFlowAddOrSub._BUS_FORM_ID;
var formName = subFlowAddOrSub._BUS_FORM_NAME;
var mainFlowName = "业务需求流程";
var mainFlowId = subFlowAddOrSub._MAIN_FLOW_ID;
//提出人部门主要负责人办理
var mainNodeId = "1517531766021";
var mainNodeName = "提出人部门主要负责人办理";
var helpNodeId = "";
var helpNodeName = "";
var subFlowName = "";
var subFlowId = "";
var subNodeId = "";
var subFlowNodeName = "";
var subFlowNodeNameState = "";
var flowInterventionSate = "";
var help_dept_field = "";
if("1".equals(type)) {
if("1".equals(subFlowAddOrSub.isDeptCharge())) {
mainNodeId = "1517532117229";
mainNodeName = "区县局主办部门业务保障岗办理";
}else {
mainNodeId = "1517532243044";
mainNodeName = "区县局主办部门主要负责人办理";
}
//区县局会办
helpNodeId = "1517534435723";
helpNodeName = "区县局会办";
subFlowName = "区县局会办子流程";
subFlowId = "11e8-0889-d07c513e-a824-131ec5b62593";
//区县局会办部门业务保障岗办理
subNodeId = "1517533666633";
subFlowNodeName = "区县局会办部门业务保障岗办理";
subFlowNodeNameState = "区县局会办部门业务保障岗办理中";
flowInterventionSate = "区县局会办中:区县局会办部门业务保障岗办理中";
help_dept_field = "ITEM_COUNTY_HELP_DEPT_ID";
}else if("2".equals(type)) {
if("1".equals(subFlowAddOrSub.isDeptCharge())) {
mainNodeId = "1517532535426";
mainNodeName = "市局主办部门业务保障岗办理";
}else {
mainNodeId = "1517532537130";
mainNodeName = "市局主办部门主要负责人办理";
}
//市局会办
helpNodeId = "1517534693572";
helpNodeName = "市局会办";
subFlowName = "市局会办子流程";
subFlowId = "11e8-088a-7beb09e9-a824-131ec5b62593";
//市局会办部门业务保障岗办理
subNodeId = "1517533666633";
subFlowNodeName = "市局会办部门业务保障岗办理";
subFlowNodeNameState = "市局会办部门业务保障岗办理中";
flowInterventionSate = "市局会办中:市局会办部门业务保障岗办理中";
help_dept_field = "ITEM_CITY_HELP_DEPT_ID";
}else if("3".equals(type)) {
if("1".equals(subFlowAddOrSub.isDeptCharge())) {
mainNodeId = "1517532802409";
mainNodeName = "省局主办部门业务保障岗办理";
}else {
mainNodeId = "1517532807152";
mainNodeName = "省局主办部门主要负责人办理";
}
//mainNodeId = "1521099798578";
//省局会办
helpNodeId = "1517534848851";
helpNodeName = "省局会办";
subFlowName = "省局会办子流程";
subFlowId = "11e8-088a-a06df66d-a824-131ec5b62593";
//省局会办部门业务保障岗办理
subNodeId = "1517533666633";
subFlowNodeName = "省局会办部门业务保障岗办理";
subFlowNodeNameState = "省局会办部门业务保障岗办理中";
flowInterventionSate = "省局会办中:省局会办部门业务保障岗办理中";
help_dept_field = "ITEM_PROVINCE_HELP_DEPT_ID";
}else if("4".equals(type)) {
if("1".equals(subFlowAddOrSub.isDeptCharge())) {
mainNodeId = "1517533106086";
mainNodeName = "网信办主办部门业务保障岗办理";
}else {
mainNodeId = "1517533107719";
mainNodeName = "网信办主办部门主要负责人办理";
}
//网信办会办
helpNodeId = "1517534972946";
helpNodeName = "网信办会办";
subFlowName = "网信办会办子流程";
subFlowId = "11e8-088a-c3430ae0-a824-131ec5b62593";
//网信办会办部门业务保障岗办理
subNodeId = "1517533666633";
subFlowNodeName = "网信办会办部门业务保障岗办理";
subFlowNodeNameState = "网信办会办部门业务保障岗办理中";
flowInterventionSate = "网信办会办中:网信办会办部门业务保障岗办理中";
help_dept_field = "ITEM_CAC_HELP_DEPT_ID";
}
var webUser = getWebUser();
var webUserId = webUser.getId();
var webUserName = webUser.getName();
var formId = subFlowAddOrSub._BUS_FORM_ID;
var applicationId = getApplication();
var domainId = getDomainid();
var doc = getCurrentDocument();
var business_requirements_id = doc.getItemValueAsString("BUSINESS_REQUIREMENTS_ID");
var original_help_dept = doc.getItemValueAsString("ORIGINAL_HELP_DEPT");
var help_dept = doc.getItemValueAsString("HELP_DEPT");
var fDoc = findDocument(business_requirements_id);
var docId = fDoc.getId();
var flowstatert = fDoc.getState();
var auditorname = fDoc.getAuditorNames();
if(auditorname == null) {
auditorname = "";
}
auditorname = new Packages.java.lang.String(auditorname);
var sponsor = fDoc.getItemValueAsString("SPONSOR");
var sponsor_id = fDoc.getItemValueAsString("SPONSOR_ID");
var flowstatertParent = "";
if(flowstatert != null) {
flowstatertParent = flowstatert.getId();
}
// println("original_help_dept-->" + original_help_dept);
// println("help_dept-->" + help_dept);
var new_dept = "";
var original_help_depts = splitText(original_help_dept, ";");
for (var i = 0; i < original_help_depts.length; i ++) {
if(help_dept.indexOf(original_help_depts[i]) < 0) {
new_dept += original_help_depts[i] + ";";
}
}
// println("new_dept-->" + new_dept);
new_dept = new Packages.java.lang.String(new_dept);
if(isNotNull(new_dept)) {
new_dept = new_dept.substring(0, new_dept.length() - 1);
}
var updateSQL = "UPDATE TLK_BUSINESS_REQUIREMENTS SET "+ help_dept_field +" = '"+ new_dept +"' WHERE ID = '"+ business_requirements_id +"'" ;
// println("updateSQL-->" + updateSQL);
sysfunction.updateByDSName(updateSQL);
var add_help_depts = splitText(help_dept, ";");
for (var i = 0; i < add_help_depts.length; i ++) {
var today = format(getToday(),"yyyy-MM-dd HH:mm:ss");
var deptId = add_help_depts[i];
// println("deptId-->" + deptId);
var approveUserList = getUsersByDptIdAndRoleId(deptId,business.DEPT_BUSINESS_ASSURANCE_ID);
var approveUser;
if(approveUserList == null || approveUserList.size() <= 0) {
approveUser = getUsersByDptIdAndRoleId(deptId,business.DEPT_CHARGE_ID).get(0)
}else {
approveUser = approveUserList.get(0);
}
var approveUserId = approveUser.getId();
var approveUserName = approveUser.getName();
//auditorname = auditorname.replace(approveUserName,"");
// var users = getUsersByDeptId(deptId);
var users = getUsersByDptIdAndRoleId(deptId,business.STAFF_ID);
// println("users-->" + users);
if(users != null && users.size() > 0) {
for (var iter = users.iterator(); iter.hasNext(); ) {
var userVO = iter.next();
var name = userVO.getName();
if(auditorname.indexOf(name) > 0) {
auditorname = auditorname.replace(name,"");
}
}
}
// println("auditorname-->" + auditorname);
var updateDeptSQL = "UPDATE TLK_BUSINESS_REQUIREMENTS SET AUDITORNAMES = '"+ auditorname +"' WHERE ID = '"+ business_requirements_id +"'" ;
// println("updateDeptSQL-->" + updateDeptSQL);
sysfunction.updateByDSName(updateDeptSQL);
//更新流程实例表 T_FLOWSTATERT
var flowstatertUpdateSQL = "UPDATE T_FLOWSTATERT SET STATELABEL='终止' WHERE DOCID='"+ docId +"' AND INITIADEPID='"+ deptId +"'";
// println("flowstatertUpdateSQL-->" + flowstatertUpdateSQL);
sysfunction.updateByDSName(flowstatertUpdateSQL);
//更新流程干预信息表 T_FLOW_INTERVENTION
/* var flowInterventionUpdateSQL = "UPDATE T_FLOW_INTERVENTION SET STATELABEL='终止',STATUS='completed' WHERE DOCID='"+ docId +"' AND INITIADEPID='"+ deptId +"'";
println("flowInterventionUpdateSQL-->" + flowInterventionUpdateSQL);
sysfunction.updateByDSName(flowInterventionUpdateSQL); */
var flowstatertSelectSQL = "SELECT ID,'"+ domainId +"' AS DOMAINID FROM T_FLOWSTATERT WHERE DOCID='"+ docId +"' AND INITIADEPID='"+ deptId +"'";
// println("flowstatertSelectSQL-->" + flowstatertSelectSQL);
var datas = queryBySQL(flowstatertSelectSQL);
if (datas != null && datas.size()>0) {
for (var iter = datas.iterator(); iter.hasNext(); ) {
var data = iter.next();
var flowstatertId = data.getId();
//移除 T_NODERT 的记录
var nodertDelSQL = "DELETE FROM T_NODERT WHERE FLOWSTATERT_ID='"+ flowstatertId +"'";
// println("nodertDelSQL-->" + nodertDelSQL);
sysfunction.deleteByDSName(nodertDelSQL);
//移除 T_ACTORRT 的记录
var actorrtDelSQL = "DELETE FROM T_ACTORRT WHERE FLOWSTATERT_ID='"+ flowstatertId +"'";
// println("actorrtDelSQL-->" + actorrtDelSQL);
sysfunction.deleteByDSName(actorrtDelSQL);
//T_RELATIONHIS (流程历史信息表)
var relationhisID = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr_zz";
var relationhisSQL = "INSERT INTO T_RELATIONHIS(ID, ACTIONTIME, PROCESSTIME, STARTNODENAME, FLOWID, FLOWNAME, DOCID, ENDNODEID, ENDNODENAME, STARTNODEID, ISPASSED, ATTITUDE, AUDITOR, APPLICATIONID, FLOWOPERATION, REMINDERCOUNT, FLOWSTATERT_ID) VALUES('"+ relationhisID +"', to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),'"+ subFlowNodeName +"', '"+ subFlowId +"', '"+ subFlowName +"', '"+ docId +"','terminate_id', '终止','"+ subNodeId +"',0, '主办部门撤销会办,任务自动办结','"+ webUserId +"','"+ applicationId +"','8',0,'"+ flowstatertId +"')";
// println("relationhisSQL-->" + relationhisSQL);
insertByDSName(sysfunction.DATASOURCENAME,relationhisSQL);
//插入T_ACTORHIS (流程操作人历史表)
var actorhisID = new Packages.cn.myapps.util.sequence.Sequence().getSequence() + "_sdcr_zz";
var actorhisSQL = "INSERT INTO T_ACTORHIS(ID, ACTORID, NAME, AGENTID, AGENTNAME, TYPE, PROCESSTIME, ATTITUDE, NODEHIS_ID, FLOWSTATERT_ID, DOC_ID, SIGNATURE) VALUES('"+ actorhisID +"', '"+ webUserId +"','"+ webUserName +"',null, null, 3, to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff'),'主办部门撤销会办,任务自动办结', '"+ relationhisID +"','"+ flowstatertId +"','"+ docId +"',null)";
// println("actorhisSQL-->" + actorhisSQL);
insertByDSName(sysfunction.DATASOURCENAME,actorhisSQL);
}
//更新办理时限
var updateSQL = "UPDATE TLK_BUSINESS_PENDDING_DAY SET ITEM_STATE = '1',ITEM_END_TIME=to_timestamp('"+ today +"','yyyy-mm--dd hh24:mi:ss.ff') WHERE PARENT='"+ docId +"' AND ITEM_DEPT_ID = '"+ deptId +"' AND ITEM_STATE = '0'";
sysfunction.updateByDSName(updateSQL);
}
}
},
/**
* author : four
* 需要引用的函数库 : subFlowAddOrSub/business/sysfunction
* 会办部门的[添加]、[删除]的权限控制
* businessStateLabel:业务保障岗流程状态; leaderStateLabel:部门主要负责人; formid:打开的会办部门修改页面formid;fieldId:被刷新的字段ID;showName:显示名称;help_dept_id:会办部门;host_dept_id:主办部门;isShowCreateDeleteBtn:当前用户是否与指定层级一致
*/
showInAddAndDelete : function(businessStateLabel,leaderStateLabel,formid,fieldId,showName,help_dept_id,host_dept_id,isShowCreateDeleteBtn) {
var doc = getCurrentDocument();
var stateLabel = getStateLabel();
// println("=====区县增加会办部门=========="+stateLabel);
if(isNotNull(stateLabel) && (stateLabel.indexOf(businessStateLabel) >= 0 || stateLabel.indexOf(leaderStateLabel) >= 0)) {
var flowid = doc.getFlowid();
var docId = doc.getId();
var applicationid = sysfunction.APPLICATIONID;
var rtprocess= new Packages.cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcessBean(applicationid);
// println("=====flowid=========="+flowid);
var statert = rtprocess.findFlowStateRTByDocidAndFlowid(docId,flowid); //获取流程实例
var curname = statert.getAuditorNames(); //获取当前节点处理人
var cuser = getWebUser();
var cuserName = cuser.getName();
var deptId = cuser.getDefaultDepartment();
// println("=====isShowCreateDeleteBtn=========="+isShowCreateDeleteBtn);
// println("=====curname=========="+(curname.indexOf(cuserName) >= 0));
// println("=====deptId=========="+deptId);
// println("=====host_dept_id=========="+host_dept_id);
// println("=====help_dept_id=========="+help_dept_id);
// println("=====cuserName====host_dept_id======"+(isNotNull(host_dept_id) && host_dept_id.indexOf(deptId) >= 0));
// println("=====cuserName====help_dept_id======"+(isNotNull(help_dept_id) && help_dept_id.indexOf(deptId) >= 0));
if(curname != null && curname.indexOf(cuserName) >= 0 && isShowCreateDeleteBtn && (isNotNull(host_dept_id) && host_dept_id.indexOf(deptId) >= 0)) {
// println("=====进入显示==========");
var defaultdepartment_id = getItemValueAsString("DEFAULTDEPARTMENT_ID");
// if(isNotNull(county_help_dept_id)) {
var request = $WEB.getParamsTable().getHttpRequest();
var oldUrl = request.getContextPath() +"/portal/dynaform/document/newWithPermission.action?_formid="+formid+"&application="+ applicationid +"&help_dept="+ help_dept_id + "&defaultdeptid="+ defaultdepartment_id +"&businessid="+ docId +"&hostdeptid="+ host_dept_id +"&_backURL=" + request.getContextPath() + "/portal/share/dynaform/document/close_this.jsp";
//println("oldUrl-->" + oldUrl);
var url = "OBPM.dialog.show({opener:window.parent,title:'',url:'"+ oldUrl+"',width:500,height:300,close:function(){dy_refresh('"+fieldId+"');window.location.reload();}});";
return ""+showName+"";
// }
}
}
return "";
},
/**
* author : Andy
* 需要引用的函数库 : subFlowAddOrSub
* 存在会办部门子流程,不允许往下一部门提交
* helpDeptId :会办部门,多个部门用;隔开
* stateLabel:子流程的节点状态
*/
checkHelpDeptComplete : function(helpDeptId,stateLabel) {
// println("helpDeptId-->" + helpDeptId);
if(isNotNull(helpDeptId)) {
var helpDeptIds = splitText(helpDeptId, ";");
var newHelpDeptId = "(";
for (var i = 0; i < helpDeptIds.length; i ++) {
newHelpDeptId += "'" + helpDeptIds[i] + "',";
}
newHelpDeptId = new Packages.java.lang.String(newHelpDeptId);
newHelpDeptId = newHelpDeptId.substring(0, newHelpDeptId.length() - 1) + ")";
var flowstaterSql = "SELECT '"+ getDomainid() +"' AS DOMAINID FROM T_FLOWSTATERT WHERE DOCID = '" + getId() + "' AND FLOWNAME LIKE '%会办子流程%' AND STATELABEL <> '" + stateLabel + "' AND STATELABEL <> '终止' AND INITIADEPID IN " + newHelpDeptId + " AND SUBFLOWNODEID IS NOT NULL";
// println("flowstaterSql-->" + flowstaterSql);
var flowstaterCount = countBySQL(flowstaterSql);
if(flowstaterCount > 0) {
return "会办任务进行中,请等待会办任务完成!";
}
}
},
/**
* author : Andy
* 需要引用的函数库 : subFlowAddOrSub
* 存在会办部门子流程未完成,出现提示
* helpDeptId : 会办部门,多个部门用;隔开
*
*/
checkHelpDeptCompleteUseFormView : function(helpDeptId) {
// println("helpDeptId-->" + helpDeptId);
var flag = false;
if(isNotNull(helpDeptId)) {
var helpDeptIds = splitText(helpDeptId, ";");
var newHelpDeptId = "(";
for (var i = 0; i < helpDeptIds.length; i ++) {
newHelpDeptId += "'" + helpDeptIds[i] + "',";
}
newHelpDeptId = new Packages.java.lang.String(newHelpDeptId);
newHelpDeptId = newHelpDeptId.substring(0, newHelpDeptId.length() - 1) + ")";
var flowstaterSql = "SELECT '"+ getDomainid() +"' AS DOMAINID FROM T_FLOWSTATERT WHERE DOCID = '" + getId() + "' AND FLOWNAME LIKE '%会办子流程%' AND STATELABEL NOT LIKE '%主办部门%' AND STATELABEL <> '终止' AND INITIADEPID IN " + newHelpDeptId + " AND SUBFLOWNODEID IS NOT NULL";
// println("flowstaterSql-->" + flowstaterSql);
var flowstaterCount = countBySQL(flowstaterSql);
if(flowstaterCount > 0) {
flag = true;
}
}
return flag;
}
}]]>
78