Sfoglia il codice sorgente

投诉建议查询当前处理人

java110 6 anni fa
parent
commit
90ab7d5d84

+ 18 - 1
Api/src/main/java/com/java110/api/listener/complaint/ListComplaintsListener.java

@@ -5,6 +5,7 @@ import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.smo.complaint.IComplaintInnerServiceSMO;
+import com.java110.core.smo.complaintUser.IComplaintUserInnerServiceSMO;
 import com.java110.core.smo.room.IRoomInnerServiceSMO;
 import com.java110.dto.complaint.ComplaintDto;
 import com.java110.event.service.api.ServiceDataFlowEvent;
@@ -34,6 +35,9 @@ public class ListComplaintsListener extends AbstractServiceApiListener {
     @Autowired
     private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
 
+    @Autowired
+    private IComplaintUserInnerServiceSMO complaintUserInnerServiceSMOImpl;
+
     @Override
     public String getServiceCode() {
         return ServiceCodeComplaintConstant.LIST_COMPLAINTS;
@@ -75,7 +79,10 @@ public class ListComplaintsListener extends AbstractServiceApiListener {
         List<ApiComplaintDataVo> complaints = null;
 
         if (count > 0) {
-            complaints = BeanConvertUtil.covertBeanList(complaintInnerServiceSMOImpl.queryComplaints(complaintDto), ApiComplaintDataVo.class);
+            List<ComplaintDto> complaintDtos = complaintInnerServiceSMOImpl.queryComplaints(complaintDto);
+            complaintDtos = freshCurrentUser(complaintDtos);
+            complaints = BeanConvertUtil.covertBeanList(complaintDtos, ApiComplaintDataVo.class);
+
         } else {
             complaints = new ArrayList<>();
         }
@@ -92,4 +99,14 @@ public class ListComplaintsListener extends AbstractServiceApiListener {
 
     }
 
+    private List<ComplaintDto> freshCurrentUser(List<ComplaintDto> complaintDtos) {
+        List<ComplaintDto> tmpComplaintDtos = new ArrayList<>();
+        for(ComplaintDto complaintDto : complaintDtos){
+            complaintDto = complaintUserInnerServiceSMOImpl.getTaskCurrentUser(complaintDto);
+            tmpComplaintDtos.add(complaintDto);
+        }
+
+        return tmpComplaintDtos;
+    }
+
 }

+ 31 - 0
CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java

@@ -4,9 +4,12 @@ package com.java110.common.smo.impl;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.smo.complaint.IComplaintInnerServiceSMO;
 import com.java110.core.smo.complaintUser.IComplaintUserInnerServiceSMO;
+import com.java110.core.smo.user.IUserInnerServiceSMO;
 import com.java110.dto.PageDto;
 import com.java110.dto.auditMessage.AuditMessageDto;
+import com.java110.dto.auditUser.AuditUserDto;
 import com.java110.dto.complaint.ComplaintDto;
+import com.java110.dto.user.UserDto;
 import com.java110.entity.audit.AuditUser;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.StringUtil;
@@ -19,6 +22,8 @@ import org.activiti.engine.history.HistoricTaskInstance;
 import org.activiti.engine.history.HistoricTaskInstanceQuery;
 import org.activiti.engine.impl.identity.Authentication;
 import org.activiti.engine.query.Query;
+import org.activiti.engine.runtime.Execution;
+import org.activiti.engine.runtime.ExecutionQuery;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Comment;
 import org.activiti.engine.task.Task;
@@ -48,6 +53,9 @@ public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements
     @Autowired
     private IComplaintInnerServiceSMO complaintInnerServiceSMOImpl;
 
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
 
     /**
      * 启动流程
@@ -266,6 +274,29 @@ public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements
         return auditMessageDtos;
     }
 
+    /**
+     * 获取任务当前处理人
+     * @param complaintDto
+     * @return
+     */
+    public ComplaintDto getTaskCurrentUser(@RequestBody ComplaintDto complaintDto) {
+
+        TaskService taskService = processEngine.getTaskService();
+        Task task = taskService.createTaskQuery().processInstanceBusinessKey(complaintDto.getComplaintId()).singleResult();
+        String userId = task.getAssignee();
+        List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(new String[]{userId});
+
+        if(users == null || users.size() == 0){
+            return complaintDto;
+        }
+
+        complaintDto.setCurrentUserId(userId);
+        complaintDto.setCurrentUserName(users.get(0).getName());
+        complaintDto.setCurrentUserTel(users.get(0).getTel());
+        return complaintDto;
+
+    }
+
 
     public ProcessEngine getProcessEngine() {
         return processEngine;

+ 18 - 1
java110-bean/src/main/java/com/java110/dto/complaint/ComplaintDto.java

@@ -34,8 +34,9 @@ public class ComplaintDto extends PageDto implements Serializable {
     private String unitNum;
     private String floorNum;
     private String communityId;
-
     private String currentUserId;
+    private String currentUserName;
+    private String currentUserTel;
 
     //
     private String auditCode;
@@ -224,4 +225,20 @@ public class ComplaintDto extends PageDto implements Serializable {
     public void setComplaintIds(String[] complaintIds) {
         this.complaintIds = complaintIds;
     }
+
+    public String getCurrentUserName() {
+        return currentUserName;
+    }
+
+    public void setCurrentUserName(String currentUserName) {
+        this.currentUserName = currentUserName;
+    }
+
+    public String getCurrentUserTel() {
+        return currentUserTel;
+    }
+
+    public void setCurrentUserTel(String currentUserTel) {
+        this.currentUserTel = currentUserTel;
+    }
 }

+ 28 - 0
java110-bean/src/main/java/com/java110/vo/api/complaint/ApiComplaintDataVo.java

@@ -30,6 +30,10 @@ public class ApiComplaintDataVo implements Serializable {
 
     private String createTime;
 
+    private String currentUserId;
+    private String currentUserName;
+    private String currentUserTel;
+
 
     public String getComplaintId() {
         return complaintId;
@@ -182,4 +186,28 @@ public class ApiComplaintDataVo implements Serializable {
     public void setCreateTime(String createTime) {
         this.createTime = createTime;
     }
+
+    public String getCurrentUserId() {
+        return currentUserId;
+    }
+
+    public void setCurrentUserId(String currentUserId) {
+        this.currentUserId = currentUserId;
+    }
+
+    public String getCurrentUserName() {
+        return currentUserName;
+    }
+
+    public void setCurrentUserName(String currentUserName) {
+        this.currentUserName = currentUserName;
+    }
+
+    public String getCurrentUserTel() {
+        return currentUserTel;
+    }
+
+    public void setCurrentUserTel(String currentUserTel) {
+        this.currentUserTel = currentUserTel;
+    }
 }

+ 8 - 0
java110-core/src/main/java/com/java110/core/smo/complaintUser/IComplaintUserInnerServiceSMO.java

@@ -73,4 +73,12 @@ public interface IComplaintUserInnerServiceSMO {
     @RequestMapping(value = "/getAuditMessage", method = RequestMethod.POST)
     public List<AuditMessageDto> getAuditMessage(@RequestBody ComplaintDto complaintDto);
 
+    /**
+     * 获取任务当前处理人
+     * @param complaintDto
+     * @return
+     */
+    @RequestMapping(value = "/getTaskCurrentUser", method = RequestMethod.POST)
+    public ComplaintDto getTaskCurrentUser(@RequestBody ComplaintDto complaintDto);
+
 }