Просмотр исходного кода

采购审批工作流继续摸索中

wuxw лет назад: 6
Родитель
Сommit
5b7429dafd

+ 5 - 2
CommonService/src/main/java/com/java110/common/activity/ResourceEntryListener.java

@@ -1,9 +1,12 @@
-package com.java110.common.activity;
+package com.java110.common.activity.resourceEnter;
 
 import org.activiti.engine.delegate.DelegateTask;
 import org.activiti.engine.delegate.TaskListener;
 
-public class ResourceEntryListener implements TaskListener {
+/**
+ * 采购人员采购
+ */
+public class ResourceEnterToBuyerListener implements TaskListener {
     @Override
     public void notify(DelegateTask delegateTask) {
 

+ 26 - 0
CommonService/src/main/java/com/java110/common/activity/resourceEnter/ResourceEnterToDepartmentListener.java

@@ -0,0 +1,26 @@
+package com.java110.common.activity.resourceEnter;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.entity.audit.AuditUser;
+import org.activiti.engine.delegate.DelegateTask;
+import org.activiti.engine.delegate.TaskListener;
+
+/**
+ * 部门领导 监听类
+ */
+public class ResourceEnterToDepartmentListener implements TaskListener {
+    @Override
+    public void notify(DelegateTask delegateTask) {
+
+        //查询相应的相应审核人员
+
+        System.out.println("打印 对象 delegateTask:" + JSONObject.toJSONString(delegateTask));
+
+        AuditUser user = new AuditUser();
+        user.setUserId("1234567890");
+        user.setUserName("吴学文");
+        user.setAuditLink("department");
+        user.setObjCode("ResourceEnter");
+        delegateTask.setVariable(user.getUserId(), user);
+    }
+}

+ 14 - 0
CommonService/src/main/java/com/java110/common/activity/resourceEnter/ResourceEnterToFinanceListener.java

@@ -0,0 +1,14 @@
+package com.java110.common.activity.resourceEnter;
+
+import org.activiti.engine.delegate.DelegateTask;
+import org.activiti.engine.delegate.TaskListener;
+
+/**
+ * 财务审核 监听类
+ */
+public class ResourceEnterToFinanceListener implements TaskListener {
+    @Override
+    public void notify(DelegateTask delegateTask) {
+
+    }
+}

+ 43 - 75
CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java

@@ -1,17 +1,23 @@
 package com.java110.common.smo.impl;
 
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.smo.common.IResourceEntryStoreInnerServiceSMO;
+import com.java110.dto.resourceStore.ResourceOrderDto;
+import com.java110.entity.audit.AuditUser;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
+import org.activiti.engine.task.TaskQuery;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -35,95 +41,57 @@ public class ResourceEntryStoreInnerServiceSMOImpl extends BaseServiceSMO implem
      *
      * @return
      */
-    public String startProcess() {
+    public ResourceOrderDto startProcess(@RequestBody ResourceOrderDto resourceOrderDto) {
         //将信息加入map,以便传入流程中
         Map<String, Object> variables = new HashMap<String, Object>();
-        variables.put("employeeName", "廉斌");
-        variables.put("day", 10);
+        variables.put("resourceOrderDto", resourceOrderDto);
         //开启流程
         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("resourceEntry", variables);
         //将得到的实例流程id值赋给之前设置的变量
         String processInstanceId = processInstance.getId();
-        System.out.println("流程开启成功.......实例流程id:" + processInstanceId);
+        // System.out.println("流程开启成功.......实例流程id:" + processInstanceId);
 
-        return processInstanceId;
+        resourceOrderDto.setProcessInstanceId(processInstanceId);
+
+        return resourceOrderDto;
     }
 
-    public void getTaskAndComplete(String processInstanceId) {
-        //获取taskservice实例
+    /**
+     * 获取用户任务
+     *
+     * @param user 用户信息
+     */
+    public List<ResourceOrderDto> getUserTasks(@RequestBody AuditUser user) {
         TaskService taskService = processEngine.getTaskService();
-
-        //开始进行流程
-        while (this.processEngine.getRuntimeService()
-                .createProcessInstanceQuery()//获取查询对象
-                .processInstanceId(processInstanceId)//根据id查询流程实例
-                .singleResult()//获取查询结果,如果为空,说明这个流程已经执行完毕,否则,获取任务并执行
-                != null) {
-            Task task = taskService.createTaskQuery()//创建查询对象
-                    .processInstanceId(processInstanceId)//通过流程实例id来查询当前任务
-                    .singleResult();//获取单个查询结果
-            String taskName = task.getName();
-            if (taskName.equals("StartEvent")) {//职员节点
-                completeEmployeeTask(task);
-            } else if (taskName.equals("departmentManager")) {//领导节点
-                completeLeaderTask(task);
-            } else {//经理节点
-                completeJingliTask(task);
-            }
+        TaskQuery query = taskService.createTaskQuery();
+        query.taskAssignee(user.getUserId());
+        query.orderByTaskCreateTime().desc();
+        List<Task> list = query.list();
+
+        List<ResourceOrderDto> resourceOrderDtos = new ArrayList<>();
+
+        for (Task task : list) {
+            String id = task.getId();
+            //System.out.println("tasks:" + JSONObject.toJSONString(task));
+            ResourceOrderDto resourceOrderDto = (ResourceOrderDto) taskService.getVariable(id, "resourceOrderDto");
+            resourceOrderDto.setTaskId(id);
+            resourceOrderDtos.add(resourceOrderDto);
         }
-
-        System.out.println("审核结束..........");
-    }
-
-
-    //职员提交申请
-    public void completeEmployeeTask(Task task) {
-        //获取任务id
-        String taskId = task.getId();
-
-        //完成任务
-        this.processEngine.getTaskService().complete(taskId);
-        System.out.println("职员已经提交申请.......");
-
-    }
-
-    //领导审批
-    public void completeLeaderTask(Task task) {
-        //获取任务id
-        String taskId = task.getId();
-
-        //领导意见
-        Map<String, Object> variables = new HashMap<String, Object>();
-        //variables.put("day",4);
-        variables.put("leaderResult", 1);
-        //完成任务
-        this.processEngine.getTaskService().complete(taskId, variables);
-        System.out.println("领导审核完毕........");
-
-    }
-
-    //经理审批
-    public void completeJingliTask(Task task) {
-        //获取任务id
-        String taskId = task.getId();
-        String name = task.getName();
-        //经理意见
-        Map<String, Object> variables = new HashMap<String, Object>();
-        variables.put("result", 0);
-        //完成任务
-        this.processEngine.getTaskService().complete(taskId, variables);
-        System.out.println("经理审核完毕........,审核经理:" + name);
-
+        return resourceOrderDtos;
     }
 
     /**
+     * 审核 当前任务
      *
-     * <p>描述: 根据用户id查询待办任务列表</p>
-     * @author 范相如
-     * @date 2018年2月25日
+     * @param resourceOrderDto 资源订单
+     * @return
      */
-    public List<Task> findTasksByUserId(String userId) {
-        List<Task> resultTask = taskService.createTaskQuery().processDefinitionKey("demo5").taskCandidateOrAssigned(userId).list();
-        return resultTask;
+    public boolean complete(@RequestBody ResourceOrderDto resourceOrderDto) {
+        TaskService taskService = processEngine.getTaskService();
+
+        taskService.complete(resourceOrderDto.getTaskId());
+        return true;
     }
+
+
 }

Разница между файлами не показана из-за своего большого размера
+ 26 - 7
CommonService/src/main/resources/processes/resourceEnter.bpmn


+ 77 - 0
java110-bean/src/main/java/com/java110/dto/resourceStore/ResourceOrderDto.java

@@ -0,0 +1,77 @@
+package com.java110.dto.resourceStore;
+
+import com.java110.dto.PageDto;
+
+import java.io.Serializable;
+
+/**
+ * 资源订单信息
+ */
+public class ResourceOrderDto extends PageDto implements Serializable {
+
+    //工作流实例ID
+    private String processInstanceId;
+
+    private String taskId;
+
+    //资源订单ID
+    private String resOrderId;
+
+    //商户ID
+    private String storeId;
+
+    // 资源类型 入库还是出库
+    private String resOrderType;
+
+    // 资源状态
+    private String state;
+
+
+    public String getProcessInstanceId() {
+        return processInstanceId;
+    }
+
+    public void setProcessInstanceId(String processInstanceId) {
+        this.processInstanceId = processInstanceId;
+    }
+
+    public String getResOrderId() {
+        return resOrderId;
+    }
+
+    public void setResOrderId(String resOrderId) {
+        this.resOrderId = resOrderId;
+    }
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getResOrderType() {
+        return resOrderType;
+    }
+
+    public void setResOrderType(String resOrderType) {
+        this.resOrderType = resOrderType;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+}

+ 53 - 0
java110-bean/src/main/java/com/java110/entity/audit/AuditUser.java

@@ -0,0 +1,53 @@
+package com.java110.entity.audit;
+
+import java.io.Serializable;
+
+/**
+ * 审核用户
+ */
+public class AuditUser implements Serializable {
+
+    // 审核用户ID
+    private String userId;
+
+    private String userName;
+
+    // 审核环节 如部门经理审核 , 财务审核 ,采购人员采购
+    private String auditLink;
+
+    //流程对象编码
+    private String objCode;
+
+
+    public String getObjCode() {
+        return objCode;
+    }
+
+    public void setObjCode(String objCode) {
+        this.objCode = objCode;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getAuditLink() {
+        return auditLink;
+    }
+
+    public void setAuditLink(String auditLink) {
+        this.auditLink = auditLink;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+}

+ 19 - 5
java110-core/src/main/java/com/java110/core/smo/common/IResourceEntryStoreInnerServiceSMO.java

@@ -1,9 +1,15 @@
 package com.java110.core.smo.common;
 
 import com.java110.core.feign.FeignConfiguration;
+import com.java110.dto.resourceStore.ResourceOrderDto;
+import com.java110.entity.audit.AuditUser;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
 
 @FeignClient(name = "common-service", configuration = {FeignConfiguration.class})
 @RequestMapping("/commonApi")
@@ -16,13 +22,21 @@ public interface IResourceEntryStoreInnerServiceSMO {
      *
      * @return CommunityDto 对象数据
      */
-    @RequestMapping(value = "/startProcess", method = RequestMethod.GET)
-    public String startProcess();
+    @RequestMapping(value = "/startProcess", method = RequestMethod.POST)
+    public ResourceOrderDto startProcess(@RequestBody ResourceOrderDto resourceOrderDto);
+
+
+    /**
+     *  获取用户任务
+     * @param user 用户信息
+     */
+    @RequestMapping(value = "/startProcess", method = RequestMethod.POST)
+    public List<ResourceOrderDto> getUserTasks(@RequestBody AuditUser user);
 
     /**
      * 完成任务
-     * @param processInstanceId
+     * @param resourceOrderDto
      */
-    @RequestMapping(value = "/getTaskAndComplete", method = RequestMethod.GET)
-    public void getTaskAndComplete(String processInstanceId);
+    @RequestMapping(value = "/complete", method = RequestMethod.GET)
+    public boolean complete(@RequestBody ResourceOrderDto resourceOrderDto);
 }