Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -33,7 +33,7 @@ public interface SimulationTaskMapper extends BaseMapper<SimulationTask> {
|
||||
|
||||
SpdmTaskVo getTask(@Param("taskId") String taskId);
|
||||
|
||||
List<SpdmAnalysisTaskVo> taskList(@Param("req") SpdmAnalysisTaskListReq req, @Param("tenantId") Long tenantId, @Param("allNodeIdList") List<String> allNodeIdList, @Param("pos") int pos, @Param("limit") int limit);
|
||||
List<SpdmAnalysisTaskVo> taskList(@Param("req") SpdmAnalysisTaskListReq req, @Param("tenantId") Long tenantId, @Param("allNodeIdList") List<String> allNodeIdList, @Param("pos") int pos, @Param("limit") int limit,@Param("userId") Long userId);
|
||||
|
||||
void deleteAttentionByUserIdList(@Param("taskId") String taskId,@Param("userIdList") List<Long> userIdList);
|
||||
|
||||
|
||||
@@ -439,7 +439,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
}
|
||||
|
||||
public static String removeLeadingZeros(String jobNumber) {
|
||||
if (StringUtils.isNotBlank(jobNumber)) {
|
||||
if (StringUtils.isBlank(jobNumber)) {
|
||||
return "";
|
||||
}
|
||||
String trimmed = jobNumber.replaceAll("^0+","");
|
||||
@@ -475,7 +475,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
}
|
||||
if (type == 0) {
|
||||
// 创建人是当前用户
|
||||
demandList = demandList.stream().filter(demand -> jobNumber.equals(String.valueOf(demand.getCreator()))).toList();
|
||||
demandList = demandList.stream().filter(demand -> jobNumber.equals(String.valueOf(demand.getCreator())) || currentUserId.equals(demand.getCreator())).toList();
|
||||
} else {
|
||||
// 仿真负责人是当前用户
|
||||
List<SpdmDemandMemberVo> pDemandMemberVoList = demandMemberVoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType()) && currentUserId.equals(member.getUserId())).toList();
|
||||
@@ -1807,11 +1807,17 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
@Override
|
||||
public SdmResponse listNoPermission(SpdmDemandListReq req) {
|
||||
Long tenantId = ThreadLocalContext.getTenantId();
|
||||
String jobNumber = removeLeadingZeros(ThreadLocalContext.getJobNumber());
|
||||
Long currentUserId = ThreadLocalContext.getUserId();
|
||||
if (ObjectUtils.isEmpty(tenantId) || ObjectUtils.isEmpty(jobNumber)) {
|
||||
log.error("公司和工号都不能为空");
|
||||
return SdmResponse.failed("公司和工号都不能为空");
|
||||
}
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("data", new ArrayList<>());
|
||||
List<SpdmDemandVo> demandList = mapper.getDemandListNoPermission(tenantId,req);
|
||||
List<SpdmDemandVo> demandList = mapper.getDemandList(tenantId, req);
|
||||
if (CollectionUtils.isEmpty(demandList)) {
|
||||
log.error("未查询到需求");
|
||||
log.error("根据tenantId:{},未查询到需求", tenantId);
|
||||
return SdmResponse.success(jsonObject);
|
||||
}
|
||||
// 0:我发起的 1:我确认的
|
||||
@@ -1821,6 +1827,27 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
return SdmResponse.success(jsonObject);
|
||||
}
|
||||
List<SpdmDemandMemberVo> demandMemberVoList = mapper.getMemberList(demandList.stream().map(SpdmDemandVo::getUuid).toList(), null);
|
||||
if (CollectionUtils.isEmpty(demandMemberVoList)) {
|
||||
log.error("demandList0为空");
|
||||
return SdmResponse.success(jsonObject);
|
||||
}
|
||||
if (type == 0) {
|
||||
// 创建人是当前用户
|
||||
demandList = demandList.stream().filter(demand -> jobNumber.equals(String.valueOf(demand.getCreator())) || currentUserId.equals(demand.getCreator())).toList();
|
||||
} else {
|
||||
// 仿真负责人是当前用户
|
||||
List<SpdmDemandMemberVo> pDemandMemberVoList = demandMemberVoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType()) && currentUserId.equals(member.getUserId())).toList();
|
||||
if (CollectionUtils.isNotEmpty(pDemandMemberVoList)) {
|
||||
List<String> myDemandIdList = pDemandMemberVoList.stream().map(SpdmDemandMemberVo::getDemandId).toList();
|
||||
demandList = demandList.stream().filter(demand -> myDemandIdList.contains(demand.getUuid())).toList();
|
||||
}else {
|
||||
return SdmResponse.success(jsonObject);
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isEmpty(demandList)) {
|
||||
log.error("demandList1为空");
|
||||
return SdmResponse.success(jsonObject);
|
||||
}
|
||||
List<SpdmTaskVo> taskList = taskMapper.getTaskListByDemandIdList(demandList.stream().map(SpdmDemandVo::getUuid).toList());
|
||||
Map<String, List<SpdmTaskVo>> taskMap = Map.of();
|
||||
if (CollectionUtils.isNotEmpty(taskList)) {
|
||||
@@ -2005,10 +2032,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
nodeMap = nodeList.stream().collect(Collectors.groupingBy(SpdmNodeVo::getUuid));
|
||||
}
|
||||
}
|
||||
List<Long> userIdList = new ArrayList<>();
|
||||
if (CollectionUtils.isNotEmpty(demandMemberVoList)) {
|
||||
userIdList = demandMemberVoList.stream().map(SpdmDemandMemberVo::getUserId).toList();
|
||||
}
|
||||
List<Long> userIdList = demandMemberVoList.stream().map(SpdmDemandMemberVo::getUserId).toList();
|
||||
Map<Long, List<CIDUserResp>> userMap = Map.of();
|
||||
if (CollectionUtils.isNotEmpty(userIdList)) {
|
||||
SdmResponse<List<CIDUserResp>> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(userIdList).build());
|
||||
@@ -2041,7 +2065,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
}
|
||||
if (StringUtils.isNotBlank(spdmDemandVo.getWorkspaceId())) {
|
||||
spdmDemandVo.setWorkspaceName(CollectionUtils.isNotEmpty(nodeMap.get(spdmDemandVo.getWorkspaceId())) ? nodeMap.get(spdmDemandVo.getWorkspaceId()).get(0).getNodeName() : "");
|
||||
spdmDemandVo.setWorkspaceCode(CollectionUtils.isNotEmpty(nodeMap.get(spdmDemandVo.getWorkspaceId())) ? nodeMap.get(spdmDemandVo.getWorkspaceId()).get(0).getNodeCode() : "");
|
||||
spdmDemandVo.setWorkspaceCode((CollectionUtils.isNotEmpty(nodeMap.get(spdmDemandVo.getWorkspaceId())) ? nodeMap.get(spdmDemandVo.getWorkspaceId()).get(0).getNodeCode() : ""));
|
||||
}
|
||||
eachDemandMemberList = demandMemberMap.get(spdmDemandVo.getUuid());
|
||||
if (CollectionUtils.isEmpty(eachDemandMemberList)) {
|
||||
|
||||
@@ -1632,6 +1632,7 @@ public class TaskServiceImpl implements ITaskService {
|
||||
int pos = (req.getCurrent() - 1) * req.getSize();
|
||||
int limit = req.getSize();
|
||||
Long tenantId = ThreadLocalContext.getTenantId();
|
||||
Long userId = ThreadLocalContext.getUserId();
|
||||
String projectNodeId = req.getProjectNodeId();
|
||||
String phaseNodeId = req.getPhaseNodeId();
|
||||
String machineNodeId = req.getMachineNodeId();
|
||||
@@ -1672,7 +1673,7 @@ public class TaskServiceImpl implements ITaskService {
|
||||
if (StringUtils.isNotBlank(taskNodeId)) {
|
||||
allTaskVoList = mapper.getAnalysisTask(taskNodeId);
|
||||
} else {
|
||||
taskVoList = mapper.taskList(req, tenantId, new ArrayList<>(), pos, limit);
|
||||
taskVoList = mapper.taskList(req, tenantId, new ArrayList<>(), pos, limit,userId);
|
||||
if (CollectionUtils.isEmpty(taskVoList)) {
|
||||
log.error("数据分析中未查询到任务信息");
|
||||
jsonObject.put("data", new ArrayList<>());
|
||||
@@ -1707,21 +1708,22 @@ public class TaskServiceImpl implements ITaskService {
|
||||
return SdmResponse.success(jsonObject);
|
||||
}
|
||||
List<ProjectNodePo> allNodeList = projectMapper.getNodeListByNodeIdList(allNodeIdList);
|
||||
Map<String, ProjectNodePo> nodeMap = allNodeList.stream().collect(Collectors.groupingBy(
|
||||
ProjectNodePo::getUuid,
|
||||
Collectors.collectingAndThen(
|
||||
Collectors.toList(),
|
||||
list -> list.get(0)
|
||||
)
|
||||
));
|
||||
Map<String, ProjectNodePo> nodeMap = allNodeList.stream().collect(Collectors.toMap(ProjectNodePo::getUuid,Function.identity()));
|
||||
// 设置仿真负责人
|
||||
List<String> taskIdList = taskVoList.stream().map(SpdmAnalysisTaskVo::getUuid).toList();
|
||||
List<TaskNodeMemberPo> taskNodeMemberPoList = projectMapper.queryTaskNodeMembersByNodeIdList(taskIdList);
|
||||
Map<String, List<TaskNodeMemberPo>> memberMap = Map.of();
|
||||
Map<String, List<TaskNodeMemberPo>> memberMap = new HashMap<>();
|
||||
Map<Long, String> cidUserMap = new HashMap<>();
|
||||
if (CollectionUtils.isNotEmpty(taskNodeMemberPoList)) {
|
||||
taskNodeMemberPoList = taskNodeMemberPoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).toList();
|
||||
if (CollectionUtils.isNotEmpty(taskNodeMemberPoList)) {
|
||||
memberMap = taskNodeMemberPoList.stream().collect(Collectors.groupingBy(TaskNodeMemberPo::getTaskId));
|
||||
SdmResponse<List<CIDUserResp>> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder()
|
||||
.userIds(taskNodeMemberPoList.stream().map(TaskNodeMemberPo::getUserId).toList()).build());
|
||||
List<CIDUserResp> cidUserRespList;
|
||||
if (cidUserResp.isSuccess() && CollectionUtils.isNotEmpty(cidUserRespList = cidUserResp.getData())) {
|
||||
cidUserMap = cidUserRespList.stream().collect(Collectors.toMap(CIDUserResp::getUserId, CIDUserResp::getNickname));
|
||||
}
|
||||
}
|
||||
}
|
||||
ProjectNodePo eachProjectNodePo;
|
||||
@@ -1729,11 +1731,13 @@ public class TaskServiceImpl implements ITaskService {
|
||||
for (SpdmAnalysisTaskVo task : taskVoList) {
|
||||
eachProjectNodePo = nodeMap.get(task.getNodeId());
|
||||
|
||||
SpdmNodeVo phaseNode = nodeMapper.getNodeById(task.getTag2());
|
||||
// SpdmNodeVo phaseNode = nodeMapper.getNodeById(task.getTag2());
|
||||
ProjectNodePo phaseNode = nodeMap.get(task.getTag2());
|
||||
if (phaseNode != null) {
|
||||
task.setPhaseName(phaseNode.getNodeName());
|
||||
}
|
||||
SpdmNodeVo projectNode = nodeMapper.getNodeById(task.getTag1());
|
||||
// SpdmNodeVo projectNode = nodeMapper.getNodeById(task.getTag1());
|
||||
ProjectNodePo projectNode = nodeMap.get(task.getTag1());
|
||||
if (projectNode != null) {
|
||||
task.setProjectName(projectNode.getNodeName());
|
||||
}
|
||||
@@ -1742,13 +1746,16 @@ public class TaskServiceImpl implements ITaskService {
|
||||
}
|
||||
|
||||
eachTaskNodeMemberPoList = memberMap.get(task.getUuid());
|
||||
if (CollectionUtils.isNotEmpty(eachTaskNodeMemberPoList)) {
|
||||
SdmResponse<List<CIDUserResp>> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder()
|
||||
.userIds(eachTaskNodeMemberPoList.stream().map(TaskNodeMemberPo::getUserId).toList()).build());
|
||||
if (cidUserResp == null || !cidUserResp.isSuccess() || CollectionUtils.isEmpty(cidUserResp.getData())) {
|
||||
continue;
|
||||
if (CollectionUtils.isNotEmpty(eachTaskNodeMemberPoList) && MapUtils.isNotEmpty(cidUserMap)) {
|
||||
List<String> nickNameList = new ArrayList<>();
|
||||
for (TaskNodeMemberPo taskNodeMemberPo : eachTaskNodeMemberPoList) {
|
||||
String nickName = cidUserMap.get(taskNodeMemberPo.getUserId());
|
||||
if (StringUtils.isBlank(nickName)) {
|
||||
continue;
|
||||
}
|
||||
nickNameList.add(nickName);
|
||||
}
|
||||
task.setPMembers(cidUserResp.getData().stream().map(CIDUserResp::getNickname).collect(Collectors.joining(",")));
|
||||
task.setPMembers(String.join(",", nickNameList));
|
||||
}
|
||||
}
|
||||
jsonObject.put("currentPage", req.getCurrent());
|
||||
|
||||
@@ -233,9 +233,13 @@
|
||||
</select>
|
||||
|
||||
<select id="taskList" resultType="com.sdm.project.model.vo.SpdmAnalysisTaskVo">
|
||||
select * from simulation_task where tenant_id = #{tenantId}
|
||||
SELECT st.*
|
||||
FROM simulation_task st
|
||||
LEFT JOIN simulation_task_member stm ON st.uuid = stm.task_id
|
||||
WHERE stm.user_id = #{userId}
|
||||
AND st.tenant_id = #{tenantId}
|
||||
<if test="allNodeIdList != null and allNodeIdList.size > 0">
|
||||
and node_id in (
|
||||
and st.node_id in (
|
||||
<foreach collection='allNodeIdList' item='nodeId' index='index' separator=','>
|
||||
#{nodeId}
|
||||
</foreach>
|
||||
@@ -243,20 +247,53 @@
|
||||
</if>
|
||||
<if test="req.taskName != null and req.taskName != ''">
|
||||
<bind name="searchKey1" value="'%' + req.taskName + '%'"/>
|
||||
and task_name like #{searchKey1}
|
||||
and st.task_name like #{searchKey1}
|
||||
</if>
|
||||
<if test="req.name != null and req.name != ''">
|
||||
<bind name="searchKey2" value="'%' + req.name + '%'"/>
|
||||
and task_name like #{searchKey2}
|
||||
and st.task_name like #{searchKey2}
|
||||
</if>
|
||||
<if test="req.beginTime != null and req.beginTime != ''">
|
||||
<![CDATA[
|
||||
and STR_TO_DATE(begin_time,'%Y-%m-%d %H:%i:%s') >= #{req.beginTime}
|
||||
and STR_TO_DATE(st.begin_time,'%Y-%m-%d %H:%i:%s') >= #{req.beginTime}
|
||||
]]>
|
||||
</if>
|
||||
<if test="req.endTime != null and req.endTime != ''">
|
||||
<![CDATA[
|
||||
and STR_TO_DATE(end_time,'%Y-%m-%d %H:%i:%s') <= #{req.endTime}
|
||||
and STR_TO_DATE(st.end_time,'%Y-%m-%d %H:%i:%s') <= #{req.endTime}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
UNION
|
||||
|
||||
SELECT st.*
|
||||
FROM simulation_task st
|
||||
LEFT JOIN simulation_node_member snm ON st.tag1 = snm.nodeId
|
||||
WHERE snm.user_id = #{userId}
|
||||
AND st.tenant_id = #{tenantId}
|
||||
<if test="allNodeIdList != null and allNodeIdList.size > 0">
|
||||
and st.node_id in (
|
||||
<foreach collection='allNodeIdList' item='nodeId' index='index' separator=','>
|
||||
#{nodeId}
|
||||
</foreach>
|
||||
)
|
||||
</if>
|
||||
<if test="req.taskName != null and req.taskName != ''">
|
||||
<bind name="searchKey1" value="'%' + req.taskName + '%'"/>
|
||||
and st.task_name like #{searchKey1}
|
||||
</if>
|
||||
<if test="req.name != null and req.name != ''">
|
||||
<bind name="searchKey2" value="'%' + req.name + '%'"/>
|
||||
and st.task_name like #{searchKey2}
|
||||
</if>
|
||||
<if test="req.beginTime != null and req.beginTime != ''">
|
||||
<![CDATA[
|
||||
and STR_TO_DATE(st.begin_time,'%Y-%m-%d %H:%i:%s') >= #{req.beginTime}
|
||||
]]>
|
||||
</if>
|
||||
<if test="req.endTime != null and req.endTime != ''">
|
||||
<![CDATA[
|
||||
and STR_TO_DATE(st.end_time,'%Y-%m-%d %H:%i:%s') <= #{req.endTime}
|
||||
]]>
|
||||
</if>
|
||||
order by create_time desc
|
||||
|
||||
Reference in New Issue
Block a user