Pārlūkot izejas kodu

加入采购已办

java110 6 gadi atpakaļ
vecāks
revīzija
d17f9bffbb

+ 17 - 0
java110-interface/src/main/java/com/java110/intf/common/IResourceEntryStoreInnerServiceSMO.java

@@ -64,4 +64,21 @@ public interface IResourceEntryStoreInnerServiceSMO {
      */
     @RequestMapping(value = "/complete", method = RequestMethod.GET)
     public boolean complete(@RequestBody ResourceOrderDto resourceOrderDto);
+
+    /**
+     * 查询用户任务数
+     *
+     * @param user
+     * @return
+     */
+    @RequestMapping(value = "/getUserHistoryTaskCount", method = RequestMethod.POST)
+    public long getUserHistoryTaskCount(@RequestBody AuditUser user);
+
+    /**
+     * 获取用户审批的任务
+     *
+     * @param user 用户信息
+     */
+    @RequestMapping(value = "/getUserHistoryTasks", method = RequestMethod.POST)
+    public List<PurchaseApplyDto> getUserHistoryTasks(@RequestBody AuditUser user);
 }

+ 5 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeAuditUserConstant.java

@@ -33,6 +33,11 @@ public class ServiceCodeAuditUserConstant {
      */
     public static final String LIST_AUDITORDERS = "auditUser.listAuditOrders";
 
+    /**
+     * 查询 审核历史订单
+     */
+    public static final String LIST_AUDIT_HISTORY_ORDERS = "auditUser.listAuditHistoryOrders";
+
     /**
      * 查询 审核投诉
      */

+ 119 - 0
service-api/src/main/java/com/java110/api/listener/auditOrder/ListAuditHistoryOrdersListener.java

@@ -0,0 +1,119 @@
+package com.java110.api.listener.auditOrder;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
+import com.java110.entity.audit.AuditUser;
+import com.java110.intf.common.IResourceEntryStoreInnerServiceSMO;
+import com.java110.utils.constant.ServiceCodeAuditUserConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.resourceOrder.ApiResourceOrderDataVo;
+import com.java110.vo.api.resourceOrder.ApiResourceOrderVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 查询审核订单侦听类
+ */
+@Java110Listener("listAuditHistoryOrdersListener")
+public class ListAuditHistoryOrdersListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private IResourceEntryStoreInnerServiceSMO resourceEntryStoreInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeAuditUserConstant.LIST_AUDIT_HISTORY_ORDERS;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    public IResourceEntryStoreInnerServiceSMO getResourceEntryStoreInnerServiceSMOImpl() {
+        return resourceEntryStoreInnerServiceSMOImpl;
+    }
+
+    public void setResourceEntryStoreInnerServiceSMOImpl(IResourceEntryStoreInnerServiceSMO resourceEntryStoreInnerServiceSMOImpl) {
+        this.resourceEntryStoreInnerServiceSMOImpl = resourceEntryStoreInnerServiceSMOImpl;
+    }
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
+        Assert.hasKeyAndValue(reqJson, "userId", "必填,请填写用户ID");
+        Assert.hasKeyAndValue(reqJson, "row", "必填,请填写每页显示数");
+        Assert.hasKeyAndValue(reqJson, "page", "必填,请填写页数");
+
+        super.validatePageInfo(reqJson);
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        AuditUser auditUser = new AuditUser();
+        auditUser.setUserId(reqJson.getString("userId"));
+        auditUser.setPage(reqJson.getInteger("page"));
+        auditUser.setRow(reqJson.getInteger("row"));
+        auditUser.setStoreId(reqJson.getString("storeId"));
+
+        long count = resourceEntryStoreInnerServiceSMOImpl.getUserHistoryTaskCount(auditUser);
+
+        List<ApiResourceOrderDataVo> auditOrders = null;
+
+        if (count > 0) {
+            List<PurchaseApplyDto> purchaseApplyDtos = resourceEntryStoreInnerServiceSMOImpl.getUserHistoryTasks(auditUser);
+            auditOrders = BeanConvertUtil.covertBeanList(purchaseApplyDtos, ApiResourceOrderDataVo.class);
+            for (ApiResourceOrderDataVo apiResourceOrderDataVo : auditOrders) {
+                switch (apiResourceOrderDataVo.getState()) {
+                    case "1000":
+                        apiResourceOrderDataVo.setStateName("待审核");
+                        break;
+                    case "1001":
+                        apiResourceOrderDataVo.setStateName("审核中");
+                        break;
+                    case "1002":
+                        apiResourceOrderDataVo.setStateName("已审核");
+                        break;
+                }
+                if (apiResourceOrderDataVo.getResOrderType().equals("10000")) {
+                    apiResourceOrderDataVo.setResOrderTypeName("采购申请");
+                } else {
+                    apiResourceOrderDataVo.setResOrderTypeName("出库申请");
+                }
+
+            }
+        } else {
+            auditOrders = new ArrayList<>();
+        }
+
+        ApiResourceOrderVo apiResourceOrderVo = new ApiResourceOrderVo();
+
+        apiResourceOrderVo.setTotal((int) count);
+        apiResourceOrderVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
+        apiResourceOrderVo.setResourceOrders(auditOrders);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiResourceOrderVo), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+
+    }
+}

+ 1 - 1
service-common/src/main/java/com/java110/common/smo/impl/PurchaseApplyUserInnerServiceSMOImpl.java

@@ -99,7 +99,7 @@ public class PurchaseApplyUserInnerServiceSMOImpl extends BaseServiceSMO impleme
         workflowDto.setStoreId(storeId);
         List<WorkflowDto> workflowDtos = workflowInnerServiceSMOImpl.queryWorkflows(workflowDto);
 
-        Assert.listOnlyOne(workflowDtos, "未找到 投诉建议流程或找到多条");
+        Assert.listOnlyOne(workflowDtos, "未找到 采购流程或找到多条");
 
         WorkflowDto tmpWorkflowDto = workflowDtos.get(0);
         if (StringUtil.isEmpty(tmpWorkflowDto.getProcessDefinitionKey())) {

+ 89 - 10
service-common/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java

@@ -2,19 +2,24 @@ package com.java110.common.smo.impl;
 
 
 import com.java110.core.base.smo.BaseServiceSMO;
-import com.java110.dto.workflow.WorkflowDto;
-import com.java110.intf.common.IResourceEntryStoreInnerServiceSMO;
-import com.java110.intf.common.IWorkflowInnerServiceSMO;
-import com.java110.intf.store.IPurchaseApplyInnerServiceSMO;
 import com.java110.dto.PageDto;
 import com.java110.dto.purchaseApply.PurchaseApplyDto;
 import com.java110.dto.resourceStore.ResourceOrderDto;
+import com.java110.dto.workflow.WorkflowDto;
 import com.java110.entity.audit.AuditUser;
+import com.java110.intf.common.IResourceEntryStoreInnerServiceSMO;
+import com.java110.intf.common.IWorkflowInnerServiceSMO;
+import com.java110.intf.store.IPurchaseApplyInnerServiceSMO;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.StringUtil;
+import org.activiti.engine.HistoryService;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.TaskService;
+import org.activiti.engine.history.HistoricProcessInstance;
+import org.activiti.engine.history.HistoricTaskInstance;
+import org.activiti.engine.history.HistoricTaskInstanceQuery;
+import org.activiti.engine.query.Query;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
 import org.activiti.engine.task.TaskQuery;
@@ -92,12 +97,12 @@ public class ResourceEntryStoreInnerServiceSMOImpl extends BaseServiceSMO implem
         query.taskAssignee(user.getUserId());
         query.orderByTaskCreateTime().desc();
         List<Task> list = null;
-        if(user.getPage()  >=1){
-            user.setPage(user.getPage()-1);
+        if (user.getPage() >= 1) {
+            user.setPage(user.getPage() - 1);
         }
         if (user.getPage() != PageDto.DEFAULT_PAGE) {
             list = query.listPage(user.getPage(), user.getRow());
-        }else{
+        } else {
             list = query.list();
         }
 
@@ -173,7 +178,6 @@ public class ResourceEntryStoreInnerServiceSMOImpl extends BaseServiceSMO implem
     }
 
 
-
     private String getWorkflowDto(String storeId) {
         //开启流程
         //WorkflowDto.DEFAULT_PROCESS + workflowDto.getFlowId()
@@ -181,8 +185,7 @@ public class ResourceEntryStoreInnerServiceSMOImpl extends BaseServiceSMO implem
         workflowDto.setFlowType(WorkflowDto.FLOW_TYPE_PURCHASE);
         workflowDto.setStoreId(storeId);
         List<WorkflowDto> workflowDtos = workflowInnerServiceSMOImpl.queryWorkflows(workflowDto);
-
-        Assert.listOnlyOne(workflowDtos, "未找到 投诉建议流程或找到多条");
+        Assert.listOnlyOne(workflowDtos, "未找到 采购流程或找到多条");
 
         WorkflowDto tmpWorkflowDto = workflowDtos.get(0);
         if (StringUtil.isEmpty(tmpWorkflowDto.getProcessDefinitionKey())) {
@@ -191,4 +194,80 @@ public class ResourceEntryStoreInnerServiceSMOImpl extends BaseServiceSMO implem
         return WorkflowDto.DEFAULT_PROCESS + tmpWorkflowDto.getFlowId();
     }
 
+    /**
+     * 查询用户任务数
+     *
+     * @param user
+     * @return
+     */
+    public long getUserHistoryTaskCount(@RequestBody AuditUser user) {
+        HistoryService historyService = processEngine.getHistoryService();
+//        Query query = historyService.createHistoricTaskInstanceQuery()
+//                .processDefinitionKey("complaint")
+//                .taskAssignee(user.getUserId());
+
+        HistoricTaskInstanceQuery historicTaskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
+                .processDefinitionKey(getWorkflowDto(user.getStoreId()))
+                .taskAssignee(user.getUserId());
+        if (!StringUtil.isEmpty(user.getAuditLink()) && "START".equals(user.getAuditLink())) {
+            historicTaskInstanceQuery.taskName("complaint");
+        } else if (!StringUtil.isEmpty(user.getAuditLink()) && "AUDIT".equals(user.getAuditLink())) {
+            historicTaskInstanceQuery.taskName("complaitDealUser");
+        }
+
+        Query query = historicTaskInstanceQuery;
+        return query.count();
+    }
+
+    /**
+     * 获取用户审批的任务
+     *
+     * @param user 用户信息
+     */
+    public List<PurchaseApplyDto> getUserHistoryTasks(@RequestBody AuditUser user) {
+        HistoryService historyService = processEngine.getHistoryService();
+
+        HistoricTaskInstanceQuery historicTaskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
+                .processDefinitionKey(getWorkflowDto(user.getStoreId()))
+                .taskAssignee(user.getUserId());
+//        if (!StringUtil.isEmpty(user.getAuditLink()) && "START".equals(user.getAuditLink())) {
+//            historicTaskInstanceQuery.taskName("complaint");
+//        } else if (!StringUtil.isEmpty(user.getAuditLink()) && "AUDIT".equals(user.getAuditLink())) {
+//            historicTaskInstanceQuery.taskName("complaitDealUser");
+//        }
+
+        Query query = historicTaskInstanceQuery.orderByHistoricTaskInstanceStartTime().desc();
+
+        List<HistoricTaskInstance> list = null;
+        if (user.getPage() != PageDto.DEFAULT_PAGE) {
+            list = query.listPage((user.getPage() - 1) * user.getRow(), user.getRow());
+        } else {
+            list = query.list();
+        }
+
+        List<String> applyOrderIds = new ArrayList<>();
+        Map<String, String> taskBusinessKeyMap = new HashMap<>();
+
+        for (HistoricTaskInstance task : list) {
+            String processInstanceId = task.getProcessInstanceId();
+            //3.使用流程实例,查询
+            HistoricProcessInstance pi = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
+            //4.使用流程实例对象获取BusinessKey
+            String business_key = pi.getBusinessKey();
+            applyOrderIds.add(business_key);
+            taskBusinessKeyMap.put(business_key, task.getId());
+        }
+
+        //查询 投诉信息
+        PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto();
+        purchaseApplyDto.setStoreId(user.getStoreId());
+        purchaseApplyDto.setApplyOrderIds(applyOrderIds.toArray(new String[applyOrderIds.size()]));
+        List<PurchaseApplyDto> tmpPurchaseApplyDtos = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplyAndDetails(purchaseApplyDto);
+
+        for (PurchaseApplyDto tmpPurchaseApplyDto : tmpPurchaseApplyDtos) {
+            tmpPurchaseApplyDto.setTaskId(taskBusinessKeyMap.get(tmpPurchaseApplyDto.getApplyOrderId()));
+        }
+        return tmpPurchaseApplyDtos;
+    }
+
 }