|
@@ -546,7 +546,12 @@ public class FlowTaskService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
public Page <HisTaskVo> historicList(Page <HisTaskVo> page, Flow act,String type) {
|
|
public Page <HisTaskVo> historicList(Page <HisTaskVo> page, Flow act,String type) {
|
|
|
- String userId = userApi.getByToken ( TokenProvider.getCurrentToken ( ) ).getId ( );
|
|
|
|
|
|
|
+ UserDTO currentUser = userApi.getByToken ( TokenProvider.getCurrentToken ( ) );
|
|
|
|
|
+ String userId = currentUser.getId ( );
|
|
|
|
|
+ // 判断是否评估公司用户
|
|
|
|
|
+ boolean isPgCompany = currentUser.getCompanyDTO() != null
|
|
|
|
|
+ && currentUser.getCompanyDTO().getName() != null
|
|
|
|
|
+ && currentUser.getCompanyDTO().getName().contains("评估");
|
|
|
|
|
|
|
|
HistoricTaskInstanceQuery histTaskQuery = historyService.createHistoricTaskInstanceQuery ( ).taskAssignee ( userId ).finished ( )
|
|
HistoricTaskInstanceQuery histTaskQuery = historyService.createHistoricTaskInstanceQuery ( ).taskAssignee ( userId ).finished ( )
|
|
|
.includeProcessVariables ( ).orderByHistoricTaskInstanceEndTime ( ).desc ( );
|
|
.includeProcessVariables ( ).orderByHistoricTaskInstanceEndTime ( ).desc ( );
|
|
@@ -567,8 +572,15 @@ public class FlowTaskService {
|
|
|
if (StringUtils.isNotEmpty(act.getAssigneeId())) {
|
|
if (StringUtils.isNotEmpty(act.getAssigneeId())) {
|
|
|
histTaskQuery.processVariableValueLike (FlowableConstant.USERNAME,"%"+ act.getAssigneeId()+"%");
|
|
histTaskQuery.processVariableValueLike (FlowableConstant.USERNAME,"%"+ act.getAssigneeId()+"%");
|
|
|
}
|
|
}
|
|
|
- if (StringUtils.isNotEmpty(act.getRelatedNo())) {
|
|
|
|
|
- histTaskQuery.processVariableValueLike (FlowableConstant.TITLE, "%" + act.getRelatedNo() + "%");
|
|
|
|
|
|
|
+ if (StringUtils.isNotEmpty(act.getRelatedNo()) && isPgCompany) {
|
|
|
|
|
+ // 仅评估公司:从业务表查匹配的procInsId(兼容新老数据)
|
|
|
|
|
+ List<String> matchedProcInsIds = flowMapper.getProcInsIdsByRelatedNo(act.getRelatedNo());
|
|
|
|
|
+ if (matchedProcInsIds != null && !matchedProcInsIds.isEmpty()) {
|
|
|
|
|
+ histTaskQuery.processInstanceIdIn(matchedProcInsIds);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 业务表没匹配到,回退到标题模糊匹配
|
|
|
|
|
+ histTaskQuery.processVariableValueLike(FlowableConstant.TITLE, "%" + act.getRelatedNo() + "%");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
// 查询总数
|
|
// 查询总数
|
|
|
page.setTotal ( histTaskQuery.count ( ) );
|
|
page.setTotal ( histTaskQuery.count ( ) );
|
|
@@ -596,6 +608,27 @@ public class FlowTaskService {
|
|
|
if (titleObj != null) {
|
|
if (titleObj != null) {
|
|
|
hisTaskVo.setRelatedNo(HisTaskVo.extractRelatedNo(titleObj.toString()));
|
|
hisTaskVo.setRelatedNo(HisTaskVo.extractRelatedNo(titleObj.toString()));
|
|
|
}
|
|
}
|
|
|
|
|
+ // 历史数据兜底:仅评估流程,标题中无编号时通过businessKey查业务表补全
|
|
|
|
|
+ if (StringUtils.isBlank(hisTaskVo.getRelatedNo()) && processName != null && processName.contains("评估")) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ HistoricProcessInstance hpi = historyService.createHistoricProcessInstanceQuery()
|
|
|
|
|
+ .processInstanceId(histTask.getProcessInstanceId()).singleResult();
|
|
|
|
|
+ if (hpi != null && StringUtils.isNotBlank(hpi.getBusinessKey())) {
|
|
|
|
|
+ String bk = hpi.getBusinessKey();
|
|
|
|
|
+ int colonIdx = bk.indexOf(':');
|
|
|
|
|
+ if (colonIdx > 0) {
|
|
|
|
|
+ String bizTable = bk.substring(0, colonIdx);
|
|
|
|
|
+ String bizId = bk.substring(colonIdx + 1);
|
|
|
|
|
+ String bizNo = flowMapper.getBusinessNo(bizTable, bizId);
|
|
|
|
|
+ if (StringUtils.isNotBlank(bizNo)) {
|
|
|
|
|
+ hisTaskVo.setRelatedNo(bizNo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ // 查询失败不影响主流程
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
List <Task> currentTaskList = taskService.createTaskQuery ( ).processInstanceId ( histTask.getProcessInstanceId ( ) ).list ( );
|
|
List <Task> currentTaskList = taskService.createTaskQuery ( ).processInstanceId ( histTask.getProcessInstanceId ( ) ).list ( );
|
|
|
if ( ((List) currentTaskList).size ( ) > 0 ) {
|
|
if ( ((List) currentTaskList).size ( ) > 0 ) {
|
|
|
TaskVo currentTaskVo = new TaskVo ( currentTaskList.get ( 0 ) );
|
|
TaskVo currentTaskVo = new TaskVo ( currentTaskList.get ( 0 ) );
|