Explorar el Código

优化删除投诉时未删除流程bug

java110 hace 3 años
padre
commit
f50a9834f0

+ 9 - 0
java110-bean/src/main/java/com/java110/po/complaint/ComplaintPo.java

@@ -22,6 +22,7 @@ public class ComplaintPo implements Serializable {
     private String state;
     private String communityId;
     private String startUserId;
+    private String taskId;
 
     public String getComplaintId() {
         return complaintId;
@@ -102,4 +103,12 @@ public class ComplaintPo implements Serializable {
     public void setStartUserId(String startUserId) {
         this.startUserId = startUserId;
     }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
 }

+ 3 - 0
java110-interface/src/main/java/com/java110/intf/common/IComplaintUserInnerServiceSMO.java

@@ -81,4 +81,7 @@ public interface IComplaintUserInnerServiceSMO {
     @RequestMapping(value = "/getTaskCurrentUser", method = RequestMethod.POST)
     public ComplaintDto getTaskCurrentUser(@RequestBody ComplaintDto complaintDto);
 
+    @RequestMapping(value = "/deleteTask", method = RequestMethod.POST)
+    public boolean deleteTask(@RequestBody ComplaintDto complaintDto);
+
 }

+ 8 - 0
service-api/src/main/java/com/java110/api/bmo/complaint/impl/ComplaintBMOImpl.java

@@ -5,6 +5,7 @@ import com.java110.api.bmo.ApiBaseBMO;
 import com.java110.api.bmo.complaint.IComplaintBMO;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.intf.common.IComplaintUserInnerServiceSMO;
 import com.java110.intf.store.IComplaintInnerServiceSMO;
 import com.java110.dto.complaint.ComplaintDto;
 import com.java110.po.complaint.ComplaintPo;
@@ -31,6 +32,9 @@ public class ComplaintBMOImpl extends ApiBaseBMO implements IComplaintBMO {
     @Autowired
     private IComplaintInnerServiceSMO complaintInnerServiceSMOImpl;
 
+    @Autowired
+    private IComplaintUserInnerServiceSMO complaintUserInnerServiceSMOImpl;
+
     /**
      * 添加投诉建议信息
      *
@@ -58,6 +62,7 @@ public class ComplaintBMOImpl extends ApiBaseBMO implements IComplaintBMO {
 
     /**
      * 添加小区信息
+     * 感谢 QQ号 1464955294 分享解决 删除投诉 时 未删除流程bug
      *
      * @param paramInJson     接口调用放传入入参
      * @param dataFlowContext 数据上下文
@@ -66,6 +71,9 @@ public class ComplaintBMOImpl extends ApiBaseBMO implements IComplaintBMO {
     public void deleteComplaint(JSONObject paramInJson, DataFlowContext dataFlowContext) {
         ComplaintPo complaintPo = BeanConvertUtil.covertBean(paramInJson, ComplaintPo.class);
         super.delete(dataFlowContext, complaintPo, BusinessTypeConstant.BUSINESS_TYPE_DELETE_COMPLAINT);
+        ComplaintDto complaintDto = new ComplaintDto();
+        complaintDto.setTaskId(complaintPo.getTaskId());
+        complaintUserInnerServiceSMOImpl.deleteTask(complaintDto);
     }
 
     /**

+ 29 - 0
service-common/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java

@@ -12,6 +12,7 @@ import com.java110.dto.complaint.ComplaintDto;
 import com.java110.dto.user.UserDto;
 import com.java110.dto.workflow.WorkflowDto;
 import com.java110.entity.audit.AuditUser;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.StringUtil;
 import org.activiti.engine.HistoryService;
@@ -27,6 +28,8 @@ import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Comment;
 import org.activiti.engine.task.Task;
 import org.activiti.engine.task.TaskQuery;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
@@ -40,6 +43,9 @@ import java.util.Map;
 @RestController
 public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements IComplaintUserInnerServiceSMO {
 
+
+    private final static Logger logger = LoggerFactory.getLogger(ComplaintUserInnerServiceSMOImpl.class);
+
     @Autowired
     private ProcessEngine processEngine;
 
@@ -49,6 +55,9 @@ public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements
     @Autowired
     private TaskService taskService;
 
+    @Autowired
+    private HistoryService historyService;
+
     @Autowired
     private IComplaintInnerServiceSMO complaintInnerServiceSMOImpl;
 
@@ -298,6 +307,26 @@ public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements
         return auditMessageDtos;
     }
 
+    /**
+     * 删除指定任务
+     */
+    public boolean deleteTask(@RequestBody ComplaintDto complaintDto){
+        String taskId = complaintDto.getTaskId();
+        Task task = taskService.createTaskQuery().taskId(complaintDto.getTaskId()).singleResult();
+        String processInstanceId = task.getProcessInstanceId();
+        ProcessInstance pi = runtimeService.createProcessInstanceQuery()
+                .processInstanceId(processInstanceId)
+                .singleResult();
+        logger.info("删除id为:{},投诉建议任务");
+        if (null != pi) {
+            //该流程实例未结束的
+            runtimeService.deleteProcessInstance(processInstanceId, "删除任务");
+        }
+        historyService.deleteHistoricProcessInstance(processInstanceId);
+        return true;
+    }
+
+
     /**
      * 获取任务当前处理人
      *