Index: forgon-core/src/main/java/com/forgon/workflow/service/WorkFlowManagerImpl.java
===================================================================
diff -u -r21790 -r21859
--- forgon-core/src/main/java/com/forgon/workflow/service/WorkFlowManagerImpl.java (.../WorkFlowManagerImpl.java) (revision 21790)
+++ forgon-core/src/main/java/com/forgon/workflow/service/WorkFlowManagerImpl.java (.../WorkFlowManagerImpl.java) (revision 21859)
@@ -32,13 +32,13 @@
}
public NodeDefinition getLastNodeDefinitionById(String nodeDefinition_id){
- String sql= " where po.sequenceNumber in ( select o.sequenceNumber-1 from NodeDefinition o where o.id="+nodeDefinition_id+")";
+ String sql= " where po.sequenceNumber = ( select o.sequenceNumber-1 from NodeDefinition o where o.id="+nodeDefinition_id+") and po.workFlow.id =( select o.workFlow.id from NodeDefinition o where o.id="+nodeDefinition_id+") ";
NodeDefinition nodeDefinition=(NodeDefinition) objectDao.getBySql(NodeDefinition.class.getSimpleName(), sql);
return nodeDefinition;
}
- public NodeDefinition getNextNodeDefinitionById(String nodeDefinition_id){
- String sql= " where po.sequenceNumber in ( select o.sequenceNumber+1 from NodeDefinition o where o.id="+nodeDefinition_id+")";
+ public NodeDefinition getNextNodeDefinitionById(String nodeDefinition_id){//o.workFlow_id
+ String sql= " where po.sequenceNumber in ( select o.sequenceNumber+1 from NodeDefinition o where o.id="+nodeDefinition_id+") and po.workFlow.id =( select o.workFlow.id from NodeDefinition o where o.id="+nodeDefinition_id+") ";
NodeDefinition nodeDefinition=(NodeDefinition) objectDao.getBySql(NodeDefinition.class.getSimpleName(), sql);
return nodeDefinition;
}
@@ -200,7 +200,8 @@
@Override
public NodeApproval getNodeApproval(String NodeDefinitionId) {
- return (NodeApproval) objectDao.getByID_ForUpdate(NodeApproval.class.getSimpleName(),NodeDefinitionId);
+ return (NodeApproval) objectDao.getByProperty_ForUpdate(NodeApproval.class.getSimpleName(),"nodeDefinition.id",NodeDefinitionId);
+ //return (NodeApproval) objectDao.getByID_ForUpdate(NodeApproval.class.getSimpleName(),NodeDefinitionId);
}
@Override
Index: ssts-web/src/main/webapp/systemmanage/workFlow/approvalRecord.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/systemmanage/workFlow/approvalRecord.js (revision 0)
+++ ssts-web/src/main/webapp/systemmanage/workFlow/approvalRecord.js (revision 21859)
@@ -0,0 +1,217 @@
+var formObj3;
+var windowObj3;
+var entityName3 = '审批记录';
+//formId 为工单id
+function ApprovalRecord(formId){
+
+ //会重复执行两次
+ function rendererResponseTime(value, metaData, record, rowIndex, colIndex,
+ store, view) {
+ var cTime=record.data['createTaskTime'].time;
+ var hTime=0;
+ if(record.data['handleTime']!=null) //得判断,不然少cell
+ hTime=record.data['handleTime'].time;
+
+ if((typeof(hTime)!="undefined" && hTime!=0)&&(typeof(cTime)!="undefined" && cTime!=0)){
+ var responseTimeMinutes= Math.floor(parseInt(hTime - cTime) / 1000 / 60);
+ var responseTimeHours=Math.floor(parseInt(hTime - cTime) / 1000 / 60 / 60);
+ var responseTimeDays=Math.floor(parseInt(hTime - cTime) / 1000 / 60 / 60/24);
+ if(responseTimeDays>0){
+ return responseTimeDays+'天'+Math.floor((parseInt(hTime - cTime)-responseTimeDays*1000*60*60*24)/ 1000 / 60 / 60)+'小时';
+ }
+ if(responseTimeHours>0){
+ return responseTimeHours+'小时'+Math.floor((parseInt(hTime - cTime)-responseTimeHours*1000*60*60)/ 1000 / 60)+'分钟';
+ }
+ if(responseTimeMinutes==0)
+ return '1分钟';
+ return responseTimeMinutes+'分钟';
+ }else
+ return '';
+ }
+
+
+ function renderApprovalResult(value, metaData, record, rowIndex, colIndex, store, view) {
+ if (value == 1) {
+ return '通过';
+ } else if(value == 0) {
+ return '未通过';
+ }else {
+ return '未处理';
+ }
+ }
+
+ var fields3 = [ {
+ name : 'id',
+ mapping : 'id'
+ }, {
+ name : 'formId',
+ mapping : 'formId'
+ }, {
+ name : 'formType',
+ mapping : 'formType'
+ }, {
+ name : 'title',
+ mapping : 'title'
+ }, {
+ name : 'createTaskTime',
+ mapping : 'createTaskTime'
+ }, {
+ name : 'taskName',
+ mapping : 'taskName'
+ },{
+ name : 'handlerId',
+ mapping : 'handlerId'
+ }, {
+ name : 'handler',
+ mapping : 'handler'
+ }, {
+ name : 'handleTime',
+ mapping : 'handleTime'
+ }, {
+ name : 'status',
+ mapping : 'status'
+ }, {
+ name : 'handleOpinion',
+ mapping : 'handleOpinion'
+ }, {
+ name : 'approvalResult',
+ mapping : 'approvalResult'
+ }, {
+ name : 'roleId',
+ mapping : 'roleId'
+ }, {
+ name : 'userId',
+ mapping : 'userId'
+ }, {
+ name : 'fullName',
+ mapping : 'fullName'
+ }, {
+ name : 'roleName',
+ mapping : 'roleName'
+ } ];
+ var columns3 = [{
+ header : "标题",
+ dataIndex : 'title',
+ width : 150,
+ minWidth : 150,
+ maxWidth : 150,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ }, {
+ header : "任务名字",
+ dataIndex : 'taskName',
+ width : 120,
+ minWidth : 120,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ }, {
+ header : "处理人",
+ dataIndex : 'handler',
+ width : 60,
+ minWidth : 60,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ }, {
+ header : "处理结果",
+ dataIndex : 'approvalResult',
+ width : 70,
+ minWidth : 70,
+ filterable : true,
+ filter : {
+ type : 'string'
+ },
+ renderer : renderApprovalResult
+ }, {
+ header : "处理意见",
+ dataIndex : 'handleOpinion',
+ width : 120,
+ minWidth : 120,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ } , {
+ header : "处理时间",
+ dataIndex : 'handleTime',
+ width : 140,
+ minWidth : 140,
+ filterable : true,
+ filter : {
+ type : 'date'
+ },
+ renderer : rendererTransitionTime
+ }, {
+ header : "创建任务时间",
+ dataIndex : 'createTaskTime',
+ width : 140,
+ minWidth : 140,
+ filterable : true,
+ filter : {
+ type : 'date'
+ },
+ renderer : rendererTransitionTime
+ }, {
+ header : "响应时间",
+ dataIndex : '',
+ width : 100,
+ minWidth : 100,
+ filterable : true,
+ filter : {
+ type : 'string'
+ },
+ renderer : rendererResponseTime
+ }];
+
+ var approvalRecordGrid = Ext4.create('ExtJs.forgon4.Grid', {
+ title : entityName3,
+ dataUrl : WWWROOT
+ + '/disinfectSystem/workFlowApprovalTaskAction!loadWorkFlowApprovalTaskRecordList.do',
+ fields : fields3,
+ columns : columns3,
+ sorters : {
+ property : 'createTaskTime',
+ direction : 'ASC'
+ },
+ extraParams : {formId:formId},
+ showRightClick : false,
+ tbar : []
+ });
+
+
+ formObj3 = Ext4.create('Ext4.form.Panel', {
+ layout : 'vbox',
+ frame : true,
+ border : 0,
+ labelSeparator : ': ',
+ bodyPadding : '5 5 0',
+ autoScroll : true,
+ buttonAlign : 'center',
+ buttons : [],
+ items : [ {
+ xtype : 'container',
+ flex : 1,
+ width : '100%',
+ layout : 'fit',
+ items : approvalRecordGrid
+ }]
+ });
+
+ windowObj3 = Ext4.create('Ext4.window.Window', {
+ layout : 'fit',
+ title : '审批记录信息',
+ width : 1000,
+ height : 380,
+ resizable : false,
+ modal : true,
+ border : false,
+ plain : true,
+ items : formObj3
+ });
+ windowObj3.show();
+ }
\ No newline at end of file
Index: forgon-core/src/main/java/com/forgon/workflow/model/WorkFlowApprovalTask.java
===================================================================
diff -u -r21786 -r21859
--- forgon-core/src/main/java/com/forgon/workflow/model/WorkFlowApprovalTask.java (.../WorkFlowApprovalTask.java) (revision 21786)
+++ forgon-core/src/main/java/com/forgon/workflow/model/WorkFlowApprovalTask.java (.../WorkFlowApprovalTask.java) (revision 21859)
@@ -74,12 +74,12 @@
private Date handleTime;
/**
- * 处理状态: 0(已处理) 1(未处理) -1(默认)
+ * 处理状态: 1(已处理) 0(未处理) -1(默认)
* */
private int status;
/**
- * 审批结果: 0(通过) 1(未通过) -1(默认)
+ * 审批结果: 1(通过) 0(未通过) -1(默认)
* */
private int approvalResult;
@@ -93,7 +93,7 @@
* */
private Long roleId;
- /**
+ /**
* 待处理用户id
* */
private Long userId;
Index: forgon-core/src/main/java/com/forgon/workflow/service/WorkFlowApprovalTaskManagerImpl.java
===================================================================
diff -u -r21790 -r21859
--- forgon-core/src/main/java/com/forgon/workflow/service/WorkFlowApprovalTaskManagerImpl.java (.../WorkFlowApprovalTaskManagerImpl.java) (revision 21790)
+++ forgon-core/src/main/java/com/forgon/workflow/service/WorkFlowApprovalTaskManagerImpl.java (.../WorkFlowApprovalTaskManagerImpl.java) (revision 21859)
@@ -2,15 +2,22 @@
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.util.Date;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
+import com.forgon.directory.acegi.tools.AcegiHelper;
+import com.forgon.directory.vo.LoginUserData;
import com.forgon.entity.ExtJsEntity;
+import com.forgon.security.model.User;
+import com.forgon.tools.StrutsParamUtils;
import com.forgon.tools.db.DatabaseUtil;
import com.forgon.tools.hibernate.ObjectDao;
import com.forgon.tools.util.ExtJsUtil;
+import com.forgon.workflow.model.NodeApproval;
+import com.forgon.workflow.model.NodeDefinition;
import com.forgon.workflow.model.WorkFlowApprovalTask;
public class WorkFlowApprovalTaskManagerImpl implements WorkFlowApprovalTaskManager{
@@ -21,59 +28,246 @@
this.objectDao = objectDao;
}
- public WorkFlowApprovalTask getWorkFlowApprovalTaskByRollBack(String nodeDefinitionId,Long formId){
- String sql=" where po.nodeDefinition_id in (select n.id from NodeDefinition n where n.sequenceNumber in ( select o.sequenceNumber-1 from NodeDefinition o where o.id="+nodeDefinitionId+"))and po.formId="+formId;
+ /**
+ * 审批通过 ,保存待办任务
+ *
+ */
+ public void saveOrUpdateWorkFlowApprovalTask(WorkFlowApprovalTask workFlowApprovalTask,NodeDefinition nodeDefinition,NodeDefinition nodeDefinition1,int approvalResult,String handleOpinion,long userID,String formType,long formId){
+ LoginUserData userData= AcegiHelper.getLoginUser();
- WorkFlowApprovalTask workFlowApprovalTask=(WorkFlowApprovalTask) objectDao.getBySql(WorkFlowApprovalTask.class.getSimpleName(),sql);
+ workFlowApprovalTask.setNodeDefinition(nodeDefinition);
+ workFlowApprovalTask.setHandlerId(userData.getUserId());
+ workFlowApprovalTask.setHandler(userData.getUserName());
+ workFlowApprovalTask.setHandleTime(new Date());
+ workFlowApprovalTask.setHandleOpinion(handleOpinion);
+ workFlowApprovalTask.setApprovalResult(approvalResult);
+ workFlowApprovalTask.setStatus(1);
+ saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask);
+
+ if(nodeDefinition1!=null){ //有下一个节点
+ WorkFlowApprovalTask workFlowApprovalTask1=new WorkFlowApprovalTask();
+ workFlowApprovalTask1.setTaskName(nodeDefinition1.getName());
+ workFlowApprovalTask1.setNodeDefinition(nodeDefinition1);
+ workFlowApprovalTask1.setFormId(formId);
+ workFlowApprovalTask1.setFormType(formType);
+ workFlowApprovalTask1.setTitle(formId+formType);
+ workFlowApprovalTask1.setCreateTaskTime(new Date());
+ if(userID==0){//用户没有指定下一个,则默认节点审批的角色和用户
+ NodeApproval nodeApproval=(NodeApproval) objectDao.getByProperty(NodeApproval.class.getSimpleName(), "nodeDefinition.id", nodeDefinition1.getId());
+ long roleId=nodeApproval.getRoleId();
+ long userId=nodeApproval.getUserId();
+ workFlowApprovalTask1.setRoleId(roleId);
+ workFlowApprovalTask1.setUserId(userId);
+ }else
+ workFlowApprovalTask1.setUserId(userID);
+ workFlowApprovalTask1.setApprovalResult(-1);
+ workFlowApprovalTask1.setStatus(0);
+ saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask1);
+ }
+ }
+
+
+ /**
+ * 审批回滚 ,保存待办任务
+ *
+ */
+ public void rollbackWorkFlowApprovalTask(WorkFlowApprovalTask workFlowApprovalTask,int approvalResult,String nodeDefinition_id,NodeDefinition nodeDefinition1){
+ LoginUserData userData= AcegiHelper.getLoginUser();
+ workFlowApprovalTask.setHandlerId(userData.getUserId());
+ workFlowApprovalTask.setHandler(userData.getUserName());
+ workFlowApprovalTask.setHandleTime(new Date());
+ workFlowApprovalTask.setStatus(1);
+ workFlowApprovalTask.setApprovalResult(approvalResult);
+ saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask);
+ WorkFlowApprovalTask workFlowApprovalTask1=new WorkFlowApprovalTask();
+ if(nodeDefinition1!=null){
+ //获取上一个节点的待审批任务
+ WorkFlowApprovalTask workFlowApprovalTask2 = getWorkFlowApprovalTaskByRollBack(nodeDefinition_id,workFlowApprovalTask.getFormId());
+ workFlowApprovalTask1.setTaskName(nodeDefinition1.getName());
+ workFlowApprovalTask1.setNodeDefinition(nodeDefinition1);
+ workFlowApprovalTask1.setFormId(workFlowApprovalTask2.getFormId());
+ workFlowApprovalTask1.setFormType(workFlowApprovalTask2.getFormType());
+ workFlowApprovalTask1.setTitle(workFlowApprovalTask2.getFormId()+workFlowApprovalTask2.getFormType());
+ workFlowApprovalTask1.setCreateTaskTime(new Date());
+ workFlowApprovalTask1.setUserId(workFlowApprovalTask2.getUserId());
+ workFlowApprovalTask1.setApprovalResult(-1);
+ workFlowApprovalTask1.setStatus(0);
+ saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask1);
+ }else{//节点为空,返回申请人---前台调用家的修改单流程状态
+
+ //根据工号获取工单申请人id
+ User user= getUserByFormId(workFlowApprovalTask.getFormId());
+ workFlowApprovalTask1.setTaskName("申请人修改工单");
+ workFlowApprovalTask1.setFormId(workFlowApprovalTask.getFormId());
+ workFlowApprovalTask1.setFormType(workFlowApprovalTask.getFormType());
+ workFlowApprovalTask1.setTitle(workFlowApprovalTask.getFormId()+workFlowApprovalTask.getFormType());
+ workFlowApprovalTask1.setCreateTaskTime(new Date());
+ if(user!=null)
+ workFlowApprovalTask1.setUserId(user.getId());
+ workFlowApprovalTask1.setApprovalResult(-1);
+ workFlowApprovalTask1.setStatus(0);
+ saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask1);
+ }
+
+ }
+
+
+ /**
+ * 根据工单id获取申请人
+ *
+ */
+ @Override
+ public User getUserByFormId(Long formId) {
+ String sql=" where po.name in (select i.applicantCode from InvoicePlan i where i.id="+formId+")";//InvoicePlan是类名
+ User user=(User) objectDao.getBySql(User.class.getSimpleName(),sql);
+ return user;
+ }
+
+
+ /**
+ * 审批通过 ,保存待办任务
+ *
+ */
+ public WorkFlowApprovalTask getWorkFlowApprovalTaskByRollBack(String nodeDefinitionId,Long formId){
+ String sql=" where po.nodeDefinition.id in (select n.id from NodeDefinition n where n.sequenceNumber in ( select o.sequenceNumber-1 from NodeDefinition o where o.id="+nodeDefinitionId+"))and po.formId="+formId;
+ WorkFlowApprovalTask workFlowApprovalTask=(WorkFlowApprovalTask) objectDao.getBySql(WorkFlowApprovalTask.class.getSimpleName(),sql);
return workFlowApprovalTask;
}
+
+ /**
+ * 获取当前节点的下一个节点----节点审批表下的所有用户或者指定用户
+ * 如果是倒数第二个节点,则指定申请人,无须指定是谁
+ */
@Override
- public JSONArray getAllUserByWorkFlowApprovalTaskId(String id) {
- String select=" select w.userId,u.fullName from WorkFlowApprovalTask w ,SS_USERS u ";
- select+=" where u.id=w.userId and w.id="+id;
+ public JSONArray getAllUserByWorkFlowApprovalTaskId(String id,String nodeDefinition_id) {
+ //因为回退,所以根据节点和表单号可能查出多条,则以时间排序获取最新一条
+ String sql="select (case when (select top 1 id from ( SELECT TOP 2 * from NodeDefinition order by sequenceNumber DESC ) as a order by a.sequenceNumber ASC)= "+nodeDefinition_id+" then 1 else 0 end) flag";
+ ResultSet nodeDefinitionResult = objectDao.executeSql(sql);
+ long flag=0;
+ try {
+ while(nodeDefinitionResult.next()){
+ flag=nodeDefinitionResult.getLong("flag");
+ }
+ } catch (SQLException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
- ResultSet result = objectDao.executeSql(select);
- JSONArray jSONArray = new JSONArray();
- JSONObject jSONObject;
+ /*String sql=" select top 1 id from ( SELECT TOP 2 * from NodeDefinition order by sequenceNumber DESC ) as a order by a.sequenceNumber ASC ";
+ String sql1="select w.nodeDefinition_id from WorkFlowApprovalTask w where w.id="+id;
+ ResultSet nodeDefinitionResult = objectDao.executeSql(sql);
+ ResultSet workFlowApprovalTaskResult = objectDao.executeSql(sql1);
try {
- while(result.next()){
- jSONObject = new JSONObject();
- jSONObject.put("userId", result.getLong("userId"));
- jSONObject.put("fullName", result.getString("fullName"));
- jSONArray.add(jSONObject);
+ long nodeDefinition_id1=0;
+ long nodeDefinition_id2=0;
+
+ while(nodeDefinitionResult.next()){
+ nodeDefinition_id1=nodeDefinitionResult.getLong("id");
}
- if(jSONArray.size()==0){
- String select1=" select ur.USER_ID userId,u.fullName from SS_USER_ROLE ur ,SS_USERS u ";
- String where1 =" where ur.ROLE_ID in (select w.roleId from WorkFlowApprovalTask w where w.id='"+id+"') and ur.USER_ID=u.id ";
- ResultSet result1 = objectDao.executeSql(select1+where1);
- String select2=" select ur.USER_ID userId,u.fullName from SS_USER_ROLE ur ,SS_USERS u ";
- String where2 =" where ur.ROLE_ID in (select w.roleId from WorkFlowApprovalTask w where w.id='"+id+"') and ur.USER_ID=u.id ";
- ResultSet result2 = objectDao.executeSql(select2+where2);
-
+ while(workFlowApprovalTaskResult.next()){
+ nodeDefinition_id2=nodeDefinitionResult.getLong("nodeDefinition_id");
+ }
+ if(nodeDefinition_id1==nodeDefinition_id2&&nodeDefinition_id1!=0&&nodeDefinition_id2!=0){
+ flag=true;
+ }
+ } catch (SQLException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }*/
+ JSONArray jSONArray = new JSONArray();
+ ResultSet result1 = null,result2 = null;
+ if(flag==0){
+ JSONObject jSONObject;
+ try {
+ //获取节点审批表的roleid 对应下的用户
+ String select1=" select ur.USER_ID userId,u.fullName from SS_USER_ROLE ur ,SS_USERS u ";
+ String where1 =" where ur.ROLE_ID in (select na.roleId from NodeApproval na where na.nodeDefinition_ID= (select no.id from NodeDefinition no where no.sequenceNumber =( select n.sequenceNumber+1 from NodeDefinition n where n.id="+nodeDefinition_id+") and no.workFlow_id=( select n.workFlow_id from NodeDefinition n where n.id="+nodeDefinition_id+"))) and ur.USER_ID=u.id";
+ result1 = objectDao.executeSql(select1+where1);
+ //获取节点审批表的useid 对应下的用户
+ String select2=" select u.id,u.fullName from ss_users u ";
+ String where2 =" where u.id= (select na.userId from NodeApproval na where na.nodeDefinition_ID= (select no.id from NodeDefinition no where no.sequenceNumber =( select n.sequenceNumber+1 from NodeDefinition n where n.id="+nodeDefinition_id+") and no.workFlow_id=( select n.workFlow_id from NodeDefinition n where n.id="+nodeDefinition_id+"))) ";
+ result2 = objectDao.executeSql(select2+where2);
+
while(result1.next()){
jSONObject = new JSONObject();
+ jSONObject.put("userId", result1.getLong("userId"));
+ jSONObject.put("fullName", result1.getString("fullName"));
+ jSONArray.add(jSONObject);
+ }
+
+ while(result2.next()){
+ jSONObject = new JSONObject();
+ jSONObject.put("userId", result2.getLong("id"));
+ jSONObject.put("fullName", result2.getString("fullName"));
+ jSONArray.add(jSONObject);
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ return null;
+ }finally {
+ DatabaseUtil.closeResultSetAndStatement(result1);
+ DatabaseUtil.closeResultSetAndStatement(result2);
+ }
+ /*String select=" select w.userId,u.fullName from WorkFlowApprovalTask w ,SS_USERS u ";
+ select+=" where u.id=w.userId and w.id="+id;
+ ResultSet result = objectDao.executeSql(select);
+ JSONObject jSONObject;
+ try {
+ while(result.next()){
+ jSONObject = new JSONObject();
jSONObject.put("userId", result.getLong("userId"));
jSONObject.put("fullName", result.getString("fullName"));
jSONArray.add(jSONObject);
}
- while(result2.next()){
+ if(jSONArray.size()==0){
+ String select1=" select ur.USER_ID userId,u.fullName from SS_USER_ROLE ur ,SS_USERS u ";
+ String where1 =" where ur.ROLE_ID in (select w.roleId from WorkFlowApprovalTask w where w.id='"+id+"') and ur.USER_ID=u.id ";
+ ResultSet result1 = objectDao.executeSql(select1+where1);
+ String select2=" select ur.USER_ID userId,u.fullName from SS_USER_ROLE ur ,SS_USERS u ";
+ String where2 =" where ur.ROLE_ID in (select w.roleId from WorkFlowApprovalTask w where w.id='"+id+"') and ur.USER_ID=u.id ";
+ ResultSet result2 = objectDao.executeSql(select2+where2);
+
+ while(result1.next()){
+ jSONObject = new JSONObject();
+ jSONObject.put("userId", result.getLong("userId"));
+ jSONObject.put("fullName", result.getString("fullName"));
+ jSONArray.add(jSONObject);
+ }
+
+ while(result2.next()){
+ jSONObject = new JSONObject();
+ jSONObject.put("userId", result.getLong("userId"));
+ jSONObject.put("fullName", result.getString("fullName"));
+ jSONArray.add(jSONObject);
+ }
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return null;
+ }finally {
+ DatabaseUtil.closeResultSetAndStatement(result);
+ }*/
+ }else{
+ String sql2="select u.id,u.fullName from ss_users u where u.name=(select i.applicantCode from InvoicePlan i where i.id= (select w.formId from WorkFlowApprovalTask w where w.id="+id+"))";
+ ResultSet result = objectDao.executeSql(sql2);
+ JSONObject jSONObject;
+ try {
+ while(result.next()){
jSONObject = new JSONObject();
- jSONObject.put("userId", result.getLong("userId"));
+ jSONObject.put("userId", result.getLong("id"));
jSONObject.put("fullName", result.getString("fullName"));
jSONArray.add(jSONObject);
}
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return null;
- }finally {
- DatabaseUtil.closeResultSetAndStatement(result);
}
return jSONArray;
}
@@ -104,7 +298,6 @@
return null;
}
-
}
Index: ssts-web/src/main/webapp/systemmanage/workFlow/workFlowApprovalTask.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/systemmanage/workFlow/workFlowApprovalTask.jsp (revision 0)
+++ ssts-web/src/main/webapp/systemmanage/workFlow/workFlowApprovalTask.jsp (revision 21859)
@@ -0,0 +1,24 @@
+<%@page language="java" contentType="text/html; charset=UTF-8"%>
+<%-- 引入JSP标签 --%>
+<%@include file="/common/taglibs.jsp"%>
+<%-- 引入ExtJs4.2.5框架 --%>
+<%@include file="/common/include_ForgonGrid4.2.5_css.jsp"%>
+<%@include file="/common/include_ForgonGrid4.2.5_Js.jsp"%>
+<%@include file="/common/include_UseForgonGrid4_Js.jsp"%>
+
+
+
+ <%-- 引入common.js --%>
+
+ <%-- 引入语音插件 --%>
+
+ <%-- 引入本身的js --%>
+
+
+
+ 待办任务列表
+
+
+
+
+
\ No newline at end of file
Index: forgon-core/src/main/java/com/forgon/workflow/service/WorkFlowApprovalTaskManager.java
===================================================================
diff -u -r21790 -r21859
--- forgon-core/src/main/java/com/forgon/workflow/service/WorkFlowApprovalTaskManager.java (.../WorkFlowApprovalTaskManager.java) (revision 21790)
+++ forgon-core/src/main/java/com/forgon/workflow/service/WorkFlowApprovalTaskManager.java (.../WorkFlowApprovalTaskManager.java) (revision 21859)
@@ -4,6 +4,8 @@
import net.sf.json.JSONArray;
+import com.forgon.security.model.User;
+import com.forgon.workflow.model.NodeDefinition;
import com.forgon.workflow.model.WorkFlowApprovalTask;
public interface WorkFlowApprovalTaskManager {
@@ -18,5 +20,18 @@
public WorkFlowApprovalTask getWorkFlowApprovalTask(String id);
- public JSONArray getAllUserByWorkFlowApprovalTaskId(String id);
+ public JSONArray getAllUserByWorkFlowApprovalTaskId(String id,String nodeDefinition_id);
+
+ public User getUserByFormId(Long formId);
+
+ public void rollbackWorkFlowApprovalTask(
+ WorkFlowApprovalTask workFlowApprovalTask, int approvalResult,String nodeDefinition_id,
+ NodeDefinition nodeDefinition1
+ );
+
+ public void saveOrUpdateWorkFlowApprovalTask(
+ WorkFlowApprovalTask workFlowApprovalTask,
+ NodeDefinition nodeDefinition, NodeDefinition nodeDefinition1,
+ int approvalResult, String handleOpinion, long userID,
+ String formType, long formId);
}
Index: ssts-web/src/main/webapp/systemmanage/workFlow/workFlowApprovalTaskView.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/systemmanage/workFlow/workFlowApprovalTaskView.js (revision 0)
+++ ssts-web/src/main/webapp/systemmanage/workFlow/workFlowApprovalTaskView.js (revision 21859)
@@ -0,0 +1,183 @@
+var entityName = '待办任务';
+var grid;
+
+function rendererTransitionTime(value, metaData, record, rowIndex, colIndex,
+ store, view) {
+ if (value) {
+ return Ext4.Date.format(new Date(value.time), 'Y-m-d H:i:s');
+ } else {
+ return '';
+ }
+}
+
+function loadFormDataAndUpdate(grid) {
+ var records = grid.getSelectionModel().selected.items;// extjs4.2.5版本选择多行写法
+ if (records == null || records == "" || records == undefined
+ || records.length == 0) {
+ showResult("请选择要修改的记录!");
+ return false;
+ }
+ if (records.length > 1) {
+ showResult("一次只能修改一条记录!");
+ return false;
+ }
+ var id = records[0].data['id'];
+ var formId = records[0].data['formId'];
+ var nodeDefinition_id = records[0].data['nodeDefinition_id'];
+ var formType = records[0].data['formType'];
+ addAndEditWorkFlowApprovalTask(id,nodeDefinition_id,46,formType);
+}
+
+
+
+
+Ext4.onReady(function() {
+ var fields = [ {
+ name : 'id',
+ mapping : 'id'
+ }, {
+ name : 'formId',
+ mapping : 'formId'
+ }, {
+ name : 'formType',
+ mapping : 'formType'
+ }, {
+ name : 'title',
+ mapping : 'title'
+ }, {
+ name : 'nodeDefinition_id',
+ mapping : 'nodeDefinition_id'
+ }, {
+ name : 'taskName',
+ mapping : 'taskName'
+ }, {
+ name : 'createTaskTime',
+ mapping : 'createTaskTime'
+ }, {
+ name : 'roleId',
+ mapping : 'roleId'
+ } , {
+ name : 'roleName',
+ mapping : 'roleName'
+ } , {
+ name : 'userName',
+ mapping : 'userName'
+ } , {
+ name : 'userId',
+ mapping : 'userId'
+ }];
+
+ var columns = [ {
+ id : 'id',
+ name : 'id',
+ dataIndex : 'id',
+ hidden : true
+ },{
+ id : 'nodeDefinition_id',
+ name : 'nodeDefinition_id',
+ dataIndex : 'nodeDefinition_id',
+ hidden : true
+ },{
+ id : 'roleId',
+ name : 'roleId',
+ dataIndex : 'roleId',
+ hidden : true
+ },{
+ id : 'userId',
+ name : 'userId',
+ dataIndex : 'userId',
+ hidden : true
+ },{
+ header : "工单号",
+ dataIndex : 'formId',
+ width : 300,
+ minWidth : 300,
+ maxWidth : 300,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ },{
+ header : "工单类型",
+ dataIndex : 'formType',
+ width : 300,
+ minWidth : 300,
+ maxWidth : 300,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ }, {
+ header : "标题",
+ dataIndex : 'title',
+ width : 150,
+ minWidth : 150,
+ maxWidth : 150,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ }, {
+ header : "待处理角色",
+ dataIndex : 'roleName',
+ width : 150,
+ minWidth : 150,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ }, {
+ header : "待处理用户",
+ dataIndex : 'userName',
+ width : 150,
+ minWidth : 150,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ }, {
+ header : "任务名称",
+ dataIndex : 'taskName',
+ width : 150,
+ minWidth : 150,
+ filterable : true,
+ filter : {
+ type : 'string'
+ }
+ }, {
+ header : "任务生成时间",
+ dataIndex : 'createTaskTime',
+ width : 150,
+ minWidth : 150,
+ filterable : true,
+ filter : {
+ type : 'date'
+ },
+ renderer : rendererTransitionTime
+ } ];
+
+ grid = Ext4.create('ExtJs.forgon4.Grid', {
+ title : entityName,
+ dataUrl : WWWROOT+ '/disinfectSystem/workFlowApprovalTaskAction!loadWorkFlowApprovalTaskList.do',
+ fields : fields,
+ columns : columns,
+ sorters : {
+ property : 'createTaskTime',
+ direction : 'DESC'
+ },
+ extraParams : {}, // 如果你要自定义参数,这里一定要先给一个空的对象,要不然会报空异常
+ showRightClick : false,
+ tbar : [{
+ text : '审批',
+ iconCls : 'btn_ext_application_edit',
+ handler : function() {
+ loadFormDataAndUpdate(grid);
+ }
+ }]
+ });
+
+ var viewport = Ext4.create('Ext4.Viewport', {
+ layout : 'fit',
+ items : grid
+ });
+});
Index: forgon-core/src/main/java/com/forgon/workflow/action/WorkFlowApprovalTaskAction.java
===================================================================
diff -u -r21790 -r21859
--- forgon-core/src/main/java/com/forgon/workflow/action/WorkFlowApprovalTaskAction.java (.../WorkFlowApprovalTaskAction.java) (revision 21790)
+++ forgon-core/src/main/java/com/forgon/workflow/action/WorkFlowApprovalTaskAction.java (.../WorkFlowApprovalTaskAction.java) (revision 21859)
@@ -13,6 +13,7 @@
import com.forgon.directory.acegi.tools.AcegiHelper;
import com.forgon.directory.vo.LoginUserData;
import com.forgon.entity.ExtJsEntity;
+import com.forgon.security.model.User;
import com.forgon.security.service.UserManager;
import com.forgon.tools.StrutsParamUtils;
import com.forgon.tools.StrutsResponseUtils;
@@ -42,42 +43,24 @@
private WorkFlowApprovalTaskManager workFlowApprovalTaskManager;
- private UserManager userManager;
+ /**
+ * 回退
+ * 1、修改工单状态
+ * 2、修改当前节点的待办任务
+ * 3、新增上一个节点的待办任务
+ */
public void rollbackWorkFlowApprovalTask(){
- LoginUserData userData= AcegiHelper.getLoginUser();
+
if(workFlowApprovalTask!=null){
+ //工号
+ //String nameCode=StrutsParamUtils.getPraramValue("nameCode", "");
int approvalResult=Integer.parseInt(StrutsParamUtils.getPraramValue("approvalResult", ""));
- workFlowApprovalTask.setHandlerId(userData.getUserId());
- workFlowApprovalTask.setHandler(userData.getUserName());
- workFlowApprovalTask.setHandleTime(new Date());
- workFlowApprovalTask.setStatus(0);
- workFlowApprovalTask.setApprovalResult(approvalResult);
- workFlowApprovalTaskManager.saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask);
-
String nodeDefinition_id=StrutsParamUtils.getPraramValue("nodeDefinition_id", "");
- //获取下一个节点
+ //获取上一个节点
NodeDefinition nodeDefinition1=workFlowManager.getLastNodeDefinitionById(nodeDefinition_id);
- WorkFlowApprovalTask workFlowApprovalTask1=new WorkFlowApprovalTask();
-
- if(nodeDefinition1!=null){ //有下一个节点
- //获取上一个节点的待审批任务
- WorkFlowApprovalTask workFlowApprovalTask2 = workFlowApprovalTaskManager.getWorkFlowApprovalTaskByRollBack(nodeDefinition_id,workFlowApprovalTask.getFormId());
-
- workFlowApprovalTask1.setTaskName(nodeDefinition1.getName());
- workFlowApprovalTask1.setNodeDefinition(nodeDefinition1);
- workFlowApprovalTask1.setFormId(workFlowApprovalTask2.getFormId());
- workFlowApprovalTask1.setFormType(workFlowApprovalTask2.getFormType());
- workFlowApprovalTask1.setTitle(workFlowApprovalTask2.getFormId()+workFlowApprovalTask2.getFormType());
- workFlowApprovalTask1.setCreateTaskTime(new Date());
- workFlowApprovalTask1.setUserId(workFlowApprovalTask2.getUserId());
- workFlowApprovalTask1.setApprovalResult(-1);
- workFlowApprovalTask1.setStatus(1);
- workFlowApprovalTaskManager.saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask1);
- }
-
-
+ workFlowApprovalTaskManager.rollbackWorkFlowApprovalTask(workFlowApprovalTask,approvalResult,nodeDefinition_id,nodeDefinition1);
StrutsResponseUtils.output(true, "保存成功");
}
}
@@ -90,12 +73,12 @@
LoginUserData userData= AcegiHelper.getLoginUser();
Long userId= userData.getUserId();
- //2、获取当前用户对应的待办任务
+ //2、获取当前用户对应的待办任务 :与userid匹配;当前用户所在role与roleid匹配
StringBuilder select=new StringBuilder();
select.append("select w.id,w.formId,w.formType,w.title,w.createTaskTime,w.taskName,w.handlerId,w.handler,w.handleTime,w.nodeDefinition_id,w.status,w.handleOpinion,w.roleId,w.userId,u.fullName userName,r.descn roleName");
select.append(" from WorkFlowApprovalTask w left join SS_USERS u on w.userId=u.id left join SS_ROLES r on r.id=w.roleId");
//2.1状态为未处理 2.2当前用户存在于userid 或者 记录存储的角色id存在于当前用户对应角色列表
- String where = " where 1=1 and w.status =1 and ( w.userId = "+userId+" or w.roleId in ( select s.ROLE_ID from SS_USER_ROLE s where s.USER_ID="+userId+" ))";
+ String where = " where 1=1 and w.status =0 and ( w.userId = "+userId+" or w.roleId in ( select s.ROLE_ID from SS_USER_ROLE s where s.USER_ID="+userId+" ))";
ExtJsEntity entity = ExtJsUtil.buildSQLEntity(select.toString(), where, "");
JSONObject result = extGridUtils.getPagedResult(entity);
StrutsResponseUtils.output(result);
@@ -127,12 +110,11 @@
JSONObject result = extGridUtils.getPagedResult(entity);
StrutsResponseUtils.output(result);*/
-
String id = StrutsParamUtils.getPraramValue("id", "");//获取单号id
- JSONArray jSONArray = workFlowApprovalTaskManager.getAllUserByWorkFlowApprovalTaskId(id);
+ String nodeDefinition_id = StrutsParamUtils.getPraramValue("nodeDefinition_id", "");
+ JSONArray jSONArray = workFlowApprovalTaskManager.getAllUserByWorkFlowApprovalTaskId(id,nodeDefinition_id);
StrutsResponseUtils.output(jSONArray);
-
//select w.userId from WorkFlowApprovalTask w where w.id=1
//空的话,则执行以下查询
/*select ur.USER_ID roleUserId,u.fullName from SS_USER_ROLE ur ,SS_USERS u where ur.ROLE_ID in (select w.roleId from WorkFlowApprovalTask w where w.id=1) and ur.USER_ID=u.id
@@ -164,23 +146,6 @@
}
/**
- * 获取当前申请单下一个的节点
- * 获取当前申请单的节点的序号,+1 --判断是否已经结束
- */
- public void loadNextNodeDefinitionById(){
- String nodeDefinitionId = StrutsParamUtils.getPraramValue("nodeDefinitionId", "");//获取单号id
- String select="select allowDisagree,allowRollback from NodeDefinition ";
- String where=" where id=" + nodeDefinitionId;
- ExtJsEntity entity = ExtJsUtil.buildSQLEntity(select.toString(), where, "");
- JSONObject result = extGridUtils.getPagedResult(entity);
- StrutsResponseUtils.output(result);
- }
-
- public void loadNextNodeDefinitionIdById(){
-
- }
-
- /**
* 获取当前申请单待处理的节点
* 此节点是否为最后一个节点,若是,则提供给前端一个标志,给申请单者点击提交
*/
@@ -194,7 +159,7 @@
}
/**
- * 查看审批记录:除了废弃和未处理,其他都显示
+ * 查看审批记录
*/
public void loadWorkFlowApprovalTaskRecordList(){
String formId = StrutsParamUtils.getPraramValue("formId", "");//获取单号id
@@ -203,14 +168,31 @@
select.append("select w.id,w.formId,w.formType,w.approvalResult,w.title,w.createTaskTime,w.taskName,w.handlerId,w.handler,w.handleTime,w.status,w.handleOpinion,w.roleId,w.userId,u.fullName userName,r.descn roleName");
select.append(" from WorkFlowApprovalTask w left join SS_USERS u on w.userId=u.id left join SS_ROLES r on r.id=w.roleId");
- String where = " where 1=1 and w.status =0";
- if(!"".equals(formId))
- where+=" and w.formId= "+formId ;
+ String where = " where 1=1 ";
+ if(!StringUtils.isBlank(formId))
+ where+=" and w.formId= "+formId;
+ /* if(!"".equals(formId))
+ where+=" and w.formId= "+formId ;*/
ExtJsEntity entity = ExtJsUtil.buildSQLEntity(select.toString(), where, "");
JSONObject result = extGridUtils.getPagedResult(entity);
StrutsResponseUtils.output(result);
}
+ public String getUser(){
+ try {
+ StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8");
+ org.json.JSONObject jsonObject = new org.json.JSONObject();
+ jsonObject.put("success", true);
+ jsonObject.put("data", "");
+
+ String jsonString = jsonObject.toString();
+ StrutsParamUtils.getResponse().getWriter().println(jsonString);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
/**
* 审核不通过
*/
@@ -221,7 +203,7 @@
workFlowApprovalTask.setHandlerId(userData.getUserId());
workFlowApprovalTask.setHandler(userData.getUserName());
workFlowApprovalTask.setHandleTime(new Date());
- workFlowApprovalTask.setStatus(0);
+ workFlowApprovalTask.setStatus(1);
workFlowApprovalTask.setApprovalResult(approvalResult);
workFlowApprovalTaskManager.saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask);
StrutsResponseUtils.output(true, "保存成功");
@@ -232,7 +214,6 @@
* 审核通过
*/
public void saveOrUpdateWorkFlowApprovalTask(){
- LoginUserData userData= AcegiHelper.getLoginUser();
//当前节点
String nodeDefinition_id=StrutsParamUtils.getPraramValue("nodeDefinition_id", "");
//获取待处理角色 待处理用户,分别生成相应的待办任务:1先修改档期内待办任务 2再增加一条待办任务
@@ -242,37 +223,15 @@
String handleOpinion = StrutsParamUtils.getPraramValue("handleOpinion", "");
NodeDefinition nodeDefinition=workFlowManager.getNodeDefinition(nodeDefinition_id);
- workFlowApprovalTask.setNodeDefinition(nodeDefinition);
- workFlowApprovalTask.setHandlerId(userData.getUserId());
- workFlowApprovalTask.setHandler(userData.getUserName());
- workFlowApprovalTask.setHandleTime(new Date());
- workFlowApprovalTask.setHandleOpinion(handleOpinion);
- workFlowApprovalTask.setApprovalResult(approvalResult);
- workFlowApprovalTask.setStatus(0);
- workFlowApprovalTaskManager.saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask);
-
-
- WorkFlowApprovalTask workFlowApprovalTask1=new WorkFlowApprovalTask();
- long userId=0;
- if(!"".equals(StrutsParamUtils.getPraramValue("userId", "")))
- userId=Long.parseLong(StrutsParamUtils.getPraramValue("userId", ""));
- String formType = StrutsParamUtils.getPraramValue("formType", "");
- long formId=Long.parseLong(StrutsParamUtils.getPraramValue("formId", ""));
-
//获取下一个节点
NodeDefinition nodeDefinition1=workFlowManager.getNextNodeDefinitionById(nodeDefinition_id);
- if(nodeDefinition1!=null){ //有下一个节点
- workFlowApprovalTask1.setTaskName(nodeDefinition1.getName());
- workFlowApprovalTask1.setNodeDefinition(nodeDefinition1);
- workFlowApprovalTask1.setFormId(formId);
- workFlowApprovalTask1.setFormType(formType);
- workFlowApprovalTask1.setTitle(formId+formType);
- workFlowApprovalTask1.setCreateTaskTime(new Date());
- workFlowApprovalTask1.setUserId(userId);
- workFlowApprovalTask1.setApprovalResult(-1);
- workFlowApprovalTask1.setStatus(1);
- workFlowApprovalTaskManager.saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask1);
- }
+ long userID=0;
+ if(!"".equals(StrutsParamUtils.getPraramValue("userID", "")))
+ userID=Long.parseLong(StrutsParamUtils.getPraramValue("userID", ""));
+ String formType = StrutsParamUtils.getPraramValue("formType", "");
+ long formId=Long.parseLong(StrutsParamUtils.getPraramValue("formId", ""));
+ workFlowApprovalTaskManager.saveOrUpdateWorkFlowApprovalTask(workFlowApprovalTask,nodeDefinition,nodeDefinition1,
+ approvalResult,handleOpinion,userID,formType,formId);
StrutsResponseUtils.output(true, "保存成功");
}
}
@@ -294,9 +253,6 @@
this.workFlowApprovalTaskManager = workFlowApprovalTaskManager;
}
- public void setUserManager(UserManager userManager) {
- this.userManager = userManager;
- }
@Override
public void prepare() throws Exception {
Index: ssts-web/src/main/webapp/systemmanage/workFlow/workFlowApprovalTaskForm.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/systemmanage/workFlow/workFlowApprovalTaskForm.js (revision 0)
+++ ssts-web/src/main/webapp/systemmanage/workFlow/workFlowApprovalTaskForm.js (revision 21859)
@@ -0,0 +1,493 @@
+var approvalFormObj;
+var approvalWindowObj;
+var formObj1;
+var windowObj1;
+var formObj2;
+var windowObj2;
+var formObj4;
+var windowObj4;
+
+function rendererTransitionTime(value, metaData, record, rowIndex, colIndex,
+ store, view) {
+ if (value) {
+ return Ext4.Date.format(new Date(value.time), 'Y-m-d H:i:s');
+ } else {
+ return '';
+ }
+}
+function addAndEditWorkFlowApprovalTask(id, nodeDefinition_id,formId,formType) {
+ var aStore=null;
+ Ext4.Ajax.request({
+ async:false,
+ //scope:this,
+ url : WWWROOT + '/disinfectSystem/workFlowApprovalTaskAction!loadNodeDefinitionById.do',
+ params : {nodeDefinitionId : nodeDefinition_id},
+ success : function(response, options) {
+ var result = Ext4.decode(response.responseText, true); // 此处返回的有可能不是json字符串,因为注销之后,会被acegi拦截,返回html
+ if(result && result.total > 0){
+ aStore=result.rows;
+ }
+ }
+ });
+ allowStore=new Ext4.data.JsonStore({
+ data:aStore,
+ fields : [ {name:'allowDisagree', type: 'boolean'}, {name:'allowRollback', type:'boolean'} ],
+ //scope:this,
+ autoLoad:true
+ });
+
+ var workFlowApprovalTaskStore = Ext4.create('Ext.data.Store',{
+ fields : [ "id", 'taskName','handlerId','status','approvalResult','handleOpinion' ],
+ autoLoad : true,
+ proxy : {
+ type : 'ajax',
+ extraParams : {id:id},
+ url : WWWROOT
+ + '/disinfectSystem/workFlowApprovalTaskAction!getWorkFlowApprovalTask.do',
+ reader : {
+ root : "rows"
+ }
+ }
+ });
+
+ var formIframe = Ext4.create('Ext.Component',{
+ html : '',
+ height : 450
+ });
+
+
+ function callbackFlag(){
+ var sub = document.getElementById("formIframe").contentWindow;
+ if(!sub) return false;
+ return sub.submitSaveExpensiveGoodsApplication();
+ };
+
+ //绑定该有的值到formObj1中
+ function saveHandleOpinion(){
+ //获取提交按钮,模仿点击
+ /* var a0 =sub.document.getElementById("saveBtn").click();//onclick()
+ alert(a0);//不能同步
+*/ //函数 submitSaveExpensiveGoodsApplication
+ var a0=false;
+ a0=callbackFlag();
+ alert(a0);
+
+ /*Ext4.Ajax.request({
+ async:false,
+ url : WWWROOT + '/disinfectSystem/workFlowApprovalTaskAction!getUser.do',
+ success : function(response, options) {
+ var result = Ext4.decode(response.responseText);
+ if (result.success) {
+ formObj1.getForm().submit({
+ clientValidation : true,
+ url : WWWROOT + '/disinfectSystem/workFlowApprovalTaskAction!saveOrUpdateWorkFlowApprovalTask.do',
+ success : function(form, action) {
+ if (action.result.message) {
+ showResult(action.result.message);
+ }
+ grid.reloadData();
+ windowObj1.close();
+ approvalWindowObj.close();
+ },
+ failure : function(form, action) {
+ if (action.result.message) {
+ showResult(action.result.message);
+ } else {
+ showResult("审批失败");
+ }
+ }
+ });
+ } else {
+ showResult('失败!');
+ }
+ },
+ failure : function(response, options) {
+ showResult('对不起!服务器正忙,删除失败');
+ }
+ });*/
+ }
+
+ function updateHandleOpinion(){
+ formObj2.getForm().submit({
+ clientValidation : true,
+ url : WWWROOT + '/disinfectSystem/workFlowApprovalTaskAction!failWorkFlowApprovalTask.do',
+ success : function(form, action) {
+ if (action.result.message) {
+ showResult(action.result.message);
+ }
+ grid.reloadData();
+ windowObj2.close();
+ approvalWindowObj.close();
+ },
+ failure : function(form, action) {
+ if (action.result.message) {
+ showResult(action.result.message);
+ } else {
+ showResult("审批失败");
+ }
+ }
+ });
+ }
+
+ function rollBackHandleOpinion(){
+ formObj4.getForm().submit({
+ clientValidation : true,
+ url : WWWROOT + '/disinfectSystem/workFlowApprovalTaskAction!rollbackWorkFlowApprovalTask.do',
+ success : function(form, action) {
+ if (action.result.message) {
+ showResult(action.result.message);
+ }
+ grid.reloadData();
+ windowObj4.close();
+ approvalWindowObj.close();
+ },
+ failure : function(form, action) {
+ if (action.result.message) {
+ showResult(action.result.message);
+ } else {
+ showResult("审批失败");
+ }
+ }
+ });
+ }
+
+ function Fail(){
+ formObj2= Ext4.create('Ext4.form.Panel', {
+ layout : 'column',
+ frame : true,
+ border : 0,
+ labelSeparator : ': ',
+ bodyPadding : '5 5 0',
+ autoScroll : true,
+ buttonAlign : 'center',
+ buttons : [ {
+ id : 'save',
+ name : 'save',
+ text : '保存',
+ handler : function() {
+ updateHandleOpinion();
+ }
+ }, {
+ text : '取消',
+ handler : function() {
+ windowObj2.close();
+ }
+ } ],
+ fieldDefaults : {
+ labelAlign : 'right',
+ labelWidth : 100
+ },
+ renderTo: document.body,
+ items: [
+ {
+ xtype: 'hiddenfield',
+ name: 'id',
+ value: id
+ },{
+ xtype: 'hiddenfield',
+ name: 'nodeDefinition_id',
+ value: nodeDefinition_id
+ }, {
+ xtype: 'hiddenfield',
+ name: 'approvalResult',
+ value: 0
+ }, {
+ xtype: 'hiddenfield',
+ name: 'formType',
+ value: formType
+ }, {
+ xtype: 'hiddenfield',
+ name: 'formId',
+ value: formId
+ },
+ {
+ xtype : 'textfield',
+ border : 0,
+ fieldLabel : '任务名称',
+ name : "taskName",
+ id : "taskName",
+ value : workFlowApprovalTaskStore.getAt(0).get('taskName'),
+ readOnly : true,
+ flex: 1
+ },
+ {
+ xtype : 'textareafield',
+ border: 0,
+ fieldLabel : '处理意见',
+ name : "handleOpinion",
+ id : "handleOpinion",
+ flex: 1
+ }]
+ });
+
+ windowObj2 = Ext4.create('Ext4.window.Window', {
+ layout : 'fit',
+ title : '处理待办任务信息',
+ width : 320,
+ height : 280,
+ resizable : false,
+ modal : true,
+ border : false,
+ plain : true,
+ items : formObj2
+ });
+ windowObj2.show();
+ }
+
+ function Pass(){
+ var taskUserStore = Ext4.create('Ext.data.Store',{
+ fields : [ 'fullName', 'userId' ],
+ autoLoad : true,
+ proxy : {
+ type : 'ajax',
+ extraParams : {id:id,nodeDefinition_id:nodeDefinition_id},
+ url : WWWROOT+ '/disinfectSystem/workFlowApprovalTaskAction!getAllUserByWorkFlowApprovalTaskId.do',
+ reader : {
+ root : "rows"
+ }
+ }
+ });
+ formObj1= Ext4.create('Ext4.form.Panel', {
+ layout : 'column',
+ frame : true,
+ border : 0,
+ labelSeparator : ': ',
+ bodyPadding : '5 5 0',
+ autoScroll : true,
+ buttonAlign : 'center',
+ buttons : [ {
+ id : 'save',
+ name : 'save',
+ text : '保存',
+ handler : function() {
+ saveHandleOpinion();
+ }
+ }, {
+ text : '取消',
+ handler : function() {
+ windowObj1.close();
+ }
+ } ],
+ fieldDefaults : {
+ labelAlign : 'right',
+ labelWidth : 100
+ },
+ renderTo: document.body,
+ items: [
+ {
+ xtype: 'hiddenfield',
+ name: 'id',
+ value: id
+ },{
+ xtype: 'hiddenfield',
+ name: 'nodeDefinition_id',
+ value: nodeDefinition_id
+ }, {
+ xtype: 'hiddenfield',
+ name: 'approvalResult',
+ value: 1
+ }, {
+ xtype: 'hiddenfield',
+ name: 'formType',
+ value: formType
+ }, {
+ xtype: 'hiddenfield',
+ name: 'formId',
+ value: formId
+ },
+ {
+ xtype : 'textfield',
+ border : 0,
+ fieldLabel : '任务名称',
+ name : "taskName",
+ id : "taskName",
+ value : workFlowApprovalTaskStore.getAt(0).get('taskName'),
+ readOnly : true,
+ flex: 1
+ },
+ {
+ xtype : 'textareafield',
+ border: 0,
+ fieldLabel : '处理意见',
+ name : "handleOpinion",
+ id : "handleOpinion",
+ flex: 1
+ },{
+ xtype : 'combo',
+ fieldLabel: '下一个执行人',
+ displayField: 'fullName',
+ valueField : 'userId',
+ labelWidth: 120,
+ store: taskUserStore,
+ queryMode: 'local',
+ name : "userID", //name属性适合form submit()
+ typeAhead: true,
+ hidden:taskUserStore.getCount()==0?true:false
+ }]
+ });
+
+ windowObj1 = Ext4.create('Ext4.window.Window', {
+ id:'passObj',
+ layout : 'fit',
+ title : '处理待办任务信息',
+ width : 320,
+ height : 280,
+ resizable : false,
+ modal : true,
+ border : false,
+ plain : true,
+ items : formObj1
+ });
+ windowObj1.show();
+ }
+ function RollBack(){
+ formObj4= Ext4.create('Ext4.form.Panel', {
+ layout : 'column',
+ frame : true,
+ border : 0,
+ labelSeparator : ': ',
+ bodyPadding : '5 5 0',
+ autoScroll : true,
+ buttonAlign : 'center',
+ buttons : [ {
+ id : 'save',
+ name : 'save',
+ text : '保存',
+ handler : function() {
+ rollBackHandleOpinion();
+ }
+ }, {
+ text : '取消',
+ handler : function() {
+ windowObj4.close();
+ }
+ } ],
+ fieldDefaults : {
+ labelAlign : 'right',
+ labelWidth : 100
+ },
+ renderTo: document.body,
+ items: [
+ {
+ xtype: 'hiddenfield',
+ name: 'id',
+ value: id
+ },{
+ xtype: 'hiddenfield',
+ name: 'nodeDefinition_id',
+ value: nodeDefinition_id
+ }, {
+ xtype: 'hiddenfield',
+ name: 'approvalResult',
+ value: 0
+ }, {
+ xtype: 'hiddenfield',
+ name: 'formType',
+ value: formType
+ }, {
+ xtype: 'hiddenfield',
+ name: 'formId',
+ value: formId
+ },
+ {
+ xtype : 'textfield',
+ border : 0,
+ fieldLabel : '任务名称',
+ name : "taskName",
+ id : "taskName",
+ value : workFlowApprovalTaskStore.getAt(0).get('taskName'),
+ readOnly : true,
+ flex: 1
+ },
+ {
+ xtype : 'textareafield',
+ border: 0,
+ fieldLabel : '处理意见',
+ name : "handleOpinion",
+ id : "handleOpinion",
+ flex: 1
+ }]
+ });
+
+ windowObj4 = Ext4.create('Ext4.window.Window', {
+ layout : 'fit',
+ title : '处理回滚信息',
+ width : 320,
+ height : 280,
+ resizable : false,
+ modal : true,
+ border : false,
+ plain : true,
+ items : formObj4
+ });
+ windowObj4.show();
+ }
+
+ approvalFormObj = Ext4.create('Ext4.form.Panel', {
+ layout : 'vbox',
+ frame : true,
+ border : 0,
+ labelSeparator : ': ',
+ bodyPadding : '5 5 0',
+ autoScroll : true,
+ buttonAlign : 'center',
+ buttons : [{
+ text : '审核通过',
+ iconCls : 'btn_ext_application_edit',
+ handler : function() {
+ Pass();
+ }
+ },{
+ text : '审核不通过',
+ iconCls : 'btn_ext_application_edit',
+ hidden: allowStore.getAt(0).get('allowDisagree')?true:false,
+ handler : function() {
+ Fail();
+ }
+ }, {
+ text : '回退',
+ iconCls : 'btn_ext_application_edit',
+ hidden:allowStore.getAt(0).get('allowRollback')?true:false,
+ handler : function() {
+ RollBack();
+ }
+ }, {
+ text : '查看审批记录',
+ iconCls : 'btn_ext_application_edit',
+ handler : function() {
+ ApprovalRecord(formId);
+ }
+ }, {
+ text : '取消',
+ handler : function() {
+ approvalWindowObj.close();
+ }
+ } ],
+ fieldDefaults : {
+ labelAlign : 'right',
+ labelWidth : 80
+ },
+ items : [ {
+ xtype : 'container',
+ flex : 1,
+ width : '100%',
+ layout : 'fit',
+ items : formIframe
+ }]
+ });
+
+ approvalWindowObj = Ext4.create('Ext4.window.Window', {
+ id:'approvalWindowObj',
+ layout : 'fit',
+ title : '审批信息',
+ width : 1000,
+ height : 500,
+ resizable : false,
+ modal : true,
+ border : false,
+ plain : true,
+ items : approvalFormObj
+ });
+ approvalWindowObj.show();
+
+}
\ No newline at end of file