Commit c2113b8c by 王志超

feat: 变更工单列表增加变更行动工单ID列表

parent 5823db58
Pipeline #86084 passed with stages
in 1 minute 28 seconds
......@@ -1248,6 +1248,22 @@ public class ChangeFlowBiz {
List<ChangeFlowVO> list = new ArrayList<>();
// 处理数据
if (CollectionUtils.isNotEmpty(changeRecords)) {
// 批量查询所有变更行动工单,构建 Map<changeRecordId, List<subFlowId>>,提升性能
final Map<Long, List<String>> subFlowIdsMap;
List<Long> changeRecordIds = changeRecords.stream()
.map(ChangeRecord::getId)
.collect(Collectors.toList());
List<ChangeSubFlowRecord> subFlowRecords = changeSubFlowRecordService.getByChangeRecordIds(changeRecordIds);
if (CollectionUtils.isNotEmpty(subFlowRecords)) {
subFlowIdsMap = subFlowRecords.stream()
.filter(record -> StringUtils.isNotBlank(record.getSubFlowId()))
.collect(Collectors.groupingBy(
ChangeSubFlowRecord::getChangeRecordId,
Collectors.mapping(ChangeSubFlowRecord::getSubFlowId, Collectors.toList())
));
} else {
subFlowIdsMap = new HashMap<>();
}
list = changeRecords.stream().map(c -> {
ChangeFlowVO changeFlowVO = new ChangeFlowVO();
changeFlowVO.setId(c.getId());
......@@ -1291,6 +1307,11 @@ public class ChangeFlowBiz {
changeFlowVO.setChangeConfirmResultTime(c.getChangeConfirmResultTime());
changeFlowVO.setCancelReason(c.getCancelReason());
changeFlowVO.setRemark(c.getRemark());
// 从 Map 中获取变更行动工单 flowId 列表(已批量查询,提升性能)
List<String> subFlowIds = subFlowIdsMap.getOrDefault(c.getId(), new ArrayList<>());
changeFlowVO.setSubFlowIds(subFlowIds);
return changeFlowVO;
}).collect(Collectors.toList());
}
......
......@@ -44,5 +44,12 @@ public interface ChangeSubFlowRecordService {
*/
ChangeSubFlowRecord getBySubFlowId(String subFlowId);
/**
* 批量根据主单记录ID列表查询变更行动工单列表
* @param changeRecordIds 主单记录ID列表
* @return 变更行动工单列表
*/
List<ChangeSubFlowRecord> getByChangeRecordIds(List<Long> changeRecordIds);
}
......@@ -48,5 +48,13 @@ public class ChangeSubFlowRecordServiceImpl implements ChangeSubFlowRecordServic
return changeSubFlowRecordMapper.selectBySubFlowId(subFlowId);
}
@Override
public List<ChangeSubFlowRecord> getByChangeRecordIds(List<Long> changeRecordIds) {
if (CollectionUtils.isEmpty(changeRecordIds)) {
return new ArrayList<>();
}
return changeSubFlowRecordMapper.selectByChangeRecordIds(changeRecordIds);
}
}
......@@ -37,5 +37,19 @@ public interface ChangeSubFlowRecordMapper extends tk.mybatis.mapper.common.Mapp
@Select("SELECT * FROM TB_YX_QC_CHANGE_SUB_FLOW_RECORD WHERE sub_flow_id = #{subFlowId} LIMIT 1")
ChangeSubFlowRecord selectBySubFlowId(@Param("subFlowId") String subFlowId);
/**
* 批量根据主单记录ID列表查询变更行动工单列表
* @param changeRecordIds 主单记录ID列表
* @return 变更行动工单列表
*/
@Select("<script>" +
"SELECT * FROM TB_YX_QC_CHANGE_SUB_FLOW_RECORD " +
"WHERE change_record_id IN " +
"<foreach collection='changeRecordIds' item='id' open='(' separator=',' close=')'>" +
"#{id}" +
"</foreach>" +
"</script>")
List<ChangeSubFlowRecord> selectByChangeRecordIds(@Param("changeRecordIds") List<Long> changeRecordIds);
}
......@@ -10,7 +10,6 @@ import java.util.List;
import com.netease.mail.yanxuan.change.common.enums.ChangeStatusEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum;
import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowFile;
import lombok.AllArgsConstructor;
......@@ -190,4 +189,9 @@ public class ChangeFlowVO {
* 当前节点
*/
private String flowNode;
/**
* 变更行动工单ID列表(即subFlowId列表)
*/
private List<String> subFlowIds;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment