From 992744472339be985b7a0037a5f1b2f3552291d2 Mon Sep 17 00:00:00 2001 From: luozukai Date: Sun, 28 Apr 2019 14:44:36 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=AE=A1=E6=89=B9=E6=B5=81][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9][=E4=BF=AE=E6=94=B9=E5=90=88=E5=90=8C=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E4=BD=9C=E5=BA=9F=E9=97=AE=E9=A2=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/mapper/WxFlowRecordMapper.java | 2 - .../service/impl/WxFlowServiceImpl.java | 8 ++- .../impl/WxRentContractServiceImpl.java | 64 ++++++------------- .../resources/mapper/WxFlowRecordMapper.xml | 5 +- 4 files changed, 27 insertions(+), 52 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFlowRecordMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFlowRecordMapper.java index 6a3e0b6b4..55b05bd15 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxFlowRecordMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxFlowRecordMapper.java @@ -11,6 +11,4 @@ public interface WxFlowRecordMapper extends CommonMapper { void updateCurrStatus(WxFlowRecord record); List myHandelList(WxFlowRecord flowRecord); - - Integer myHandelListTotal(WxFlowRecord flowRecord); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index 33eb9cd62..8ba692579 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -20,6 +20,7 @@ import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.flowable.bpmn.model.BpmnModel; +import org.flowable.common.engine.api.FlowableIllegalArgumentException; import org.flowable.engine.*; import org.flowable.engine.runtime.Execution; import org.flowable.engine.runtime.ProcessInstance; @@ -588,7 +589,12 @@ public class WxFlowServiceImpl implements WxFlowService { return new ResultData(); } String processInstanceId = resultList.get(0).getProcessInstanceId(); - ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + ProcessInstance pi = null; + try { + pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + }catch (FlowableIllegalArgumentException e){ + logger.error("getTaskStatusList query inst error",e); + } if(pi == null){ return new ResultData(ErrorCode.FLOW_INST_NOT_EXIST.getCode(), "任务不存在"); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 3d20fa73f..877428ef9 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -23,6 +23,7 @@ import org.apache.commons.collections.map.HashedMap; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.shiro.SecurityUtils; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; import org.flowable.task.api.Task; @@ -680,20 +681,25 @@ public class WxRentContractServiceImpl implements WxRentContractService { for (Task task : tasks) { logger.info("合同id:{},taskid:{}", id, task.getId()); runtimeService.deleteProcessInstance(task.getProcessInstanceId(), "合同作废"); + + // 修改合同审核状态 + WxRentContract rentContract = record; + rentContract.setId(id); + rentContract.setApplyStatus(EnumRentContractAppStatus.CANCLE.getCode()); + updateApplyStatus(rentContract); + + // 保存审批历史入 + MallUserInfo mallUserInfo = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); + WxFlowRecord updateRecord = new WxFlowRecord(); + updateRecord.setBusinessId(id); + updateRecord.setStatus(EnumFlowRecordStatus.CANCLE.getCode()); + updateRecord.setBusinessType(1); + updateRecord.setUserId(mallUserInfo.getId()); + updateRecord.setProcessInstanceId(task.getProcessInstanceId()); + wxFlowRecordService.saveOrUpdate(updateRecord); } } - // 修改合同审核状态 - WxRentContract rentContract = record; - rentContract.setId(id); - rentContract.setApplyStatus(EnumRentContractAppStatus.CANCLE.getCode()); - updateApplyStatus(rentContract); - - // 保存审批历史入 - WxFlowRecord updateRecord = new WxFlowRecord(); - updateRecord.setBusinessId(id); - updateRecord.setStatus(EnumFlowRecordStatus.CANCLE.getCode()); - updateRecord.setBusinessType(1); - wxFlowRecordService.saveOrUpdate(updateRecord); + } catch (Exception e) { logger.error("deleteProcessInstance error", e); } @@ -1240,40 +1246,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { int allCount = wxRentContractMapper.selectCount(wxRentContract); resultData.put("allCount", allCount); - //审核流程中止 - List collect = wxRentContractMapper.getRentInvalidList(wxRentContract).stream() - .map(r -> r.getId()).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(collect)) { - for (Long id:collect) { - try { - logger.info("合同id:{},开始停止...",id); - //结束审批流 by luozukai - List tasks = taskService.createTaskQuery().processDefinitionKey(WxFlowServiceImpl.getFlowKeyByType(1)) - .processVariableValueEquals("businessId",id).list(); - if (!CollectionUtils.isEmpty(tasks)) { - for (Task task:tasks) { - logger.info("合同id:{},taskid:{}",id,task.getId()); - runtimeService.deleteProcessInstance(task.getProcessInstanceId(), "合同作废"); - } - } - // 修改合同审核状态 - WxRentContract rentContract = new WxRentContract(); - rentContract.setId(id); - rentContract.setApplyStatus(EnumRentContractAppStatus.CANCLE.getCode()); - updateApplyStatus(rentContract); - - // 保存审批历史入 - WxFlowRecord updateRecord = new WxFlowRecord(); - updateRecord.setBusinessId(id); - updateRecord.setStatus(EnumFlowRecordStatus.CANCLE.getCode()); - updateRecord.setBusinessType(1); - wxFlowRecordService.saveOrUpdate(updateRecord); - }catch (Exception e){ - logger.error("deleteProcessInstance error",e); - } - } - } - //待签约 wxRentContract.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); int waitSignCount = wxRentContractMapper.queryRentContractWaitSignStatus(wxRentContract); diff --git a/mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml index 88ea8d92f..2745c7c7c 100644 --- a/mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml @@ -67,7 +67,7 @@ @@ -75,6 +75,5 @@ update wx_flow_record set curr_status=#{currStatus} where process_instance_id=#{processInstanceId} and status = 1 - - +