|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package org.dromara.oa.erp.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
@ -374,8 +375,8 @@ public class ErpProjectChangeServiceImpl implements IErpProjectChangeService {
|
|
|
|
|
if (lastChange != null) {
|
|
|
|
|
// 复制上一次变更的项目当前情况说明等信息作为参考
|
|
|
|
|
vo.setCurrentStatus(lastChange.getCurrentStatus());
|
|
|
|
|
vo.setChangeReason(""); // 变更原因需要重新填写
|
|
|
|
|
vo.setFollowUpWork(""); // 后续工作需要重新填写
|
|
|
|
|
vo.setChangeReason(lastChange.getChangeReason()); // 继承之前的变更原因,方便用户修改
|
|
|
|
|
vo.setFollowUpWork(lastChange.getFollowUpWork()); // 继承之前的后续工作,方便用户修改
|
|
|
|
|
|
|
|
|
|
// 查询上一次变更的预算变更明细作为参考
|
|
|
|
|
List<ErpProjectChangeBudget> lastBudgetList = changeBudgetMapper.selectList(
|
|
|
|
|
@ -423,8 +424,8 @@ public class ErpProjectChangeServiceImpl implements IErpProjectChangeService {
|
|
|
|
|
// 设置申请变更日期为当前日期
|
|
|
|
|
vo.setApplyChangeDate(Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant()));
|
|
|
|
|
|
|
|
|
|
// 如果没有历史变更记录,从项目计划阶段和预算明细中初始化数据
|
|
|
|
|
if (changeCount == 0) {
|
|
|
|
|
// 如果进度明细未被初始化(比如这是第1次变更,或过去的所有变更发生时还没有建立项目计划阶段)
|
|
|
|
|
if (CollUtil.isEmpty(vo.getProgressList())) {
|
|
|
|
|
// 查询项目计划阶段,转换为进度变更明细
|
|
|
|
|
List<ErpProjectPlanStage> planStages = planStageMapper.selectList(
|
|
|
|
|
Wrappers.<ErpProjectPlanStage>lambdaQuery()
|
|
|
|
|
@ -447,8 +448,10 @@ public class ErpProjectChangeServiceImpl implements IErpProjectChangeService {
|
|
|
|
|
progressList.add(progress);
|
|
|
|
|
}
|
|
|
|
|
vo.setProgressList(progressList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 查询项目预算明细,转换为预算变更明细
|
|
|
|
|
// 如果预算明细未被初始化(比如这是第1次变更,或者过去的所有变更发生时项目还没有做过预算)
|
|
|
|
|
if (CollUtil.isEmpty(vo.getBudgetList())) {
|
|
|
|
|
List<ErpProjectChangeBudget> budgetList = new ArrayList<>();
|
|
|
|
|
if (budgetInfo != null) {
|
|
|
|
|
// 查询预算明细
|
|
|
|
|
@ -707,12 +710,8 @@ public class ErpProjectChangeServiceImpl implements IErpProjectChangeService {
|
|
|
|
|
.orderByAsc(ErpProjectChangeBudget::getSortOrder)
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
vo.setProgressList(changeProgressMapper.selectList(
|
|
|
|
|
Wrappers.lambdaQuery(ErpProjectChangeProgress.class)
|
|
|
|
|
.eq(ErpProjectChangeProgress::getProjectChangeId, vo.getProjectChangeId())
|
|
|
|
|
.eq(ErpProjectChangeProgress::getDelFlag, "0")
|
|
|
|
|
.orderByAsc(ErpProjectChangeProgress::getSortOrder)
|
|
|
|
|
));
|
|
|
|
|
// 使用 selectProgressWithStageInfo 连表查询以带出 project_phases,否则在 @TableField(exist = false) 下字段会为空导致前端显示为“未知”
|
|
|
|
|
vo.setProgressList(changeProgressMapper.selectProgressWithStageInfo(vo.getProjectChangeId()));
|
|
|
|
|
|
|
|
|
|
voList.add(vo);
|
|
|
|
|
}
|
|
|
|
|
|