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

Loading…
Cancel
Save