diff --git a/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java index a1af64ea..e1f2371b 100644 --- a/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java +++ b/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java @@ -31,4 +31,6 @@ public interface SimulationDemandMapper extends BaseMapper { List getMemberList(@Param("demandIdList") List demandIdList, @Param("memberType") Integer memberType); SpdmDemandVo getDemandByName(@Param("tenantId") Long tenantId,@Param("demandName") String demandName); + + List getDemandExtraList(@Param("demandIdList") List demandIdList); } diff --git a/project/src/main/java/com/sdm/project/model/vo/SpdmDemandExtraVo.java b/project/src/main/java/com/sdm/project/model/vo/SpdmDemandExtraVo.java new file mode 100644 index 00000000..293d70bb --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/vo/SpdmDemandExtraVo.java @@ -0,0 +1,43 @@ +package com.sdm.project.model.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.sdm.common.entity.pojo.BaseEntity; +import com.sdm.common.entity.resp.system.CIDUserResp; +import com.sdm.project.model.req.SpdmDemandExtraReq; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +@Data +public class SpdmDemandExtraVo extends BaseEntity { + + /** + * 关联的需求id + */ + private String demandId; + + /** + * 需求拓展属性编码 + */ + private String propertyName; + + /** + * 需求拓展属性值 + */ + private String propertyValue; + + + /** + * 需求拓展属性值类型 + */ + private String valueType; + + /** + * 需求拓展属性class + */ + private Integer propertyClass; + + + +} diff --git a/project/src/main/java/com/sdm/project/model/vo/SpdmDemandVo.java b/project/src/main/java/com/sdm/project/model/vo/SpdmDemandVo.java index 1e799255..769d2865 100644 --- a/project/src/main/java/com/sdm/project/model/vo/SpdmDemandVo.java +++ b/project/src/main/java/com/sdm/project/model/vo/SpdmDemandVo.java @@ -85,7 +85,7 @@ public class SpdmDemandVo extends BaseEntity { /** * 预留拓展属性 */ - private List extraList; + private List extraList; /** * 项目名称 diff --git a/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java index 80c2f897..ff57aad2 100644 --- a/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java @@ -439,7 +439,12 @@ public class DemandServiceImpl extends BaseService implements IDemandService { userMap = userList.stream().collect(Collectors.groupingBy(CIDUserResp::getUserId)); } } - + List demandIdList = demandList.stream().map(SpdmDemandVo::getUuid).toList(); + List demandExtraList = mapper.getDemandExtraList(demandIdList); + Map> demandExtraMap = Map.of(); + if (CollectionUtils.isNotEmpty(demandExtraList)) { + demandExtraMap = demandExtraList.stream().collect(Collectors.groupingBy(SpdmDemandExtraVo::getDemandId)); + } for (SpdmDemandVo spdmDemandVo : demandList) { eachTaskList = taskMap.get(spdmDemandVo.getUuid()); spdmDemandVo.setProgress(CollectionUtils.isEmpty(eachTaskList) ? 0 : eachTaskList.stream().mapToInt(SpdmTaskVo::getProgress).sum() / eachTaskList.size()); @@ -467,6 +472,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService { } } spdmDemandVo.setEMemberList(spdmEUserVoList); + spdmDemandVo.setExtraList(demandExtraMap.get(spdmDemandVo.getUuid())); } jsonObject.put("data", demandList); return SdmResponse.success(jsonObject); diff --git a/project/src/main/resources/mapper/SimulationDemandMapper.xml b/project/src/main/resources/mapper/SimulationDemandMapper.xml index 485e4d45..4ffb7768 100644 --- a/project/src/main/resources/mapper/SimulationDemandMapper.xml +++ b/project/src/main/resources/mapper/SimulationDemandMapper.xml @@ -19,9 +19,9 @@ - insert into simulation_demand_extra (uuid,demand_id,nodeId,property_name,property_value,value_type,property_class,creator,create_time) values + insert into simulation_demand_extra (demand_id,property_name,property_value,value_type,property_class,creator,create_time) values - (#{extra.uuid},#{extra.demandId},#{extra.nodeId},#{extra.propertyName},#{extra.propertyValue},#{extra.valueType},#{extra.propertyClass},#{extra.creator},#{extra.createTime}) + (#{extra.demandId},#{extra.propertyName},#{extra.propertyValue},#{extra.valueType},#{extra.propertyClass},#{extra.creator},#{extra.createTime}) @@ -152,4 +152,12 @@ select * from simulation_demand where tenant_id = #{tenantId} and demand_name = #{demandName} limit 1 + + \ No newline at end of file