From 13b61a3d8909a579e88c346756d621728b59855c Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 10 十二月 2024 16:11:43 +0800 Subject: [PATCH] 任务发起人信息设置 --- business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java | 102 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 99 insertions(+), 3 deletions(-) diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java index 79674ce..58300ba 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java @@ -1,10 +1,20 @@ package com.ycl.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +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; import com.ycl.domain.entity.ProjectPlanProgressReport; import com.ycl.domain.vo.ProgressReportResponseVO; import com.ycl.framework.utils.PageUtil; +import com.ycl.mapper.FileMapper; +import com.ycl.mapper.ProjectPlanExamineRecordMapper; +import com.ycl.mapper.ProjectPlanInfoMapper; import com.ycl.mapper.ProjectPlanProgressReportMapper; import com.ycl.service.ProjectPlanProgressReportService; @@ -12,11 +22,14 @@ import com.ycl.domain.form.ProjectPlanProgressReportForm; import com.ycl.domain.vo.ProjectPlanProgressReportVO; import com.ycl.domain.query.ProjectPlanProgressReportQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -31,16 +44,60 @@ public class ProjectPlanProgressReportServiceImpl extends ServiceImpl<ProjectPlanProgressReportMapper, ProjectPlanProgressReport> implements ProjectPlanProgressReportService { private final ProjectPlanProgressReportMapper projectPlanProgressReportMapper; + @Autowired + private final ProjectPlanExamineRecordMapper projectPlanExamineRecordMapper; + @Autowired + private ProjectPlanInfoMapper projectPlanInfoMapper; + @Autowired + private FileMapper fileMapper; /** * 娣诲姞 * @param form * @return */ + @Transactional(rollbackFor = Exception.class) @Override - public Result add(ProjectPlanProgressReportForm form) { - ProjectPlanProgressReport entity = ProjectPlanProgressReportForm.getEntityByForm(form, null); - baseMapper.insert(entity); + 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.getProgressStatusStr()); + projectPlanProgressReport.setActualInvest(form.getActualInvest()); + + // 鍒ゆ柇涓婃姤鐘舵�� + if (form.getProgressStatusInt() == 0) { // 鏈紑濮� 涓婃姤杩涘害 + // 鏂板杩涘害涓婃姤鍐呭 + baseMapper.insert(projectPlanProgressReport); + }else if (form.getProgressStatusInt() == 2) { // 宸查┏鍥� 閲嶆柊涓婃姤 + // 鏇存柊杩涘害涓婃姤鍐呭 + baseMapper.updateById(projectPlanProgressReport); + } + + // 鏂囦欢涓婁紶 + new LambdaUpdateChainWrapper<>(fileMapper) + .eq(File::getBusId, form.getId()) + .eq(File::getType, FileTypeEnum.PROJECT_PROGRESS_INFO_REPORT.getType()) + .set(File::getDeleted,1) + .update(); + 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()); + file.setGmtUpdate(new Date()); + file.setDeleted(0); + fileMapper.insert(file); + }); + } + // 鏇存柊璁″垝椤圭殑杩涘害鐘舵�佷负鏈鏍� + new LambdaUpdateChainWrapper<>(projectPlanInfoMapper) + .eq(ProjectPlanInfo::getId, form.getId()) + .set(ProjectPlanInfo::getProgressStatus, 1) + .update(); return Result.ok("娣诲姞鎴愬姛"); } @@ -102,6 +159,9 @@ @Override public Result detail(Integer id) { ProgressReportResponseVO vo = baseMapper.getDetail(id); + if (vo != null) { + vo.setFileList(new LambdaQueryChainWrapper<>(fileMapper).eq(File::getBusId, id).eq(File::getType, FileTypeEnum.PROJECT_PROGRESS_INFO_REPORT).list()); + } return Result.ok().data(vo); } @@ -117,4 +177,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("瀹℃壒鎴愬姛"); + } } -- Gitblit v1.8.0