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