Explorar el Código

Merge remote-tracking branch 'origin/master'

xs hace 5 años
padre
commit
2027e3c18f

+ 46 - 16
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/ConstructionController.java

@@ -10,17 +10,22 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.act.service.ActProcessService;
 import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.act.utils.ProcessDefCache;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction;
 import com.jeeplus.modules.sg.managementcenter.activiti.service.ConstructionService;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.test.activiti.entity.OALeave;
 import com.jeeplus.modules.test.activiti.service.OALeaveService;
-import org.activiti.engine.ProcessEngine;
-import org.activiti.engine.ProcessEngines;
-import org.activiti.engine.TaskService;
+import org.activiti.engine.*;
+import org.activiti.engine.delegate.Expression;
 import org.activiti.engine.impl.RepositoryServiceImpl;
+import org.activiti.engine.impl.TaskServiceImpl;
+import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
 import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity;
+import org.activiti.engine.impl.pvm.PvmActivity;
+import org.activiti.engine.impl.pvm.PvmTransition;
 import org.activiti.engine.impl.pvm.process.ActivityImpl;
+import org.activiti.engine.impl.task.TaskDefinition;
 import org.activiti.engine.repository.ProcessDefinition;
 import org.activiti.engine.task.Task;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +35,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * 施工交底Controller
@@ -47,7 +53,9 @@ public class ConstructionController extends BaseController {
 	private ActProcessService actProcessService;
 	@Autowired
 	private ActTaskService actTaskService;
-	
+	@Autowired
+	private RuntimeService runtimeService;
+
 	@ModelAttribute
 	public Construction get(@RequestParam(required=false) String id) {
 		Construction entity = null;
@@ -68,36 +76,59 @@ public class ConstructionController extends BaseController {
 	 */
 	@RequestMapping(value = "form/{mode}")
 	public String form(@PathVariable String mode, Construction construction, Model model) {
-/*		String proId = construction.getAct().getProcDefId();
+		String proId = construction.getAct().getProcDefId();
 		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
 		TaskService taskService = processEngine.getTaskService();
 		//根据assignee(代理人)查询任务
-		List<Task> tasks = taskService.createTaskQuery().processDefinitionId(proId).list();*//*taskAssignee(proDefId).list();*//*
-
-		ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl)rs).getDeployedProcessDefinition(construction.getAct().getProcDefId());
-		List<ActivityImpl> activitiList = def.getActivities(); //rs是指RepositoryService的实例
-
-
+		List<Task> tasks = taskService.createTaskQuery().processDefinitionId(proId).list();
+		RepositoryService rs = processEngine.getRepositoryService();
+//		List processDefinitions = rs.createProcessDefinitionQuery().list();
+		String procDefId = construction.getAct().getProcDefId();
+		ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl)rs).getProcessDefinition(procDefId);
+//		List<ActivityImpl> activitiList = def.getActivities(); //rs是指RepositoryService的实例
 		int size = tasks.size();
 		for (int i = 0; i < size; i++) {
 			Task task = tasks.get(i);
-
 		}
 		//首次运行的时候这个没有输出,因为第一次运行的时候扫描act_ru_task的表里面是空的,但第一次运行完成之后里面会添加一条记录,之后每次运行里面都会添加一条记录
 		for (Task task : tasks) {
+			ActivityImpl activityImpl=def.findActivity(task.getTaskDefinitionKey());
+			TaskDefinition taskDef = (TaskDefinition)activityImpl.getProperties().get("taskDefinition");
+			Set<Expression> roleCodes = taskDef.getCandidateGroupIdExpressions();//候选组
 			System.out.println("taskId:" + task.getId() +
 					",taskName:" + task.getName() +
 					",assignee:" + task.getAssignee() +
 					",createTime:" + task.getCreateTime() +
-					",getTaskLocalVariables:" + task.getTaskLocalVariables());
-		}*/
+					",getTaskLocalVariables:" + task.getProcessVariables()+
+					",roleCodes:"+roleCodes.toString());
+		}
 		model.addAttribute("construction", construction);
+//		model.addAttribute("roleCodes");
 		if("add".equals(mode) || "edit".equals(mode)){
 			return "modules/sg/managementcenter/activiti/constructionForm";
 		}else{//audit
 			return "modules/sg/managementcenter/activiti/constructionAudit";
 		}
-	}
+/*		String procInstanceId = construction.getAct().getProcDefId();
+		ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl)repositoryService).getDeployedProcessDefinition(procInstanceId);
+		List<ActivityImpl> activitiList = def.getActivities();*/
+
+/*		for(ActivityImpl act : activitiList) {
+				System.out.println("当前任务:"+act.getProperty("name")); //输出某个节点的某种属性
+				List<PvmTransition> outTransitions = act.getOutgoingTransitions();//获取从某个节点出来的所有线路
+				for(PvmTransition tr:outTransitions){
+					PvmActivity ac = tr.getDestination(); //获取线路的终点节点
+					System.out.println("下一步任务任务:"+ac.getProperty("name"));
+				}*/
+//			System.out.println("活动节点:" + act.getProperty("name") + "," + act.getId()+act.getProperty(""));
+		/*		String excId = task.getExecutionId();
+		ExecutionEntity execution = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(excId).singleResult();
+		String activitiId = execution.getActivityId();*/
+		}
+
+
+
+
 
 	/**
 	 * 保存请假申请
@@ -143,7 +174,6 @@ public class ConstructionController extends BaseController {
 			j.setMsg("提交成功!");
 			j.getBody().put("targetUrl",  "/act/task/todo/");
 		}
-
 		return j;
 	}
 

+ 3 - 17
src/main/java/com/jeeplus/modules/sys/web/UserController.java

@@ -83,27 +83,13 @@ public class UserController extends BaseController {
 
 	@RequiresPermissions("sys:user:index")
 	@RequestMapping(value = "userSelect")
-	public String userSelect(Model model, HttpServletRequest request) {
+	public String userSelect(Model model, HttpServletRequest request,String roleName) {
+		String roleName1 = request.getParameter("roleName");
+		model.addAttribute("roleName",roleName);
 		return "modules/common/userSelect";
 	}
 
 
-    @RequiresPermissions("sys:user:index")
-    @RequestMapping(value = "myUserSelect")
-    public String myUserSelect(Model model, HttpServletRequest request) {
-        String office = (String)request.getParameter("office");
-        model.addAttribute("office", office);
-        return "modules/common/myUserSelect";
-    }
-
-    @RequiresPermissions("sys:user:index")
-    @ResponseBody
-    @RequestMapping(value = {"myList", ""})
-    public Map<String, Object> myList(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
-        Page<User> page = systemService.findUser(new Page<User>(request, response), user);
-        return getBootstrapData(page);
-    }
-
 
 	@RequiresPermissions("sys:user:index")
 	@ResponseBody

+ 6 - 3
src/main/webapp/WEB-INF/tags/sys/userselect.tag

@@ -11,6 +11,7 @@
 <%@ attribute name="hideBtn" type="java.lang.Boolean" required="false" description="是否显示按钮"%>
 <%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled"%>
 <%@ attribute name="dataMsgRequired" type="java.lang.String" required="false" description=""%>
+<%@ attribute name="roleName" type="java.lang.String" required="false" description="角色名称"%>
 	<input id="${id}Id" name="${name}" class="${cssClass} form-control" type="hidden" value="${value}"/>
 	<div class="input-group" style="width:100%">
 		<input id="${id}Name" name="${labelName}" ${allowInput?'':'readonly="readonly"'}  type="text"  value="${labelValue}" data-msg-required="${dataMsgRequired}"
@@ -20,11 +21,14 @@
 	              </button>
 	             <button type="button" id="${id}DelButton" class="close" data-dismiss="alert" style="position: absolute; top: 5px; right: 53px; z-index: 999; display: block;">×</button>
        		 </span>
-
+		<input id="roleName" type="hidden" value="${roleName}">
     </div>
 	 <label id="${id}Name-error" class="error" for="${id}Name" style="display:none"></label>
 <script type="text/javascript">
 	$("#${id}Button, #${id}Name").click(function(){
+		var roleName = $("#roleName").val();
+		console.log(roleName);
+		alert(roleName);
 		// 是否限制选择,如果限制,设置为disabled
 		if ($("#${id}Button").hasClass("disabled")){
 			return true;
@@ -34,8 +38,7 @@
 			$("#${id}Id").val(ids.replace(/u_/ig,""));
 			$("#${id}Name").val(names);
 			$("#${id}Name").focus();
-		})
-	
+		},roleName)
 	});
 	
 	$("#${id}DelButton").click(function(){

+ 2 - 6
src/main/webapp/static/common/js/jeeplus.js

@@ -198,14 +198,14 @@
 	   },
 	   
 	   /**用户选择框**/
