Просмотр исходного кода

[审批流][修改][修改合同重复作废问题]

release_toaliyun_real
luozukai 7 лет назад
Родитель
Сommit
9927444723
4 измененных файлов: 27 добавлений и 52 удалений
  1. +0
    -2
      mallinkService/src/main/java/com/iformall/mapper/WxFlowRecordMapper.java
  2. +7
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java
  3. +18
    -46
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  4. +2
    -3
      mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml

+ 0
- 2
mallinkService/src/main/java/com/iformall/mapper/WxFlowRecordMapper.java Просмотреть файл

@@ -11,6 +11,4 @@ public interface WxFlowRecordMapper extends CommonMapper<WxFlowRecord, Long> {
void updateCurrStatus(WxFlowRecord record);

List<WxFlowRecord> myHandelList(WxFlowRecord flowRecord);

Integer myHandelListTotal(WxFlowRecord flowRecord);
}

+ 7
- 1
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(), "任务不存在");
}


+ 18
- 46
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<Long> 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<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 = 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);


+ 2
- 3
mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml Просмотреть файл

@@ -67,7 +67,7 @@

<select id="myHandelList" parameterType="com.iformall.domain.po.WxFlowRecord" resultMap="BaseResultMap">
select f.* from wx_flow_record f
where f.user_id = #{userId} and f.status not in(1,4)
where f.user_id = #{userId} and f.status not in(1,4,5)
order by create_date desc
</select>

@@ -75,6 +75,5 @@
update wx_flow_record set curr_status=#{currStatus} where process_instance_id=#{processInstanceId}
and status = 1
</update>

</mapper>

Загрузка…
Отмена
Сохранить