bug
luohairen
2024-12-10 062b1245a57d4e8a1e04a62efbc7d872e36eb073
business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.ycl.common.base.Result;
import com.ycl.common.enums.business.FileTypeEnum;
import com.ycl.common.utils.SecurityUtils;
import com.ycl.domain.entity.File;
import com.ycl.domain.entity.ProjectPlanExamineRecord;
import com.ycl.domain.entity.ProjectPlanInfo;
@@ -58,17 +59,25 @@
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Result add(ProgressReportResponseVO form) {
        ProjectPlanProgressReport projectPlanProgressReport = new ProjectPlanProgressReport();
        projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue());
        projectPlanProgressReport.setStartTime(form.getActualStartTime());
        projectPlanProgressReport.setEndTime(form.getActualEndTime());
        projectPlanProgressReport.setProgressStatus(form.getProgressStatus());
        projectPlanProgressReport.setActualInvest(form.getActualInvest());
        if (form.getProgressReportId() == null) {
            baseMapper.insertOne(projectPlanProgressReport);
        }else {
            projectPlanProgressReport.setId(form.getProgressReportId());
//            baseMapper.updateOne(projectPlanProgressReport);
        // 判断上报状态
        if (form.getProgressStatusInt() == 0) { // 未开始  上报进度
            ProjectPlanProgressReport projectPlanProgressReport = new ProjectPlanProgressReport();
            projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue());
            projectPlanProgressReport.setStartTime(form.getActualStartTime());
            projectPlanProgressReport.setEndTime(form.getActualEndTime());
            projectPlanProgressReport.setProgressStatus(form.getProgressStatusStr());
            projectPlanProgressReport.setActualInvest(form.getActualInvest());
            // 新增进度上报内容
            baseMapper.insert(projectPlanProgressReport);
        }else if (form.getProgressStatusInt() == 2) { // 已驳回  重新上报
            ProjectPlanProgressReport projectPlanProgressReport = baseMapper.selectById(form.getProgressReportId());
            projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue());
            projectPlanProgressReport.setStartTime(form.getActualStartTime());
            projectPlanProgressReport.setEndTime(form.getActualEndTime());
            projectPlanProgressReport.setProgressStatus(form.getProgressStatusStr());
            projectPlanProgressReport.setActualInvest(form.getActualInvest());
            // 更新进度上报内容
            baseMapper.updateById(projectPlanProgressReport);
        }
@@ -81,6 +90,7 @@
        if (form.getFileList() != null && form.getFileList().size() > 0) {
            form.getFileList().stream()
                    .forEach(file -> {
                        file.setId(null);
                        file.setBusId(form.getId().longValue());
                        file.setType(FileTypeEnum.PROJECT_PROGRESS_INFO_REPORT);
                        file.setGmtCreate(new Date());
@@ -89,15 +99,7 @@
                        fileMapper.insert(file);
                    });
        }
        // 更新上级批复
        new LambdaUpdateChainWrapper<>(projectPlanExamineRecordMapper)
                .eq(ProjectPlanExamineRecord::getId, form.getExamineRecordId())
                .set(ProjectPlanExamineRecord::getDepartmentApprovalReply, form.getDepartmentApprovalReply())
                .set(ProjectPlanExamineRecord::getManageApprovalReply, form.getManageApprovalReply())
                .update();
        // 更新上报状态
        // 更新计划项的进度状态为未审核
        new LambdaUpdateChainWrapper<>(projectPlanInfoMapper)
                .eq(ProjectPlanInfo::getId, form.getId())
                .set(ProjectPlanInfo::getProgressStatus, 1)
@@ -181,4 +183,40 @@
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public Result examine(ProgressReportResponseVO form) {
        // 获得审批记录副本
        ProjectPlanExamineRecord record = projectPlanExamineRecordMapper.selectById(form.getExamineRecordId());
        // 新增一条审批记录
        ProjectPlanExamineRecord newRecord = new ProjectPlanExamineRecord();;
        newRecord.setProjectPlanRecordId(record.getProjectPlanRecordId());
        newRecord.setProjectPlanInfoId(record.getProjectPlanInfoId());
        newRecord.setDepartmentUserId(SecurityUtils.getUserId());
        newRecord.setDepartmentExamine(form.getDepartmentExamine());
        newRecord.setDepartmentApproval(form.getDepartmentApproval());
        newRecord.setManagerUserId(SecurityUtils.getUserId());
        newRecord.setManageExamine(form.getManageExamine());
        newRecord.setManageApproval(form.getManageApproval());
        newRecord.setEventType(2);
        newRecord.setDeleted(0);
        projectPlanExamineRecordMapper.insert(newRecord);
        // 判断审批结果
        if (form.getDepartmentExamine() == 0 && form.getManageExamine() == 0) { // 审批通过
            // 计划项进度状态更新为已完成
            new LambdaUpdateChainWrapper<>(projectPlanInfoMapper)
                    .eq(ProjectPlanInfo::getId, form.getId())
                    .set(ProjectPlanInfo::getProgressStatus, 3)
                    .update();
        }else { // 审批不通过
            // 计划项进度状态更新为已驳回
            new LambdaUpdateChainWrapper<>(projectPlanInfoMapper)
                    .eq(ProjectPlanInfo::getId, form.getId())
                    .set(ProjectPlanInfo::getProgressStatus, 2)
                    .update();
        }
        return Result.ok("审批成功");
    }
}