Browse Source

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

liujiankang 6 years ago
parent
commit
0f958e1ffa

+ 11 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/approval/ApprovalApplyPick.java

@@ -46,6 +46,9 @@ public class ApprovalApplyPick implements Serializable {
 
     private List<ApprovalApplyPickItem> listApplyPickItem = new ArrayList<>();
 
+    /*审批详情*/
+    private ApprovalInfo approvalInfo = new ApprovalInfo();
+
     public Integer getApplyPickId() {
         return applyPickId;
     }
@@ -157,4 +160,12 @@ public class ApprovalApplyPick implements Serializable {
     public void setApplyPickShipCertificate(String applyPickShipCertificate) {
         this.applyPickShipCertificate = applyPickShipCertificate;
     }
+
+    public ApprovalInfo getApprovalInfo() {
+        return approvalInfo;
+    }
+
+    public void setApprovalInfo(ApprovalInfo approvalInfo) {
+        this.approvalInfo = approvalInfo;
+    }
 }

+ 8 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/approval/ApprovalTaskService.java

@@ -1,5 +1,6 @@
 package com.iamberry.rst.faces.approval;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -33,4 +34,11 @@ public interface ApprovalTaskService {
      * @param reason    说明(eg:业务员撤销审核)不允许为空
      */
     void revokeTask(String pid, String reason);
+
+    /**
+     * 获取某个审批的整个审批流程
+     * @param type 1:生成订单审批;2:提货申请
+     * @return
+     */
+    List<Object> findApplyRu(int type);
 }

+ 35 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/approval/ApprovalTaskServiceImpl.java

@@ -1,5 +1,6 @@
 package com.iamberry.rst.service.approval;
 
+import com.iamberry.cache.LocalCache;
 import com.iamberry.rst.faces.approval.ApprovalTaskService;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.TaskService;
@@ -10,7 +11,9 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -25,6 +28,8 @@ public class ApprovalTaskServiceImpl implements ApprovalTaskService {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(ApprovalTaskServiceImpl.class);
 
+    private static LocalCache<String, List<Object>> CACHE = new LocalCache<>(2);
+
     @Autowired
     private RuntimeService runtimeService;
 
@@ -93,6 +98,36 @@ public class ApprovalTaskServiceImpl implements ApprovalTaskService {
         runtimeService.deleteProcessInstance(pid, reason);
     }
 
+    @Override
+    public List<Object> findApplyRu(int type) {
+        // 获取缓存中是否缓存了整个流程的审批实例
+        String key = type == 1 ? GENERATION_APPROVAL_KEY : APPLICATION_FOR_DELIVERY_KEY;
+        List<Object> value = CACHE.get(key);
+        if (value != null) return value;
+
+        // 启动一个审批实例,获取最新的审批流程
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey(key);
+        // 寻找第一个审批任务,如果不存在表示审批结束
+        Task task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult();
+        if (task == null) {
+            return null;
+        }
+        // 执行第一个审批流程,标记为完成
+        taskService.complete(task.getId());
+        List<Object> users = new ArrayList<>(10);
+        // 寻找下一个审批人(0 - n 个)
+        Map<String, Object> next = findTaskNextAssignee(pi.getId());
+        while (next != null) {
+            String taskId = (String) next.get("taskId");
+            taskService.complete(taskId);
+            users.add(next.get("assignee"));
+            next = findTaskNextAssignee(pi.getId());
+        }
+        // 缓存审批实例
+        CACHE.put(key, users);
+        return users;
+    }
+
     /**
      * 寻找任务的下一个审批人
      * @param pid 任务实例id

+ 36 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/approval/mapper/applyPickMapper.xml

@@ -60,6 +60,9 @@
         <result    column="apply_pick_remk"    property="applyPickRemk" />
         <result    column="apply_pick_create_time"    property="applyPickCreateTime" />
         <result    column="apply_pick_update_time"    property="applyPickUpdateTime" />
+
+        <association  property="approvalInfo" column="approval_id" javaType="ApprovalInfo" select="getApprovalInfo"  />
+
         <collection property="listApplyPickItem" column="apply_pick_id" javaType="ArrayList"
                     ofType="ApprovalApplyPickItem" select="getApprovalApplyPickItemList"/>
     </resultMap>
@@ -77,9 +80,34 @@
         <result    column="item_create_time"    property="itemCreateTime" />
         <result    column="item_update_time"    property="itemUpdateTime" />
     </resultMap>
+    <resultMap  id="approvalInfoMap" type="ApprovalInfo" >
+        <result    column="approval_id"    property="approvalId" />
+        <result    column="approval_name"    property="approvalName" />
+        <result    column="approval_type"    property="approvalType" />
+        <result    column="approval_status"    property="approvalStatus" />
+        <result    column="approval_status_details"    property="approvalStatusDetails" />
+        <result    column="admin_id"    property="adminId" />
+        <result    column="approval_applicant"    property="approvalApplicant" />
+        <result    column="activiti_id"    property="activitiId" />
+        <result    column="approval_details"    property="approvalDetails" />
+        <result    column="approval_remark"    property="approvalRemark" />
+        <result    column="approval_create_time"    property="approvalCreateTime" />
+    </resultMap>
     <select id="listOrderBatchPage" resultMap="BaseResultMap" parameterType="ApprovalApplyPick" >
         select
-        <include refid="Base_List" />
+            t.apply_pick_id,
+            t.approval_id,
+            t.production_approval_id,
+            t.admin_id,
+            t.apply_pick_name,
+            t.apply_pick_tel,
+            t.apply_pick_reason,
+            t.apply_pick_struts,
+            t.apply_pick_ship_way,
+            t.apply_pick_ship_certificate,
+            t.apply_pick_remk,
+            t.apply_pick_create_time,
+            t.apply_pick_update_time
         from tb_rst_approval_apply_pick t
         <where>
             <if test="applyPickId != null ">
@@ -113,6 +141,13 @@
           t.apply_pick_id = #{applyPickId}
     </select>
 
+    <select id="getApprovalInfo" resultMap="approvalInfoMap" parameterType="Integer" >
+        select
+        *
+        from tb_rst_approval_info t
+        where t.approval_id= #{approvalId}
+    </select>
+
     <select id="getApprovalApplyPickById" resultType="ApprovalApplyPick" parameterType="Integer" >
         select
         <include refid="Base_List" />

+ 4 - 4
watero-rst-web/src/main/java/com/iamberry/rst/controllers/approval/ApplyPickController.java

@@ -141,10 +141,10 @@ public class ApplyPickController {
             map.put("msg","姓名为空");
             return map;
         }
-        if(approvalApplyPick.getApplyPickTel() == null || "".equals(approvalApplyPick.getApplyPickTel())){
-            map.put("msg","电话号码为空");
-            return map;
-        }
+//        if(approvalApplyPick.getApplyPickTel() == null || "".equals(approvalApplyPick.getApplyPickTel())){
+//            map.put("msg","电话号码为空");
+//            return map;
+//        }
         if(approvalApplyPick.getProductionApprovalId() == null || "".equals(approvalApplyPick.getProductionApprovalId())){
             map.put("msg","未选择审批订单");
             return map;