-        openUserSelectDialog:function(isMultiSelect, yesFuc){
+        openUserSelectDialog:function(isMultiSelect, yesFuc,roleName){
             top.layer.open({
                 type: 2,
                 area: ['900px', '560px'],
                 title:"选择用户",
                 auto:true,
                 maxmin: true, //开启最大化最小化按钮
-                content: ctx+"/sys/user/userSelect?isMultiSelect="+isMultiSelect,
+                content: ctx+"/sys/user/userSelect?isMultiSelect="+isMultiSelect+"&roleName="+roleName,
                 btn: ['确定', '关闭'],
                 yes: function(index, layero){
                     var ids = layero.find("iframe")[0].contentWindow.getIdSelections();
@@ -217,7 +217,6 @@
                     }
                     // 执行保存
                     yesFuc(ids.join(","), names.join(","), loginNames.join(","));
-
                     top.layer.close(index);
                 },
                 cancel: function(index){
@@ -227,9 +226,6 @@
             });
         },
 
-        /**新用户框**/
-
-
 
         /**角色选择框**/
         openRoleSelectDialog:function(isMultiSelect, yesFuc){

+ 1 - 0
src/main/webapp/webpage/modules/common/userSelect.jsp

@@ -187,6 +187,7 @@
 					<form id="searchForm" class="form form-horizontal well clearfix" >
 					    <input type="hidden" id="companyId" name="company.id"/>
 					     <input type="hidden" id="officeId" name="office.id"/>
+						<input type="text" id="roleName" name="roleName" value="${roleName}">
 					    <div class="col-sm-4">
 					    	<label class="label-item single-overflow pull-left" title="登录名:">登录名:</label>
 					   		<input type="text" name="loginName" maxlength="100"  class=" form-control"/>

+ 1 - 1
src/main/webapp/webpage/modules/sg/managementcenter/activiti/constructionForm.jsp

@@ -129,7 +129,7 @@
 								</td>
 								<td class="width-15 active"><label class="pull-right"><font color="red">*</font>归属用户:</label></td>
 								<td class="width-35">
-									<sys:userselect id="tuser" name="tuser.id" value="${construction.tuser.id}" labelName="tuser.name" labelValue="${construction.tuser.name}"
+									<sys:userselect roleName="项目经理" id="tuser" name="tuser.id" value="${construction.tuser.id}" labelName="tuser.name" labelValue="${construction.tuser.name}"
 													cssClass="form-control required"/>
 								</td>
 							</tr>