流程权限的配置(远程)
This commit is contained in:
parent
c5e4d8a6e0
commit
45c591ea61
@ -1,196 +1,204 @@
|
||||
<%@page import="com.amarsoft.are.jbo.ql.Parser"%>
|
||||
<%@page import="com.amarsoft.biz.workflow.*"%>
|
||||
<%@page import="com.amarsoft.app.flow.*"%>
|
||||
<%@page import="com.tenwa.flow.task.*"%>
|
||||
<%@page import="com.amarsoft.are.lang.StringX"%>
|
||||
<%@include file="/Frame/resources/include/include_begin.jspf"%>
|
||||
<%@include file="/Tenwa/Core/FlowManager/BaseFunction/BaseFlowListFunction.jspf" %>
|
||||
<%@page contentType="text/html; charset=GBK"%>
|
||||
<%
|
||||
String taskNo = CurPage.getParameter("TaskNo");
|
||||
String applyType = CurPage.getParameter("applyType");
|
||||
String phasename = CurPage.getParameter("phasename");
|
||||
if(StringX.isSpace(taskNo)) taskNo = "";
|
||||
if(StringX.isSpace(applyType)) applyType = "";
|
||||
if(StringX.isSpace(phasename)) phasename = "";
|
||||
String userID = CurUser.getUserID();
|
||||
JBOTransaction tx = JBOFactory.createJBOTransaction();
|
||||
TenwaFlowTask ft = new TenwaFlowTask(taskNo, tx);//使用jboTrans
|
||||
String routeInfo=ft.getFlowRebackInfo();
|
||||
String flowNo = ft.FlowNo;
|
||||
String phaseNo=ft.PhaseNo;
|
||||
String objectNo=ft.ObjectNo;
|
||||
String flowState = ft.FlowState;
|
||||
//会签历史纪录阶段号问题
|
||||
tx.commit();
|
||||
|
||||
%>
|
||||
<style>
|
||||
.opinion-style{
|
||||
width:100%;
|
||||
overflow:hidden;
|
||||
display:inline-block;
|
||||
margin-bottom:2px;
|
||||
outline:none;
|
||||
}
|
||||
.opinion-style2{
|
||||
overflow:hidden;
|
||||
display:inline-block;
|
||||
margin-bottom:2px;
|
||||
outline:none;
|
||||
}
|
||||
a.opinion-style:hover{
|
||||
background-color:A8CAE5;
|
||||
outline:none;
|
||||
}
|
||||
.opinion-focus{
|
||||
background-color:A8CAE5;
|
||||
}
|
||||
</style>
|
||||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<td width="50%" align="right"><%=new Button("提交","确认提交","javascript:backMethod();","","btn_icon_Submit","").getHtmlText()%></td>
|
||||
<td width="50%" align="center"><%=new Button("放弃","放弃提交","javascript:doCancel();","","btn_icon_delete","").getHtmlText()%></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="opinionset">
|
||||
<div style="margin-top:10px;margin-left:15px;font-size:12px;">
|
||||
<font color="#000000"><b>请选择退回后提交方式:</b></font>
|
||||
</div>
|
||||
<div style="margin-top:10px;margin-left:10px;font-size:12px;border:1px solid lightgray;padding:10px;">
|
||||
<input id="directsubmit" type="radio" name="backmethod" value="1"/>直接提交退回步骤
|
||||
<input id="stepapprove" type="radio" name="backmethod" value="2" />逐级审批
|
||||
|
||||
</div>
|
||||
<div style="margin-top:10px;margin-left:15px;font-size:12px;">
|
||||
<font color="#000000"><b>请选择退回路径:</b></font>
|
||||
</div>
|
||||
<div id="stepInfo" style="margin-top:10px;margin-left:10px;font-size:12px;border:1px solid lightgray;padding:10px;">
|
||||
|
||||
</div>
|
||||
<div style="height:300px; overflow:auto">
|
||||
<div id="actionset">
|
||||
|
||||
</div>
|
||||
<div id="actionreadset">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<table width="100%" align="center">
|
||||
<tr>
|
||||
<td align="center"><b><span id="phaseinfo" style="color: #FF0000" ></span></b></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var strRouteJson='<%=routeInfo%>';
|
||||
var routeJson= JSON.parse(strRouteJson);
|
||||
var taskNo = "<%=taskNo%>";
|
||||
var applyType = "<%=applyType%>";
|
||||
var phasename = "<%=phasename%>";
|
||||
var userID = "<%=userID%>";
|
||||
var objectNo = "<%=objectNo%>";
|
||||
$(function(){initRouteInfo();});
|
||||
function initRouteInfo(){
|
||||
//初始请选择退回后提交方式
|
||||
var backnexttype=routeJson.backnexttype;
|
||||
if(backnexttype.length==0){
|
||||
$("#stepapprove").attr("checked",true);
|
||||
}else{
|
||||
if(backnexttype=="backnextperson"){
|
||||
$("#directsubmit").attr("checked",true);
|
||||
$("#stepapprove").attr("disabled",true);
|
||||
$("#directsubmit").attr("disabled",true);
|
||||
}else if(backnexttype=="backnextstep"){
|
||||
$("#stepapprove").attr("checked",true);
|
||||
$("#stepapprove").attr("disabled",true);
|
||||
$("#directsubmit").attr("disabled",true);
|
||||
}
|
||||
|
||||
}
|
||||
var stepInfo=$("#stepInfo");
|
||||
if(routeJson.backstept.length>0){
|
||||
for(var i=0;i<routeJson.backstept.length;i++){
|
||||
var phaseNo=routeJson.backstept[i].phaseNo;
|
||||
var phaseName=routeJson.backstept[i].phaseName;
|
||||
|
||||
stepInfo.append("<a class='opinion-style2' href='javascript:void(0)' ><input type='radio' name='phaseopinion' onclick='initFlowUserInfo(\""+phaseNo+"\")' value='" +phaseNo+ "' >" + phaseName+ "("+phaseNo+")</input></a><br>");
|
||||
}
|
||||
if(routeJson.backstept.length==1){
|
||||
$("input[name='phaseopinion']:first").attr("checked",true);
|
||||
initFlowUserInfo(routeJson.backstept[0].phaseNo);
|
||||
}
|
||||
}else{
|
||||
stepInfo.append("没有可退回的步骤");
|
||||
}
|
||||
}
|
||||
//初始化路由下面的用户
|
||||
function initFlowUserInfo(tempphaseno){
|
||||
var backUserInfo = AsControl.RunJavaMethodTrans("com.amarsoft.app.flow.FlowAction", "getBackStepTaskInfo", "objectNo=<%=objectNo%>,phaseNo="+tempphaseno);
|
||||
var actionSet = $("#actionset");
|
||||
var cindex=0;
|
||||
var selectUser=$('#phaseaction'+cindex).text()||"";
|
||||
if(selectUser.length==0){
|
||||
actionSet.append("<div style='margin-top:10px;margin-left:15px;font-size:12px;'><font color='#000000'><b>退回的用户:</b></font></div><div id='phaseaction"+cindex+"' style='margin-top:10px;margin-left:10px;font-size:12px;border:1px solid lightgray;padding:5px;'></div>");
|
||||
}else{
|
||||
$('#phaseaction'+cindex).html("");
|
||||
}
|
||||
var phaseAction = $("#phaseaction"+cindex);
|
||||
if(backUserInfo!=null){
|
||||
var userJson= backUserInfo;
|
||||
var username= userJson.userName||"";
|
||||
if(username.length>0){
|
||||
phaseAction.append("<a class='opinion-style' style='width:100' href='javascript:void(0)' ><input type='radio' name='phaseaction"+cindex+"' checked value='"+userJson.taskNo+"'>"+userJson.userName+"</input></a>");
|
||||
}else{
|
||||
phaseAction.append("无用户");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function doCancel(){
|
||||
if(confirm("您确定要放弃此次提交吗?")){
|
||||
parent.AsDialog.ClosePage("_CANCEL_");
|
||||
}
|
||||
}
|
||||
function backMethod(){
|
||||
if(document.getElementById("stepapprove").checked){
|
||||
commitAction();
|
||||
}else if(document.getElementById("directsubmit").checked){
|
||||
commitAction('recommit');
|
||||
}else{
|
||||
alert("请选择退回后提交方式!");
|
||||
}
|
||||
}
|
||||
//提交动作
|
||||
function commitAction(isRecommit){
|
||||
var isCommited = AsControl.RunJavaMethodTrans("com.amarsoft.app.flow.FlowAction", "isCommited", "TaskNo=<%=taskNo%>");
|
||||
if(isCommited=='yes'){
|
||||
alert("此流程任务已提交!");
|
||||
return;
|
||||
}
|
||||
var sTaskNo = $("input[name='phaseaction0']:checked").val()||"";
|
||||
var returnUser = $("input[name='phaseaction0']:checked")[0].nextSibling.nodeValue||"";
|
||||
if(typeof(sTaskNo)=="undefined" || sTaskNo.length==0){
|
||||
alert(getMessageText('AWEW1001'));//请选择一条信息!
|
||||
return;
|
||||
}
|
||||
if(confirm("确定退回吗?")){
|
||||
var para="";
|
||||
if(typeof(isRecommit)!=undefined && isRecommit=="recommit"){
|
||||
para = ",Recommit=Y";
|
||||
}
|
||||
var msg = RunJavaMethodTrans("com.amarsoft.app.flow.FlowAction","returnTask","TaskNo=<%=taskNo%>,ReturnPoint="+sTaskNo+para);
|
||||
var sFlowLogContent="<%=CurUser.getUserName()%>在@退回流程给"+returnUser;
|
||||
insertFlowLog(objectNo,taskNo,sFlowLogContent);
|
||||
alert("操作成功")
|
||||
parent.AsDialog.ClosePage("_SUCCESS_");
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
<%@include file="/Frame/resources/include/include_end.jspf"%>
|
||||
<%@page import="com.amarsoft.are.jbo.ql.Parser"%>
|
||||
<%@page import="com.amarsoft.biz.workflow.*"%>
|
||||
<%@page import="com.amarsoft.app.flow.*"%>
|
||||
<%@page import="com.tenwa.flow.task.*"%>
|
||||
<%@page import="com.amarsoft.are.lang.StringX"%>
|
||||
<%@include file="/Frame/resources/include/include_begin.jspf"%>
|
||||
<%@include file="/Tenwa/Core/FlowManager/BaseFunction/BaseFlowListFunction.jspf" %>
|
||||
<%@page contentType="text/html; charset=GBK"%>
|
||||
<%
|
||||
String taskNo = CurPage.getParameter("TaskNo");
|
||||
String applyType = CurPage.getParameter("applyType");
|
||||
String phasename = CurPage.getParameter("phasename");
|
||||
if(StringX.isSpace(taskNo)) taskNo = "";
|
||||
if(StringX.isSpace(applyType)) applyType = "";
|
||||
if(StringX.isSpace(phasename)) phasename = "";
|
||||
String userID = CurUser.getUserID();
|
||||
JBOTransaction tx = JBOFactory.createJBOTransaction();
|
||||
TenwaFlowTask ft = new TenwaFlowTask(taskNo, tx);//使用jboTrans
|
||||
String routeInfo=ft.getFlowRebackInfo();
|
||||
String flowNo = ft.FlowNo;
|
||||
String phaseNo=ft.PhaseNo;
|
||||
String objectNo=ft.ObjectNo;
|
||||
String flowState = ft.FlowState;
|
||||
//会签历史纪录阶段号问题
|
||||
tx.commit();
|
||||
|
||||
%>
|
||||
<style>
|
||||
.opinion-style{
|
||||
width:100%;
|
||||
overflow:hidden;
|
||||
display:inline-block;
|
||||
margin-bottom:2px;
|
||||
outline:none;
|
||||
}
|
||||
.opinion-style2{
|
||||
overflow:hidden;
|
||||
display:inline-block;
|
||||
margin-bottom:2px;
|
||||
outline:none;
|
||||
}
|
||||
a.opinion-style:hover{
|
||||
background-color:A8CAE5;
|
||||
outline:none;
|
||||
}
|
||||
.opinion-focus{
|
||||
background-color:A8CAE5;
|
||||
}
|
||||
</style>
|
||||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<td width="50%" align="right"><%=new Button("提交","确认提交","javascript:backMethod();","","btn_icon_Submit","").getHtmlText()%></td>
|
||||
<td width="50%" align="center"><%=new Button("放弃","放弃提交","javascript:doCancel();","","btn_icon_delete","").getHtmlText()%></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="opinionset">
|
||||
<div style="margin-top:10px;margin-left:15px;font-size:12px;">
|
||||
<font color="#000000"><b>请选择退回后提交方式:</b></font>
|
||||
</div>
|
||||
<div style="margin-top:10px;margin-left:10px;font-size:12px;border:1px solid lightgray;padding:10px;">
|
||||
<input id="directsubmit" type="radio" name="backmethod" value="1"/>直接提交退回步骤
|
||||
<input id="stepapprove" type="radio" name="backmethod" value="2" />逐级审批
|
||||
|
||||
</div>
|
||||
<div style="margin-top:10px;margin-left:15px;font-size:12px;">
|
||||
<font color="#000000"><b>请选择退回路径:</b></font>
|
||||
</div>
|
||||
<div id="stepInfo" style="margin-top:10px;margin-left:10px;font-size:12px;border:1px solid lightgray;padding:10px;">
|
||||
|
||||
</div>
|
||||
<div style="height:300px; overflow:auto">
|
||||
<div id="actionset">
|
||||
|
||||
</div>
|
||||
<div id="actionreadset">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<table width="100%" align="center">
|
||||
<tr>
|
||||
<td align="center"><b><span id="phaseinfo" style="color: #FF0000" ></span></b></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var strRouteJson='<%=routeInfo%>';
|
||||
var routeJson= JSON.parse(strRouteJson);
|
||||
var taskNo = "<%=taskNo%>";
|
||||
var applyType = "<%=applyType%>";
|
||||
var phasename = "<%=phasename%>";
|
||||
var userID = "<%=userID%>";
|
||||
var objectNo = "<%=objectNo%>";
|
||||
$(function(){initRouteInfo();});
|
||||
function initRouteInfo(){
|
||||
//初始请选择退回后提交方式
|
||||
var backnexttype=routeJson.backnexttype;
|
||||
if(backnexttype.length==0){
|
||||
$("#stepapprove").attr("checked",true);
|
||||
}else{
|
||||
if(backnexttype=="backnextperson"){
|
||||
$("#directsubmit").attr("checked",true);
|
||||
$("#stepapprove").attr("disabled",true);
|
||||
$("#directsubmit").attr("disabled",true);
|
||||
}else if(backnexttype=="backnextstep"){
|
||||
$("#stepapprove").attr("checked",true);
|
||||
$("#stepapprove").attr("disabled",true);
|
||||
$("#directsubmit").attr("disabled",true);
|
||||
}
|
||||
|
||||
}
|
||||
var stepInfo=$("#stepInfo");
|
||||
if(routeJson.backstept.length>0){
|
||||
stepInfo.append("<table>");
|
||||
for(var i=0;i<routeJson.backstept.length;i++){
|
||||
var phaseNo=routeJson.backstept[i].phaseNo;
|
||||
var phaseName=routeJson.backstept[i].phaseName;
|
||||
if(i==0){stepInfo.append("<tr>");}else{if(i%3==0){stepInfo.append("</tr><tr>");}}
|
||||
stepInfo.append("<td><a class='opinion-style2' href='javascript:void(0)' ><input type='radio' name='phaseopinion' onclick='initFlowUserInfo(\""+phaseNo+"\")' value='" +phaseNo+ "' >" + phaseName+ "("+phaseNo+")</input></a></td>");
|
||||
if(i==(routeJson.backstept.length-1)){stepInfo.append("</tr>");}
|
||||
}
|
||||
stepInfo.append("</table>");
|
||||
if(routeJson.backstept.length==1){
|
||||
$("input[name='phaseopinion']:first").attr("checked",true);
|
||||
initFlowUserInfo(routeJson.backstept[0].phaseNo);
|
||||
}
|
||||
|
||||
}else{
|
||||
stepInfo.append("没有可退回的步骤");
|
||||
}
|
||||
}
|
||||
//初始化路由下面的用户
|
||||
function initFlowUserInfo(tempphaseno){
|
||||
var backUserInfo = AsControl.RunJavaMethodTrans("com.amarsoft.app.flow.FlowAction", "getBackStepTaskInfo", "objectNo=<%=objectNo%>,phaseNo="+tempphaseno);
|
||||
var actionSet = $("#actionset");
|
||||
var cindex=0;
|
||||
var selectUser=$('#phaseaction'+cindex).text()||"";
|
||||
if(selectUser.length==0){
|
||||
actionSet.append("<div style='margin-top:10px;margin-left:15px;font-size:12px;'><font color='#000000'><b>退回的用户:</b></font></div><div id='phaseaction"+cindex+"' style='margin-top:10px;margin-left:10px;font-size:12px;border:1px solid lightgray;padding:5px;'></div>");
|
||||
}else{
|
||||
$('#phaseaction'+cindex).html("");
|
||||
}
|
||||
var phaseAction = $("#phaseaction"+cindex);
|
||||
if(backUserInfo!=null){
|
||||
var userJson= backUserInfo;
|
||||
var username= userJson.userName||"";
|
||||
if(username.length>0){
|
||||
phaseAction.append("<a class='opinion-style' style='width:100' href='javascript:void(0)' ><input type='radio' name='phaseaction"+cindex+"' checked value='"+userJson.taskNo+"'>"+userJson.userName+"</input></a>");
|
||||
}else{
|
||||
phaseAction.append("无用户");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function doCancel(){
|
||||
if(confirm("您确定要放弃此次提交吗?")){
|
||||
parent.AsDialog.ClosePage("_CANCEL_");
|
||||
}
|
||||
}
|
||||
function backMethod(){
|
||||
if(document.getElementById("stepapprove").checked){
|
||||
commitAction();
|
||||
}else if(document.getElementById("directsubmit").checked){
|
||||
commitAction('recommit');
|
||||
}else{
|
||||
alert("请选择退回后提交方式!");
|
||||
}
|
||||
}
|
||||
//提交动作
|
||||
function commitAction(isRecommit){
|
||||
var isCommited = AsControl.RunJavaMethodTrans("com.amarsoft.app.flow.FlowAction", "isCommited", "TaskNo=<%=taskNo%>");
|
||||
if(isCommited=='yes'){
|
||||
var message = AsControl.RunJavaMethodTrans("com.amarsoft.app.flow.FlowAction","getTaskAutoColseInfo","taskNo=<%=taskNo%>");
|
||||
if(message!=""){
|
||||
alert("操作失败:"+message+"!");
|
||||
}else{
|
||||
alert("此流程任务已提交!");
|
||||
}
|
||||
}
|
||||
var sTaskNo = $("input[name='phaseaction0']:checked").val()||"";
|
||||
var returnUser = $("input[name='phaseaction0']:checked")[0].nextSibling.nodeValue||"";
|
||||
if(typeof(sTaskNo)=="undefined" || sTaskNo.length==0){
|
||||
alert(getMessageText('AWEW1001'));//请选择一条信息!
|
||||
return;
|
||||
}
|
||||
if(confirm("确定退回吗?")){
|
||||
var para="";
|
||||
if(typeof(isRecommit)!=undefined && isRecommit=="recommit"){
|
||||
para = ",Recommit=Y";
|
||||
}
|
||||
var msg = RunJavaMethodTrans("com.amarsoft.app.flow.FlowAction","returnTask","TaskNo=<%=taskNo%>,ReturnPoint="+sTaskNo+para);
|
||||
var sFlowLogContent="<%=CurUser.getUserName()%>在@退回流程给"+returnUser;
|
||||
insertFlowLog(objectNo,taskNo,sFlowLogContent);
|
||||
alert("操作成功")
|
||||
parent.AsDialog.ClosePage("_SUCCESS_");
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
<%@include file="/Frame/resources/include/include_end.jspf"%>
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
package com.tenwa.flow.task;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import jbo.sys.FLOW_MODEL;
|
||||
import jbo.sys.FLOW_TASK;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.amarsoft.amarscript.Any;
|
||||
import com.amarsoft.amarscript.ELContext;
|
||||
import com.amarsoft.amarscript.Expression;
|
||||
@ -19,9 +18,13 @@ import com.amarsoft.are.util.json.JSONDecoder;
|
||||
import com.amarsoft.are.util.json.JSONObject;
|
||||
import com.amarsoft.biz.workflow.FlowTask;
|
||||
import com.amarsoft.context.ASUser;
|
||||
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
|
||||
import com.tenwa.flow.service.FlowUserManageServie;
|
||||
import com.tenwa.flow.service.FlowUserManageServieImp;
|
||||
|
||||
import jbo.sys.FLOW_MODEL;
|
||||
import jbo.sys.FLOW_TASK;
|
||||
|
||||
public class TenwaFlowTask extends FlowTask {
|
||||
public JBOTransaction baseTrans = null;
|
||||
|
||||
@ -395,69 +398,92 @@ public class TenwaFlowTask extends FlowTask {
|
||||
* @throws Exception
|
||||
*/
|
||||
public String getFlowRebackInfo() throws Exception {
|
||||
BizObjectManager bm = JBOFactory.getBizObjectManager(
|
||||
FLOW_MODEL.CLASS_NAME, this.baseTrans);
|
||||
BizObject bo = bm.createQuery("flowno=:flowno and phaseno=:phaseno")
|
||||
.setParameter("flowno", this.FlowNo)
|
||||
.setParameter("phaseno", this.PhaseNo).getSingleResult(false);
|
||||
String backnexttype = bo.getAttribute("BACKSTEPNEXTTYPE").getString();
|
||||
if (backnexttype == "") {
|
||||
backnexttype = "";
|
||||
}
|
||||
String backSteps = bo.getAttribute("BACKSTEPS").getString();
|
||||
String returnMessage = "{\"backnexttype\":\"" + backnexttype
|
||||
+ "\",\"backstept\":[";
|
||||
Map<String, Object> resultJson = new HashMap<String, Object>();
|
||||
BizObjectManager bm = JBOFactory.getBizObjectManager(FLOW_MODEL.CLASS_NAME, this.baseTrans);
|
||||
BizObject bo = bm.createQuery("flowno=:flowno and phaseno=:phaseno").setParameter("flowno", this.FlowNo).setParameter("phaseno", this.PhaseNo).getSingleResult(false);
|
||||
String backnexttype = bo.getAttribute("BACKSTEPNEXTTYPE").getString();// backnextCust
|
||||
String backSteps = bo.getAttribute("BACKSTEPS").getString();// 01申请人发起(0010)
|
||||
List<Map<String, String>> backStepList = new ArrayList<Map<String, String>>();
|
||||
resultJson.put("backnexttype", backnexttype);
|
||||
resultJson.put("backstept", backStepList);
|
||||
String fixedSteps = "";
|
||||
if (backSteps.length() > 1) {
|
||||
if (backSteps != null && backSteps.length() > 1) {
|
||||
fixedSteps = this.getBackStepsByConfig(backSteps);
|
||||
}
|
||||
String sql = "";
|
||||
Map<String,String>condition=new HashMap<String,String>();
|
||||
if (backSteps.length() <= 1) {
|
||||
sql = " SELECT O.phaseno,O.phasename FROM O left join jbo.sys.FLOW_MODEL fm on o.phaseno=fm.phaseno and o.flowno=fm.flowno WHERE o.flowno=:flowno and o.objectno='"
|
||||
+ this.ObjectNo + "' ";
|
||||
sql += "AND O.phaseno<'"
|
||||
+ this.PhaseNo
|
||||
+ "' and fm.ATTRIBUTE7='01' order by O.phaseno DESC,begintime desc";
|
||||
|
||||
//没有判断退回路径时
|
||||
|
||||
if(this.ForkState.equals("INFORK")){
|
||||
//第一种并行中退回
|
||||
sql="select o.phaseno,o.phasename from (";
|
||||
sql=sql+ " SELECT * FROM flow_task START WITH serialno =:serialno CONNECT BY PRIOR relativeserialno = serialno ";
|
||||
sql=sql+" )o left join FLOW_MODEL fm on o.phaseno=fm.phaseno and o.flowno=fm.flowno where to_number(fm.phaseno)<to_number('" + this.PhaseNo + "') and (nvl(o.forkstate,'e') <>'INFORK' OR (nvl(o.forkstate,'e') ='INFORK' and forkno=:forkno) )and fm.ATTRIBUTE7='01' order by begintime";
|
||||
condition.put("serialno", this.RelativeSerialNo);
|
||||
condition.put("forkno", this.ForkNo);
|
||||
}else{
|
||||
//第二种一般路径,不能退回并行中
|
||||
sql="select o.phaseno,o.phasename from ( ";
|
||||
sql=sql+" SELECT * FROM flow_task START WITH serialno =:serialno CONNECT BY PRIOR relativeserialno = serialno ";
|
||||
sql=sql+" )o left join FLOW_MODEL fm on o.phaseno=fm.phaseno and o.flowno=fm.flowno where to_number(fm.phaseno)<to_number('" + this.PhaseNo + "') and nvl(o.forkstate,'e') <>'INFORK' and fm.ATTRIBUTE7='01' order by begintime";
|
||||
condition.put("serialno", this.RelativeSerialNo);
|
||||
}
|
||||
} else {
|
||||
sql = " SELECT O.phaseno,O.phasename FROM O WHERE o.flowno=:flowno and o.objectno='"
|
||||
+ this.ObjectNo + "' ";
|
||||
sql += "AND O.phaseno in (" + fixedSteps
|
||||
+ ") order by O.phaseno DESC,begintime desc";
|
||||
sql = " SELECT O.phaseno,O.phasename FROM flow_task O WHERE o.flowno=:flowno and o.objectno=:objectno ";
|
||||
sql += "AND O.phaseno in (" + fixedSteps + ") order by O.phaseno DESC,begintime desc";
|
||||
condition.put("flowno", this.FlowNo);
|
||||
condition.put("objectno", this.ObjectNo);
|
||||
}
|
||||
List<BizObject> bos = JBOFactory
|
||||
.getBizObjectManager(FLOW_TASK.CLASS_NAME, this.baseTrans)
|
||||
.createQuery(sql).setParameter("flowno", this.FlowNo)
|
||||
.getResultList(false);
|
||||
if (backSteps.length() == 0) {
|
||||
// ¼ÓÔØÍË»ØÉÏÒ»²½
|
||||
returnMessage += "{\"phaseNo\":\""
|
||||
+ bos.get(0).getAttribute("phaseno").getString()
|
||||
+ "\",\"phaseName\":\""
|
||||
+ bos.get(0).getAttribute("phasename").getString() + "\"}";
|
||||
} else {
|
||||
List<Map<String,String>>bos= DataOperatorUtil.getDataBySql(this.baseTrans,sql,condition);
|
||||
|
||||
BizObjectManager taskManages = JBOFactory.getBizObjectManager(FLOW_TASK.CLASS_NAME, this.baseTrans);
|
||||
|
||||
if(bos.size() == 0 && this.RelativeSerialNo != null) {
|
||||
BizObject fromTask = null;
|
||||
if(this.AssignedTaskNo.length() > 0) {
|
||||
BizObjectQuery fromQuery = taskManages.createQuery("o.flowno=:flowno and o.objectno=:objectno and o.flowstate in ('START','NORMAL') and o.phaseopinion1=:phaseopinion1");
|
||||
fromQuery.setParameter("flowno", this.FlowNo);
|
||||
fromQuery.setParameter("objectno", this.ObjectNo);
|
||||
fromQuery.setParameter("phaseopinion1", this.PhaseNo);
|
||||
List<BizObject> result = fromQuery.getResultList(false);
|
||||
if (result.size() > 0) {
|
||||
fromTask = result.get(0);
|
||||
}
|
||||
}
|
||||
if(fromTask == null) {
|
||||
BizObjectQuery fromQuery = taskManages.createQuery("o.SerialNo=:SerialNo and o.objectno=:objectno");
|
||||
fromQuery.setParameter("SerialNo", this.RelativeSerialNo);
|
||||
fromQuery.setParameter("objectno", this.ObjectNo);
|
||||
fromTask = fromQuery.getSingleResult(false);
|
||||
}
|
||||
if(fromTask != null) {
|
||||
Map<String, String> step = new HashMap<String, String>();
|
||||
step.put("phaseNo", fromTask.getAttribute("phaseno").getString());
|
||||
step.put("phaseName", fromTask.getAttribute("phasename").getString());
|
||||
backStepList.add(step);
|
||||
}
|
||||
}
|
||||
// else if (backSteps.length() == 0) {
|
||||
// // 加载退回上一步
|
||||
// Map<String, String> step = new HashMap<String, String>();
|
||||
// step.put("phaseNo", bos.get(0).getAttribute("phaseno").getString());
|
||||
// step.put("phaseName", bos.get(0).getAttribute("phasename").getString());
|
||||
// backStepList.add(step);
|
||||
// }
|
||||
else {
|
||||
Map<String, String> tasks = new HashMap<String, String>();
|
||||
int findex = 0;
|
||||
for (int i = 0; i < bos.size(); i++) {
|
||||
|
||||
if (!tasks.containsKey(bos.get(i).getAttribute("phaseno")
|
||||
.getString())) {
|
||||
findex++;
|
||||
if (findex > 1) {
|
||||
returnMessage += ",";
|
||||
}
|
||||
tasks.put(bos.get(i).getAttribute("phaseno").getString(),
|
||||
"");
|
||||
returnMessage += "{\"phaseNo\":\""
|
||||
+ bos.get(i).getAttribute("phaseno").getString()
|
||||
+ "\",\"phaseName\":\""
|
||||
+ bos.get(i).getAttribute("phasename").getString()
|
||||
+ "\"}";
|
||||
if (!tasks.containsKey(bos.get(i).get("PHASENO"))) {
|
||||
tasks.put(bos.get(i).get("PHASENO"), "");
|
||||
Map<String, String> step = new HashMap<String, String>();
|
||||
step.put("phaseNo", bos.get(i).get("PHASENO"));
|
||||
step.put("phaseName", bos.get(i).get("PHASENAME"));
|
||||
backStepList.add(step);
|
||||
}
|
||||
}
|
||||
}
|
||||
returnMessage += "]}";
|
||||
return returnMessage;
|
||||
return JSON.toJSONString(resultJson);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user