|
@@ -1,16 +1,23 @@
|
|
|
package com.zjugis.business.service.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.zjugis.business.bean.dto.ProjectFinishProgressDto;
|
|
|
+import com.zjugis.business.bean.entity.ProjectReport;
|
|
|
import com.zjugis.business.bean.entity.ProjectReportPeriod;
|
|
|
import com.zjugis.business.mapper.ProjectReportPeriodMapper;
|
|
|
import com.zjugis.business.service.ProjectReportPeriodService;
|
|
|
+import com.zjugis.business.service.ProjectReportService;
|
|
|
+import com.zjugis.business.service.ProjectService;
|
|
|
import com.zjugis.framework.common.enums.CommonStatusEnum;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.Year;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
|
|
|
import static com.zjugis.business.enums.ErrorCodeConstants.REPORT_PERIOD_IS_EXISTS;
|
|
|
import static com.zjugis.business.enums.ErrorCodeConstants.REPORT_PERIOD_NOT_EXISTS;
|
|
@@ -26,6 +33,10 @@ public class ProjectReportPeriodServiceImpl implements ProjectReportPeriodServic
|
|
|
|
|
|
@Resource
|
|
|
private ProjectReportPeriodMapper projectReportPeriodMapper;
|
|
|
+ @Resource
|
|
|
+ private ProjectReportService projectReportService;
|
|
|
+ @Resource
|
|
|
+ private ProjectService projectService;
|
|
|
|
|
|
@Override
|
|
|
public ProjectReportPeriod getCurrentReportPeriod() {
|
|
@@ -55,4 +66,36 @@ public class ProjectReportPeriodServiceImpl implements ProjectReportPeriodServic
|
|
|
currentReportPeriod.setEndDate(LocalDateTime.now());
|
|
|
projectReportPeriodMapper.updateById(currentReportPeriod);
|
|
|
}
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public void archive() {
|
|
|
+ ProjectReportPeriod currentReportPeriod = getCurrentReportPeriod();
|
|
|
+ if(ObjectUtil.isNull(currentReportPeriod)){
|
|
|
+ throw exception(REPORT_PERIOD_NOT_EXISTS);
|
|
|
+ }
|
|
|
+ List<ProjectReport> allPassList = projectReportService.getAllPassList(currentReportPeriod.getId());
|
|
|
+ List<ProjectFinishProgressDto> finishProgressDtos = new ArrayList<>(allPassList.size());
|
|
|
+ allPassList.forEach(projectReport -> {
|
|
|
+ ProjectFinishProgressDto dto = new ProjectFinishProgressDto();
|
|
|
+ dto.setProjectId(projectReport.getProjectId());
|
|
|
+ dto.setFinishProgress(projectReport.getFinishProgress());
|
|
|
+ finishProgressDtos.add(dto);
|
|
|
+ });
|
|
|
+ projectService.batchUpdateFinishProgress(finishProgressDtos);
|
|
|
+ end(currentReportPeriod.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ProjectReportPeriod getRecentlyReportPeriod() {
|
|
|
+ return projectReportPeriodMapper.getRecentlyReportPeriod();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void end(String id) {
|
|
|
+ ProjectReportPeriod projectReportPeriod = new ProjectReportPeriod();
|
|
|
+ projectReportPeriod.setStatus(CommonStatusEnum.DISABLE.getStatus());
|
|
|
+ projectReportPeriod.setEndDate(LocalDateTime.now());
|
|
|
+ projectReportPeriod.setId(id);
|
|
|
+ projectReportPeriodMapper.updateById(projectReportPeriod);
|
|
|
+ }
|
|
|
}
|