fix(oa/erp):修复项目计划查询和保存逻辑

- 添加空值检查避免空指针异常
- 优化项目计划阶段列表的插入逻辑- 使用ObjectUtils工具类进行对象判空- 调整条件判断顺序提高代码可读性
dev
zangch@mesnac.com 1 month ago
parent c58e0d6747
commit 331f558633

@ -9,6 +9,7 @@ import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.enums.OAStatusEnum;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.ObjectUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -66,6 +67,9 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService {
public ErpProjectPlanVo queryById(Long projectPlanId){
// 使用自定义方法查询,包含关联数据
ErpProjectPlanVo projectPlanVo = baseMapper.selectCustomErpProjectPlanVoById(projectPlanId);
if (ObjectUtils.isEmpty(projectPlanVo)) {
return null;
}
// 查询项目计划阶段列表
MPJLambdaWrapper<ErpProjectPlanStage> lqw = JoinWrappers.lambda(ErpProjectPlanStage.class)
.selectAll(ErpProjectPlanStage.class)
@ -139,12 +143,14 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService {
validateProjectManager(bo.getManagerId());
List<ErpProjectPlanStage> planStageList = bo.getPlanStageList();
boolean flag = baseMapper.insert(add) > 0;
if (flag && planStageList != null && !planStageList.isEmpty()) {
if (flag) {
bo.setProjectPlanId(add.getProjectPlanId());
for (ErpProjectPlanStage planStage : planStageList) {
planStage.setProjectPlanId(add.getProjectPlanId());
planStage.setProjectId(add.getProjectId());
planStageMapper.insert(planStage);
if ( ObjectUtils.isNotEmpty(planStageList)) {
for (ErpProjectPlanStage planStage : planStageList) {
planStage.setProjectPlanId(add.getProjectPlanId());
planStage.setProjectId(add.getProjectId());
planStageMapper.insert(planStage);
}
}
}
return flag;

Loading…
Cancel
Save