1、查询报工中,owner转换为对象

This commit is contained in:
2026-01-09 19:45:54 +08:00
parent f956a7310c
commit 5e71130269
2 changed files with 46 additions and 5 deletions

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sdm.common.entity.resp.system.CIDUserResp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -60,6 +61,9 @@ public class SimulationWork implements Serializable {
@TableField("owner")
private Long owner;
@TableField(exist = false)
private CIDUserResp ownerValue;
@ApiModelProperty(value = "描述")
@TableField("description")
private String description;

View File

@@ -5,24 +5,32 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.req.system.UserQueryReq;
import com.sdm.common.entity.resp.system.CIDUserResp;
import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
import com.sdm.common.utils.PageUtils;
import com.sdm.common.utils.TimeCalculator;
import com.sdm.project.common.MemberTypeEnum;
import com.sdm.project.dao.SimulationWorkMapper;
import com.sdm.project.model.entity.SimulationLocalJob;
import com.sdm.project.model.entity.SimulationWork;
import com.sdm.project.model.req.SpdmWorkListReq;
import com.sdm.project.model.req.SpdmWorkReq;
import com.sdm.project.model.vo.SpdmTaskMemberVo;
import com.sdm.project.model.vo.SpdmTaskVo;
import com.sdm.project.service.ISimulationWorkService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
@@ -36,6 +44,9 @@ import java.util.List;
@Slf4j
public class SimulationWorkServiceImpl extends ServiceImpl<SimulationWorkMapper, SimulationWork> implements ISimulationWorkService {
@Autowired
private SysUserFeignClientImpl sysUserFeignClient;
@Override
public SdmResponse addWork(SpdmWorkReq req) {
SimulationWork simulationWork = new SimulationWork();
@@ -63,7 +74,7 @@ public class SimulationWorkServiceImpl extends ServiceImpl<SimulationWorkMapper,
.eq(SimulationWork::getId, id)
.update();
} else if (type == 1) {
updateFlag =this.lambdaUpdate().set(SimulationWork::getFinishTime, curDateStr)
updateFlag = this.lambdaUpdate().set(SimulationWork::getFinishTime, curDateStr)
.eq(SimulationWork::getId, id)
.update();
} else {
@@ -96,10 +107,36 @@ public class SimulationWorkServiceImpl extends ServiceImpl<SimulationWorkMapper,
return updateFlag ? SdmResponse.success() : SdmResponse.failed("更新报工信息失败");
}
private void setPMemberList(SpdmTaskVo task, List<SpdmTaskMemberVo> eachMemberList) {
// 由于我分发的、我执行的、我关注的、所有任务,都需要展示仿真负责人,故将负责人抽成方法调用
List<Long> pUserIdList = eachMemberList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType()) && StringUtils.equals(task.getUuid(), member.getTaskId())).map(SpdmTaskMemberVo::getUserId).distinct().toList();
if (CollectionUtils.isNotEmpty(pUserIdList)) {
SdmResponse<List<CIDUserResp>> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(pUserIdList).build());
task.setPMemberList(cidUserResp.getData());
}
}
@Override
public SdmResponse queryWork(SpdmWorkListReq req) {
PageHelper.startPage(req.getCurrent(), req.getSize());
List<SimulationWork> workList = this.lambdaQuery().eq(SimulationWork::getTaskId,req.getTaskId()).list();
List<SimulationWork> workList = this.lambdaQuery().eq(SimulationWork::getTaskId, req.getTaskId()).list();
if (CollectionUtils.isEmpty(workList)) {
PageInfo<SimulationWork> page = new PageInfo<>(workList);
return PageUtils.getJsonObjectSdmResponse(workList, page);
}
SdmResponse<List<CIDUserResp>> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(workList.stream().map(SimulationWork::getOwner).filter(ObjectUtils::isNotEmpty).toList()).build());
if (CollectionUtils.isEmpty(cidUserResp.getData())) {
PageInfo<SimulationWork> page = new PageInfo<>(workList);
return PageUtils.getJsonObjectSdmResponse(workList, page);
}
Map<Long, CIDUserResp> userMap = cidUserResp.getData().stream().distinct()
.collect(Collectors.toMap(CIDUserResp::getUserId, Function.identity()));
for (SimulationWork simulationWork : workList) {
if (ObjectUtils.isEmpty(simulationWork.getOwner())) {
continue;
}
simulationWork.setOwnerValue(userMap.get(simulationWork.getOwner()));
}
PageInfo<SimulationWork> page = new PageInfo<>(workList);
return PageUtils.getJsonObjectSdmResponse(workList, page);
}