@@ -622,6 +622,10 @@ public class WxRentContractServiceImpl implements WxRentContractService {
record.setTenantId(wxRentContract.getTenantId());
record.setStatus(EnumRentContractStatus.INVALID.getCode());
wxRentContractMapper.updateInvalidContract(record);
List<WxRentContract> rentContractList = wxRentContractMapper.selectRentContractByShopId(record);
for (WxRentContract updateContract : rentContractList) {
updateInvalidStatus(updateContract);
}
}
} else {
WxRentContract record = new WxRentContract();
@@ -629,8 +633,12 @@ public class WxRentContractServiceImpl implements WxRentContractService {
record.setRentShopType(wxRentContract.getRentShopType());
record.setStatus(EnumRentContractStatus.INVALID.getCode());
wxRentContractMapper.updateRentInvalidStatus(record);
List<WxRentContract> rentContractList = wxRentContractMapper.select(record);
for (WxRentContract updateContract : rentContractList) {
updateInvalidStatus(updateContract);
}
}
updateInvalidStatus(wxRentContract);
}
@Override
@@ -660,42 +668,34 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return new ResultData(Result.SUCCESS, "操作成功");
}
public void updateInvalidStatus(WxRentContract wxRentContract) {
WxRentContract record = new WxRentContract();
record.setTenantId(wxRentContract.getTenantId());
record.setStatus(EnumRentContractStatus.INVALID.getCode());
public void updateInvalidStatus(WxRentContract record) {
Long id = record.getId();
//审核流程中止
List<Long> collect = wxRentContractMapper.select(record).stream()
.map(r -> r.getId()).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(collect)) {
for (Long id : collect) {
try {
logger.info("合同id:{},开始停止...", id);
//结束审批流 by luozukai
List<Task> 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 = 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);
try {
logger.info("合同id:{},开始停止...", id);
//结束审批流 by luozukai
List<Task> 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 = 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);
}
}