business/src/main/java/com/ycl/controller/ProgressPlanController.java
@@ -6,6 +6,8 @@ import com.ycl.common.group.Update; import com.ycl.domain.form.ProgressPlanForm; import com.ycl.domain.query.ProgressPlanQuery; import com.ycl.domain.vo.ProjectProgressFileListsRequest; import com.ycl.mapper.FileMapper; import com.ycl.service.ProgressPlanService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -31,6 +33,7 @@ public class ProgressPlanController { private final ProgressPlanService progressPlanService; private final FileMapper fileMapper; @PostMapping @ApiOperation(value = "添加", notes = "添加") @@ -80,4 +83,15 @@ public Result list() { return progressPlanService.all(); } @PostMapping("/saveProjectProgressFileLists") public Result saveProjectProgressFileLists(@RequestBody ProjectProgressFileListsRequest request) { return progressPlanService.saveProjectProgressFileLists(request); } @GetMapping("/getProjectProgressForm/{id}") public Result getProjectProgressForm(@PathVariable("id") Integer id) { return progressPlanService.getProjectProgressForm(id); } } business/src/main/java/com/ycl/controller/ProjectInfoController.java
@@ -99,4 +99,9 @@ public Result generateProjectCode() { return Result.ok().data(ProjectCodeGenerator.generateProjectCode()); }; @GetMapping("/getManagerFlag/{recordId}") public Result getManagerFlag(@PathVariable("recordId") Integer recordId) { return projectInfoService.getManagerFlag(recordId); } } business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java
@@ -90,8 +90,13 @@ return projectPlanExamineRecordService.planLog(projectPlanRecordId); } @PostMapping("/replyDepartmentApproval") public Result replyDepartmentApproval(@RequestBody ProjectPlanExamineRecordForm form) { return projectPlanExamineRecordService.replyDepartmentApproval(form); @PostMapping("/saveExamine") public Result saveExamine(@RequestBody ProjectPlanExamineRecordForm form) { return projectPlanExamineRecordService.saveExamine(form); } @PostMapping("/replyExamine") public Result replyExamine(@RequestBody ProjectPlanExamineRecordForm form) { return projectPlanExamineRecordService.replyExamine(form); } } business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java
@@ -1,12 +1,14 @@ package com.ycl.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.domain.entity.File; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; import java.util.Date; import java.util.List; @Data @AllArgsConstructor @@ -33,5 +35,6 @@ private Integer manageExamine; private String manageApproval; private String manageApprovalReply; private List<File> fileList; } business/src/main/java/com/ycl/domain/vo/ProjectProgressFileListsRequest.java
New file @@ -0,0 +1,17 @@ package com.ycl.domain.vo; import com.ycl.domain.entity.File; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor public class ProjectProgressFileListsRequest { private Integer projectReportId; private List<File> completedReportFileList; private List<File> situationDescriptionFileList; } business/src/main/java/com/ycl/service/ProgressPlanService.java
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.domain.form.ProgressPlanForm; import com.ycl.domain.query.ProgressPlanQuery; import com.ycl.domain.vo.ProjectProgressFileListsRequest; import java.util.List; /** @@ -62,4 +64,13 @@ * @return */ Result all(); /** * 保存竣工报告、情况说明附件 * @param request * @return */ Result saveProjectProgressFileLists(ProjectProgressFileListsRequest request); Result getProjectProgressForm(Integer id); } business/src/main/java/com/ycl/service/ProjectInfoService.java
@@ -75,4 +75,6 @@ Result docDetail(Integer id); Result addDoc(DocumentInfoForm form); Result getManagerFlag(Integer recordId); } business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java
@@ -78,9 +78,16 @@ Result planLog(Integer projectPlanRecordId); /** * 上级回复 * 回复审批 * @param form * @return */ Result replyDepartmentApproval(ProjectPlanExamineRecordForm form); Result replyExamine(ProjectPlanExamineRecordForm form); /** * 保存审批 * @param form * @return */ Result saveExamine(ProjectPlanExamineRecordForm form); } business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java
@@ -2,27 +2,28 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.base.Result; import com.ycl.domain.entity.ProgressPlan; import com.ycl.domain.entity.ProjectPlanInfo; import com.ycl.domain.entity.ProjectPlanRecord; import com.ycl.common.enums.business.FileTypeEnum; import com.ycl.domain.entity.*; import com.ycl.domain.form.ProgressPlanForm; import com.ycl.domain.query.ProgressPlanQuery; import com.ycl.domain.vo.ProgressPlanInfoFlag; import com.ycl.domain.vo.ProgressPlanInfoResponseVO; import com.ycl.domain.vo.ProgressPlanVO; import com.ycl.domain.vo.ProjectProgressFileListsRequest; import com.ycl.framework.utils.PageUtil; import com.ycl.mapper.ProgressPlanMapper; import com.ycl.mapper.ProjectPlanInfoMapper; import com.ycl.mapper.ProjectPlanRecordMapper; import com.ycl.mapper.*; import com.ycl.service.ProgressPlanService; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -39,6 +40,8 @@ private final ProgressPlanMapper progressPlanMapper; private final ProjectPlanRecordMapper projectPlanRecordMapper; private final ProjectPlanInfoMapper projectPlanInfoMapper; private final PlanMapper planMapper; private final FileMapper fileMapper; /** * 添加 @@ -187,4 +190,60 @@ .collect(Collectors.toList()); return Result.ok().data(vos); } @Override @Transactional(rollbackFor = Exception.class) public Result saveProjectProgressFileLists(ProjectProgressFileListsRequest request) { new LambdaUpdateChainWrapper<>(fileMapper) .eq(File::getBusId, request.getProjectReportId()) .eq(File::getType, FileTypeEnum.PROJECT_SITUATION_DESCRIPTION.getType()) .set(File::getDeleted,1) .update(); request.getSituationDescriptionFileList().stream() .forEach(file -> { file.setId(null); file.setBusId(request.getProjectReportId().longValue()); file.setType(FileTypeEnum.PROJECT_SITUATION_DESCRIPTION); file.setGmtCreate(new Date()); file.setGmtUpdate(new Date()); file.setDeleted(0); fileMapper.insert(file); }); new LambdaUpdateChainWrapper<>(fileMapper) .eq(File::getBusId, request.getProjectReportId()) .eq(File::getType, FileTypeEnum.PROJECT_COMPLETE_REPORT.getType()) .set(File::getDeleted,1) .update(); request.getCompletedReportFileList().stream() .forEach(file -> { file.setId(null); file.setBusId(request.getProjectReportId().longValue()); file.setType(FileTypeEnum.PROJECT_COMPLETE_REPORT); file.setGmtCreate(new Date()); file.setGmtUpdate(new Date()); file.setDeleted(0); fileMapper.insert(file); }); return Result.ok("保存成功"); } @Override public Result getProjectProgressForm(Integer id) { ProjectProgressFileListsRequest result = new ProjectProgressFileListsRequest(); result.setProjectReportId(id); result.setCompletedReportFileList(new LambdaQueryChainWrapper<>(fileMapper) .eq(File::getBusId, id) .eq(File::getType, FileTypeEnum.PROJECT_COMPLETE_REPORT) .eq(File::getDeleted, 0) .list()); result.setSituationDescriptionFileList(new LambdaQueryChainWrapper<>(fileMapper) .eq(File::getBusId, id) .eq(File::getType, FileTypeEnum.PROJECT_SITUATION_DESCRIPTION) .eq(File::getDeleted, 0) .list()); return Result.ok().data(result); } } business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
@@ -25,10 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; import java.util.stream.Collectors; /** @@ -260,4 +257,19 @@ fileService.saveBatch(fileList); return Result.ok(); } @Override public Result getManagerFlag(Integer recordId) { ProjectInfo projectInfo = baseMapper.selectById(recordId); // 判断当前用户id是否在主管列表中 String competentDepartment = projectInfo.getCompetentDepartment(); List<String> list = Arrays.asList(competentDepartment.split(",")); // 获得当前用户id Long userId = SecurityUtils.getUserId(); if (list.contains(userId.toString())) { return Result.ok().data(true); } else { return Result.ok().data(false); } } } business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.ycl.common.utils.SecurityUtils; import com.ycl.domain.entity.ProjectPlanExamineRecord; import com.ycl.domain.vo.DepartmentApprovalResponseVO; import com.ycl.mapper.ProjectPlanExamineRecordMapper; @@ -132,15 +133,27 @@ return Result.ok().data(vo); } /** * 回复审批事项 * @param form * @return */ @Override public Result replyDepartmentApproval(ProjectPlanExamineRecordForm form) { baseMapper.updateByForm(form); // new LambdaUpdateChainWrapper<>(baseMapper) // .eq(ProjectPlanExamineRecord::getId, form.getId()) // .set(ProjectPlanExamineRecord::getDepartmentApprovalReply,form.getDepartmentApprovalReply()) // .set(ProjectPlanExamineRecord::getManageApprovalReply, form.getManageApprovalReply()) // .set(ProjectPlanExamineRecord::getGmtUpdate ,new Date()) // .update(); public Result replyExamine(ProjectPlanExamineRecordForm form) { ProjectPlanExamineRecord projectPlanExamineRecord = ProjectPlanExamineRecordForm.getEntityByForm(form, null); projectPlanExamineRecord.setId(form.getId().longValue()); projectPlanExamineRecord.setDepartmentUserId(SecurityUtils.getUserId()); projectPlanExamineRecord.setManagerUserId(SecurityUtils.getUserId()); baseMapper.updateById(projectPlanExamineRecord); return Result.ok("回复成功"); } @Override public Result saveExamine(ProjectPlanExamineRecordForm form) { ProjectPlanExamineRecord projectPlanExamineRecord = ProjectPlanExamineRecordForm.getEntityByForm(form, null); projectPlanExamineRecord.setDepartmentUserId(SecurityUtils.getUserId()); projectPlanExamineRecord.setManagerUserId(SecurityUtils.getUserId()); baseMapper.updateById(projectPlanExamineRecord); return Result.ok("回复成功"); } } business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
@@ -1,13 +1,17 @@ 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.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; @@ -24,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -42,6 +47,8 @@ private final ProjectPlanExamineRecordMapper projectPlanExamineRecordMapper; @Autowired private ProjectPlanInfoMapper projectPlanInfoMapper; @Autowired private FileMapper fileMapper; /** * 添加 @@ -51,7 +58,6 @@ @Transactional(rollbackFor = Exception.class) @Override public Result add(ProgressReportResponseVO form) { ProjectPlanProgressReport projectPlanProgressReport = new ProjectPlanProgressReport(); projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue()); projectPlanProgressReport.setStartTime(form.getActualStartTime()); @@ -64,6 +70,25 @@ projectPlanProgressReport.setId(form.getProgressReportId()); // baseMapper.updateOne(projectPlanProgressReport); 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); }); } // 更新上级批复 @@ -139,6 +164,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); } common/src/main/java/com/ycl/common/enums/business/FileTypeEnum.java
@@ -14,7 +14,11 @@ public enum FileTypeEnum { PROJECT_INFO("project_info", "项目基本信息"), INVEST_POLICY("invest_policy","投资项目产业政策符合情况"), DOCUMENT_INFO("document_info","相关文件"); DOCUMENT_INFO("document_info","相关文件"), PROJECT_COMPLETE_REPORT("project_complete_report", "项目竣工报告"), PROJECT_SITUATION_DESCRIPTION("project_situation_description", "项目情况说明"), PROJECT_PROGRESS_INFO_REPORT("project_progress_info_report", "项目进度计划项上报"); @EnumValue // 标明该字段存入数据库 private final String type; start/src/main/resources/application.yml
@@ -71,7 +71,7 @@ devtools: restart: # 热部署开关 enabled: true enabled: false # token配置 token: