这里是两个VO类 @Data @ApiModel(value = "飞手vo") public class BisFlyerVO extends PageReqVO implements Serializable { @ApiModelProperty(value = "id") private Integer id; @ApiModelProperty(value = "待飞行任务") private String taskStatus; } @Data @ApiModel(value = "飞行任务管理-后端列表页vo") public class BisTaskVO extends PageReqVO implements Serializable { @ApiModelProperty(value = "id") private Integer id; @ApiModelProperty(value = "飞手id") private Integer flyerId; @ApiModelProperty(value = "任务状态 1 待指派 2已指派 3已完成 4待飞行 5待上传 6已上传 7驳回 8审核通过") private Integer taskStatus; } 写一个添加操作,先获取BisTask类的id,并判断taskStatus的值是否等于1, 在获取BisFlyer类的id,将这个BisFlyer类的id的值赋值给BisTask的flyerId, 用mybatis-plus写,不要写mapper和sql
时间: 2024-01-12 08:03:07 浏览: 70
可以按照以下方式实现添加操作:
```java
@Service
public class BisTaskService extends ServiceImpl<BisTaskMapper, BisTask> {
@Autowired
private BisFlyerMapper bisFlyerMapper;
/**
* 添加任务
*
* @param bisTaskVO 任务信息
* @return 添加结果
*/
public boolean addTask(BisTaskVO bisTaskVO) {
BisTask bisTask = new BisTask();
BeanUtils.copyProperties(bisTaskVO, bisTask);
// 判断任务状态是否为待指派
if (bisTask.getTaskStatus() != 1) {
throw new RuntimeException("任务状态必须为待指派");
}
// 获取飞手信息
BisFlyerVO bisFlyerVO = new BisFlyerVO();
bisFlyerVO.setId(bisTaskVO.getFlyerId());
BisFlyer bisFlyer = bisFlyerMapper.selectOne(new QueryWrapper<>(bisFlyerVO));
if (bisFlyer == null) {
throw new RuntimeException("飞手信息不存在");
}
bisTask.setFlyerId(bisFlyer.getId());
return save(bisTask);
}
}
```
需要注意的是,我们需要在 `BisTaskService` 中注入 `BisFlyerMapper`,用于获取飞手信息。在添加任务时,我们首先将 `BisTaskVO` 转换成 `BisTask`,然后判断任务状态是否为待指派。如果不是,则抛出异常;否则,根据 `BisTaskVO` 中的 `flyerId` 获取对应的飞手信息,将该飞手的 `id` 赋值给 `BisTask` 中的 `flyerId`,最后将 `BisTask` 保存到数据库即可。
阅读全文