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